Wholesale Orders
Wholesale Orders lets a restaurant sell in bulk to business customers (caterers, offices, other outlets) at separate wholesale pricing — track a customer master with credit terms and limits, place orders with retail vs wholesale pricing per line, move orders through Draft → Confirmed → Dispatched → Delivered, record partial payments, and bill an order through POS to generate a real invoice.
Overview
This is the same Wholesale Orders feature used by the bakery variant (FnbWholesaleOrdersPage) — restaurant does not have a separate wholesale table; it uses the same generic wholesale customer/order/pricing module used across variants.
It only appears for stores on the Advanced plan tier or higher (minTier: "advanced" in the sidebar config) — stores below that tier will not see this page at all.
Each Wholesale Customer record carries a discount %, payment terms (Prepaid/Net7/Net15/Net30/Net60) and a credit limit; creating an order against a customer on Credit Hold is blocked, and one that would exceed their credit limit prompts a confirmation before proceeding.
Item rows can be flagged below a configured Minimum Order Quantity (MOQ) from an active wholesale price list, shown as a warning without blocking the order.
Orders move through Draft → Confirmed → Dispatched → Delivered (or Cancelled); a Dispatched order with a customer phone number can send a WhatsApp/SMS notification with the delivery date and balance due.
"Bill via POS" hands an unbilled order's items and customer off to the billing screen to generate a real sale/invoice; once billed, the order links to that sale and can print the invoice directly instead.
Partial or full payments can be recorded against an order's balance due at any time, independent of its dispatch status.
Before You Start
- You must have the Billing feature enabled on your plan, and be on the Advanced tier or higher for this page to be visible.
Step-by-Step Guide
1 Add a wholesale customer
- Open Kitchen Operations → Wholesale Orders, switch to the "Customers" tab and click "Add Customer".
- Fill in Business/Org Name (required), Contact Person, Phone, Email, Address and Tax Number.
- Set Discount %, Payment Terms and Credit Limit, then save.
2 Create a wholesale order
- Switch to the "Orders" tab and click "New Order".
- Select the customer, set Order Date, Delivery Date, Delivery Route/Zone and Payment Method.
- Add item rows — search products, and set both Retail and Wholesale price per line (auto-filled from the product if available); a below-MOQ warning shows if a price list minimum order quantity applies.
- Create the order — if the customer is on Credit Hold the order is blocked; if it would exceed their credit limit you are asked to confirm before proceeding.
3 Move an order through dispatch and record payment
- Click the status button on an order row to advance it (Confirmed → Dispatched → Delivered).
- Once Dispatched, use the notify action (if the customer has a phone number) to send a delivery/balance-due message.
- Click the payment icon on any order with a balance due to record a payment (amount and method) against it.
4 Bill an order and print its invoice
- On an order that hasn't been billed yet, click "Bill via POS" to send its items and customer to the billing screen and complete a real sale.
- Once billed, use the printer icon on that order to print the linked invoice directly from this page.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Discount % / Payment Terms / Credit Limit | Set per wholesale customer; Payment Terms is one of Prepaid, Net7, Net15, Net30, Net60. Credit Limit is checked (with a confirm-to-proceed prompt) when creating new orders. |
Credit Hold | A flag on the customer record; if set, no new order can be created for that customer regardless of amount. |
Minimum Order Quantity (MOQ) | Looked up from an active wholesale price list entry matching the product; a line below MOQ is flagged with a warning but does not block order creation. |
Order Status | Draft → Confirmed → Dispatched → Delivered, or Cancelled — advanced one step at a time via the status button on each order row. |
Balance Due | Total Amount minus payments recorded so far; shown in red until fully paid, then replaced with a green "Paid" badge. |
Retail Price / Wholesale Price | Recorded separately per order line so you retain both reference points, even though only Wholesale Price is used for the order subtotal. |
Tips & Best Practices
- Set realistic Credit Limits per customer — the confirm-to-proceed prompt on exceeding it is a soft warning, not a hard block, so it relies on staff reading and deciding at the time.
- Use "Bill via POS" rather than creating a separate manual sale for a wholesale order — it keeps the order linked to its resulting invoice so you can reprint it later from the same screen.
- Keep a customer's Payment Terms accurate — while it is informational on this screen, it is the reference point staff use when deciding how quickly to chase an outstanding balance.