Record sales transactions to customers. Sales reduce your warehouse stock and track revenue. This is the back-office way to create sales (the POS screen is covered in Step 13).
Navigate to /app/sales and click "Create" to open the sale form at /app/sales/create.
There are two ways to create a sale in ApePOS:
| Method | Best For | Where |
|---|---|---|
| Sales (this page) | Back-office orders, bulk/wholesale sales, phone orders, detailed invoices | Sidebar → Sales → Create |
| POS Screen (Step 13) | Quick retail billing at the counter, walk-in customers | Sidebar → POS or /pos |
Make sure you have:
| Field | Type | Required | Description |
|---|---|---|---|
| Date | Date Picker | Required | The date of the sale. Defaults to today. |
| Warehouse | Dropdown | Required | Select the warehouse from which stock will be deducted. |
| Customer | Dropdown | Required | Select the customer making the purchase. |
After selecting a warehouse, use the Product Search bar to find products. Only products with available stock in the selected warehouse will show.
Each product in the order table has:
| Column | Description |
|---|---|
| Product | Name and details of the product. |
| Net Unit Price | The selling price per unit. Can be adjusted. |
| Stock | Available stock in the selected warehouse. |
| Qty | Number of units being sold. Cannot exceed available stock. |
| Discount | Per-item discount amount. |
| Tax | Per-item tax (auto-calculated from product settings). |
| Sub Total | Line total for this product. |
| Action | Remove button. |
| Field | Type | Required | Description |
|---|---|---|---|
| Order Tax (%) | Decimal (0–100) | Optional | Overall tax percentage on the entire sale. |
| Discount | Decimal | Optional | Overall discount. Can be a fixed amount or a percentage — switch using the dropdown toggle next to the field. |
| Shipping | Decimal | Optional | Delivery/shipping charges. |
| Status | Dropdown | Required |
Completed — sale is done, stock is deducted. Pending — sale recorded but not fulfilled yet. Ordered — order placed by customer. |
| Payment Status | Dropdown | Required |
Paid — full payment received. Unpaid — no payment yet (default). Partial — part payment received. |
When payment status is Paid or Partial, a payment details section appears. You can add multiple payment entries (e.g., split payment between cash and card):
| Field | Type | Required | Description |
|---|---|---|---|
| Date | Date Picker | Required | Date of this payment. |
| Reference | Text | Optional | Payment reference number (cheque number, transaction ID, etc.). |
| Amount | Decimal | Required | Amount being paid. Total of all payment entries must not exceed grand total. |
| Payment Type | Dropdown | Required | Payment method (Cash, Card, Bank Transfer, etc.). |
Use the "+" button to add more payment entries, and the trash icon to remove one.
| Field | Type | Required | Description |
|---|---|---|---|
| Notes | Text Area | Optional | Any additional notes about this sale. |
You've created your first sale! You can now use the back-office sales form for detailed orders. Next, let's explore the POS screen for quick billing.