Home / Help Center / pos-app-restaurant / rest-kitchen / Wholesale Orders
🏢 rest-kitchen

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.

📍 Menu path: Kitchen Operations → Wholesale Orders
👤 Who uses it: All roles with the Billing feature enabled (requires the Advanced plan tier or higher)

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

Step-by-Step Guide

1 Add a wholesale customer

  1. Open Kitchen Operations → Wholesale Orders, switch to the "Customers" tab and click "Add Customer".
  2. Fill in Business/Org Name (required), Contact Person, Phone, Email, Address and Tax Number.
  3. Set Discount %, Payment Terms and Credit Limit, then save.

2 Create a wholesale order

  1. Switch to the "Orders" tab and click "New Order".
  2. Select the customer, set Order Date, Delivery Date, Delivery Route/Zone and Payment Method.
  3. 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.
  4. 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

  1. Click the status button on an order row to advance it (Confirmed → Dispatched → Delivered).
  2. Once Dispatched, use the notify action (if the customer has a phone number) to send a delivery/balance-due message.
  3. 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

  1. 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.
  2. Once billed, use the printer icon on that order to print the linked invoice directly from this page.

Every Field & Button, Explained

Field / ButtonWhat it does
Discount % / Payment Terms / Credit LimitSet 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 HoldA 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 StatusDraft → Confirmed → Dispatched → Delivered, or Cancelled — advanced one step at a time via the status button on each order row.
Balance DueTotal Amount minus payments recorded so far; shown in red until fully paid, then replaced with a green "Paid" badge.
Retail Price / Wholesale PriceRecorded separately per order line so you retain both reference points, even though only Wholesale Price is used for the order subtotal.

Tips & Best Practices

Troubleshooting & FAQ

I can't create an order for a customer.
Check whether that customer is on Credit Hold — orders are blocked entirely for customers in that state, with a toast explaining the hold (and reason, if one was set).
This page is not visible in the sidebar at all.
Wholesale Orders is gated to the Advanced plan tier or higher (minTier: "advanced") — it will not appear for stores on a lower tier regardless of role.
A below-MOQ warning appeared but I want to place the order anyway.
The MOQ warning is informational only — it does not block saving the order, so you can proceed if the smaller quantity is intentional.