Sales Orders (SO)
1. Overview & Purpose
What are Sales Orders (SO)?
2. When to Use Sales Orders
Corporate Client Bulk Purchase Agreement (Hotel / Supermarket)
A regional hotel chain places a commercial wholesale purchase for 500 cases of bottled beverages with agreed wholesale tiered discounts and scheduled delivery dates.
Automated Credit Limit Verification & Exposure Guard (NET30)
A B2B distributor requests a Rp 40.000.000 order on NET30 terms, but currently has Rp 25.000.000 in open invoices against a configured Rp 50.000.000 credit ceiling.
Warehouse Inventory Soft-Reservation for Staged Fulfillment
Preventing fast-moving retail store cashiers from selling off inventory that was already promised to a corporate client with scheduled delivery next week.
Contractual Price Lock against Commodity Inflation
A long-term institutional client signs a purchase agreement requiring price stability over a 90-day procurement cycle despite wholesale market fluctuations.
Minimum Order Quantity (MOQ) & Cart Threshold Rules
Wholesale client attempts to order less than master carton quantities (e.g. 5 pieces instead of 24-piece full box).
Split Consignee Staging across Multiple Branches
Corporate buyer orders 300 units destined for their Bandung branch and 200 units for their Jakarta branch on a single consolidated contract.
3. Data Dictionary & Fields
Schema structure for the sales_orders wholesale commercial agreement table:
| Field / Column | Input Type | Requirement | Description & Operational Guide |
|---|---|---|---|
soNumber | STRING(50) | Required | System-generated unique order code (e.g. SO-20260522-001). |
customerId | BIGINT (FK) | Required | Reference to customers table identifying corporate client. |
branchId | BIGINT (FK) | Required | Selling operational branch governing the transaction. |
locationId | BIGINT (FK) | Optional | Primary storage location designated for stock allocation. |
orderDate | DATE | Required | Official date the sales order was confirmed. |
expectedDeliveryDate | DATE | Optional | Target fulfillment deadline for warehouse dispatch. |
paymentTermDays | INTEGER | Required | Commercial credit terms in days (e.g. 0 for COD, 30 for NET30). |
subtotalAmount | DECIMAL(18,6) | Required | Pre-tax and pre-discount gross sum of all ordered items. |
grandTotal | DECIMAL(18,6) | Required | Final invoiceable value payable upon commercial billing. |
status | ENUM | Required | State: DRAFT, SUBMITTED, APPROVED, REJECTED, CLOSED, CANCELLED. |
4. Interface Preview
Sales Orders directory showing corporate customer accounts, order statuses, credit terms, and delivery scheduling options.
Screen Preview: Sales Orders Console Interface
Visual interface illustration and control layout for menu Route: /admin/sales/orders
5. Creating a Sales Order
Open Sales Orders Console
Navigate to Sales > Orders from the sidebar navigation.
Launch Order Creation Form
Click Add Sales Order button in the upper toolbar.
Select Customer & Delivery Terms
Choose corporate Customer, delivery address, and expected delivery date.
Add Items & Validate Stock
Add products, order quantities, and agreed wholesale unit prices.
Submit for Credit Review
Click Submit to route order to credit control and sales supervisor.
6. Credit Review & Approval
Credit & Inventory Review
Supervisor reviews customer payment track record and on-hand stock.
Authorize Order
Click Approve. Approved orders become available for warehouse dispatch.
7. Cancellation & Closure
Partial Delivery Closure Notice
Order Cancellation Controls
Orders with no dispatched deliveries can be cancelled with mandatory reason remarks.
8. Cross-Module Impact
| Target Subsystem | Relational & Transactional Effect |
|---|---|
| Delivery Orders (DO) | Approved SO serves as mandatory parent document authorizing warehouse item dispatch. |
| Customers & Credit Management | Reserved amounts increment customer exposure toward their credit ceiling. |
| B2B Sales Invoices | Provides commercial billing benchmark for invoicing dispatched quantities. |
Operational Best Practices
- Always verify customer credit limit utilization before approving high-value orders.
- Use address snapshots to ensure delivery addresses remain immutable across re-prints.