Sales — Overview
Product version: 1.0.0+1 Last updated: 2026-08-03 Audience: Tenant Owners, Tenant Employees, and Regular Users with sales permissions
A. What is Sales?
Sales is the Simple Sale area of SanadiqCloud: keep a customer list, build draft sales from inventory stock items, confirm a sale (which issues stock and creates a sales invoice), then mark invoices paid or void them when needed.
Sales invoices here are not the same as Billing (subscription) invoices under Billing.
Who is this for?
Tenant Owners, Employees, and other members whose role includes sales permissions (for example Sales Manager). See Roles & Permissions.
B. Navigation
Open Sales from the side navigation rail (merchant shell). Entry screen: Sales hub (/sales).
| Section | Route | Description |
|---|---|---|
| Hub | /sales |
Explore tiles for Customers, Sales, Invoices |
| Customers | /sales/customers |
Customer list, form, detail |
| Sales | /sales/list |
Draft / confirmed / cancelled sales |
| Sale form | /sales/form |
Create or edit a draft sale |
| Sale detail | /sales/:id |
Confirm, cancel, open invoice |
| Invoices | /sales/invoices |
Sales invoices list |
| Invoice detail | /sales/invoices/:id |
Print/share, mark paid, void |
There is no sales setup wizard or roadmap page in the current app.
C. Permissions
| Permission | Allows |
|---|---|
sales:customer:read / create / update / delete |
Customers |
sales:sale:read / create / update / delete |
Sales list and drafts; confirm and cancel require sales:sale:update |
sales:invoice:read |
View and print sales invoices |
sales:invoice:update |
Mark paid, void |
sales:stats:read |
Sales summary API (no dedicated stats screen in the app yet) |
Shell Sales access requires at least one of the sales read permissions (customer, sale, invoice, or stats).
Confirming a sale also needs working inventory permissions to issue stock (inventory service).
D. End-to-end workflow
- (Optional) Create customers.
- Ensure products and inventory stock items exist for the stock pool you will sell from.
- Create a draft sale: choose inventory (stock pool), optional customer, add lines (qty, price, discount %, tax %).
- Confirm the draft → stock is issued → a sales invoice is created (
issued). - Open the invoice → Mark paid (cash / card / transfer / other) or Void if it should not be collected.
- To cancel a confirmed sale after voiding the invoice (when allowed), use Cancel on the sale detail.
Document numbers: sales SALE-YYYYMM-####, invoices INV-YYYYMM-####.
E. Status summary
| Entity | Statuses |
|---|---|
| Sale | draft → confirmed or cancelled; confirmed may cancel only under rules below |
| Invoice | issued → paid or void |
| Payment status | unpaid / paid |
Important business rules
- Only draft sales can be edited or soft-deleted.
- Confirm requires at least one line and sufficient available stock.
- Voiding an invoice does not put stock back in the current product. The related sale usually stays confirmed.
- You cannot cancel a confirmed sale while its invoice is issued or paid — void first (then cancel may restore stock if reverse succeeds).
- Paid invoices cannot be voided in the app.
F. What Sales is not
These are not available in the current Sales module:
- Quotes / estimates, delivery notes
- Returns / credit memos
- Point-of-sale (POS) terminal (the nav icon is decorative only)
- Partial payments / payment ledgers
- Full reporting dashboards inside Sales (API summary exists for integrations)
Next: Customers
Related: Sales · Invoices · Stock Items · Products
See also: Tenant Owner Manual · Employee Manual