Skip to main content

Sales Orders

This guide walks you through raising a Sales Order, getting it approved, and handing it over for fulfilment as either a Delivery Order or an Issue Request.

What is a Sales Order?

A Sales Order is a documented, trackable record of a customer's request for products. It is the starting point for the order-to-delivery process in TradeStack.

After approval, the order follows one of two fulfilment paths:

  1. If Requires Delivery is selected, generate a Delivery Order for dispatch to the customer.
  2. If Requires Delivery is not selected, generate an Issue Request for the warehouse to issue the goods directly.
note

Every Sales Order has a Sales Context: Standard, Van Sales, or Order Booking. The context is fixed when the order is created and cannot be changed afterwards.

Creating a Sales Order

Standard Sales Order

  1. Go to Sales → Sales Orders.
  2. Click + Sales Order.
  3. Complete the Create Sales Order form.
  4. Click Create Sales Order. The new order opens with a DRAFT status.

Sales Orders list page The Sales Orders list, showing the + Sales Order button.

Header fields

FieldRequired?Meaning and rules
Customer (business_partner)YesThe customer for the order. Only active, approved business partners can be selected.
Order Date (order_date)YesDefaults to today. A new order cannot use a past date.
Fulfillment Date (fulfillment_date)NoThe expected or actual fulfilment date.
Currency (currency)NoThe order currency. Defaults to KES.
Requires Delivery (requires_delivery)NoSelect this when the goods must be dispatched to the customer.
Destination (destination)ConditionalThe delivery destination. Required when Requires Delivery is selected.
Sales Person (sales_person)NoAn active user whose profile type is Sales Staff.
Payment Term (payment_term)NoThe payment terms for the order.
Order Manager (document_manager)NoA user whose type allows them to manage deliveries.
Document Category (document_category)YesThe order classification. Defaults to STANDARD when left blank.
Template order (is_template_order)NoMarks the order as a template for recurring orders rather than an order to fulfil.
Origin (origin)AutomaticSet from the branch's own partner location; it is not entered on the form.

Create Sales Order form The Create Sales Order form and its header fields.

Important

The Sales Context cannot be changed after creation. If the wrong context is selected, cancel the order and create a new one.

Van Sales and Order Booking

Van Sales and Order Booking use dedicated creation screens:

  • Van Sales requires a Vehicle and a Sales Person.
  • Order Booking requires a Sales Person but does not require a Vehicle.
  • The submitted Sales Context must match the screen being used.
  • Origin is resolved automatically from the branch in both flows.

The creation request can safely be retried with the same client-generated guid after a lost connection; TradeStack returns the existing order instead of creating a duplicate.

Adding line items

A new order starts as DRAFT with no lines.

  1. Open the Line Items tab.
  2. Click + Add Line Item.
  3. Complete the line-item form.
  4. Click Save.

Draft Sales Order detail page The Sales Order detail page in Draft status.

Add Line Item form The Add Line Item form.

Line-item fields

FieldRequired?Meaning and rules
Product (product)YesThe product being ordered.
Description (description)NoA free-text description overriding the product's default description.
Unit of Measure (unit_of_measure)YesThe unit used for the line, such as Piece or Carton.
Quantity Ordered (quantity_ordered)YesThe quantity requested. It must be zero or greater.
Price List (price_list)NoThe price list used to price the line, including its VAT rate.
Tax (tax)NoThe applicable tax rate.
Unit Price (unit_price)YesThe base price per unit before tax. Usually populated from the price list.
Requires Return (requires_return)NoMarks returnable packaging that the customer must hand back.
Requires Tracking (requires_tracking)NoEnables asset-level tracking for the item.

The system calculates subtotal, total_amount, tax amounts, and the order totals. quantity_fulfilled starts at zero and is updated by fulfilment activity; it is not user-editable.

Important

A line cannot have both Requires Return and Requires Tracking selected. The system rejects that combination.

note

The standard Add Line Item flow rejects a second active line for the same product when its return and tracking flags are identical. Edit the existing line instead, or use different flags when separate lines are genuinely required.

Sales Order line items The Line Items tab showing saved lines and computed totals.

Editing and removing lines

Open a line item to edit its product, quantity, price, tax, flags, or other line fields. Each edit creates a price-history entry. Removing a line is a soft delete: it disappears from the active order, while its history is retained. Totals recalculate after either operation.

Line items are not automatically locked after approval. They can technically be edited or removed after approval, but changing a line after a Delivery Order or Issue Request has been generated can leave the documents out of sync. Coordinate with a supervisor before making a post-approval change.

Viewing and editing the order

The detail page can include these tabs:

TabWhat it shows
Line ItemsProducts, quantities, prices, taxes, and totals.
Approval SequenceRequired approval steps and the approvals recorded so far.
Delivery OrderThe Delivery Order generated from a delivery-required Sales Order.
Issue RequestsIssue Requests generated from an order that does not require delivery.

The order header can be edited only while it has zero active line items, regardless of its status. Once the first line is added, fields such as Customer, Requires Delivery, and Destination are locked. To correct the header afterwards, cancel the order and create a new one.

Sales Order statuses

StatusMeaning
DRAFTThe order is being built. This is the starting status.
READYThe order has been submitted and is waiting for approval.
APPROVEDThe order has been approved and can be handed over for fulfilment.
REJECTEDThe order was declined and can only be cancelled.
RETURNEDThe order was sent back for rework and can be resubmitted or cancelled.
FAILEDA processing attempt failed and can be retried or cancelled.
IN_PROGRESSFulfilment is actively underway.
COMPLETEFulfilment is finished.
ARCHIVEDThe order is closed.
CANCELLEDThe order was called off.
TEMPLATEThe order is used only to generate recurring orders.

Allowed transitions

DRAFT -> READY, CANCELLED
READY -> APPROVED, REJECTED, RETURNED, IN_PROGRESS, CANCELLED
REJECTED -> CANCELLED
RETURNED -> READY, CANCELLED
APPROVED -> IN_PROGRESS, FAILED, CANCELLED
FAILED -> READY, CANCELLED
IN_PROGRESS -> COMPLETE, FAILED
COMPLETE -> ARCHIVED
ARCHIVED -> terminal
CANCELLED -> terminal
TEMPLATE -> terminal

Transitions to Returned, Rejected, Failed, or Cancelled require a note explaining the decision. Template orders cannot transition at all.

note

The system supports returning a Returned or Failed order to Ready, but those actions may not be available as buttons on the Sales Order detail screen. Ask a supervisor or administrator when one of these states needs further action.

Submitting and approving

  1. From DRAFT, add at least one active line item.
  2. If you do not have approval permission, click Submit Order. The order becomes READY.
  3. An authorised approver clicks Approve Order. Once all required approval steps are complete, the order becomes APPROVED.
  4. A user with approval permission may approve directly from Draft, skipping Ready.

An order with no active line items cannot be submitted or approved. Multi-step approval sequences keep the order in Ready until every required approval has been recorded.

Ready Sales Order actions A Sales Order in Ready status with approval actions.

Approval Sequence tab The Approval Sequence tab showing required steps and recorded approvals.

Fulfilling the order

After approval, the available fulfilment action depends on Requires Delivery.

Requires Delivery: generate a Delivery Order

For an approved order with delivery enabled:

  1. Open the Sales Order detail page.
  2. Click Generate Delivery Order.
  3. Review the customer, destination, totals, and lines on the confirmation page.
  4. Click Generate Delivery Order again to confirm.

Approved order requiring delivery An approved order showing Generate Delivery Order.

Generate Delivery Order form The confirmation form for generating a Delivery Order.

The new Delivery Order copies the order's branch, territory, organisation, business partner, salesperson, sender, recipient, origin, destination, totals, currency, document category, and every active line item.

The generated Delivery Order starts in READY. The Sales Order remains APPROVED; generating a Delivery Order does not change or lock the Sales Order.

Delivery Order tab The Delivery Order tab showing the generated document.

Important

The Generate Delivery Order button disappearing is a screen safeguard, not a substitute for checking whether a Delivery Order was already generated. Do not confirm the action twice. Completing the Delivery Order is also not required before the Sales Order can be completed, so verify delivery yourself first.

No delivery: generate an Issue Request

For an approved order with Requires Delivery turned off:

  1. Open the Sales Order detail page.
  2. Click Generate Issue Request.
  3. Review each product's Ordered Qty, Outstanding Qty, Requires Return value, and Request Qty.
  4. Reduce Request Qty when a partial issue is intentional. A quantity cannot exceed the outstanding amount.
  5. Click Generate Issue Request.

The order must be approved, must not require delivery, and must not have another Issue Request in progress. Lines with no outstanding quantity are locked at zero.

Approved order without delivery An approved order showing Generate Issue Request.

Generate Issue Request form The quantities form for generating an Issue Request.

The generated Issue Request starts in APPROVED and appears on the Sales Order's Issue Requests tab.

Issue Requests tab The Issue Requests tab showing the generated request.

Completing and archiving

  1. When fulfilment is ready, click Complete Order and confirm the transition. The order becomes COMPLETE.
  2. From Complete, click Archive Order when the record is ready to be closed. It becomes ARCHIVED.

For an Issue Request workflow, Complete Order remains unavailable until the Issue Request is fully fulfilled. For a Delivery Order workflow, the Sales Order can become Complete while delivery is still incomplete, so check the Delivery Order tab before completing it.

Complete Order action The Complete Order action on a Sales Order.

Archive Order action The Archive Order action on a completed Sales Order.

Permissions reference

PermissionControls
VIEW_SALES_ORDERViewing Sales Order lists and details.
ADD_SALES_ORDERCreating Standard Sales Orders and editing a header before lines exist.
CHANGE_SALES_ORDERGeneral Sales Order changes, delivery generation, completion, archiving, and relevant transitions.
APPROVE_SALES_ORDERApproval from Ready, returning, cancelling from Ready, and generating Issue Requests.
DELETE_SALES_ORDERSoft-deleting Sales Order records.
CREATE_VAN_SALES_ORDER / VIEW_VAN_SALES_ORDERCreating and viewing Van Sales orders.
CREATE_ORDER_BOOKING_ORDER / VIEW_ORDER_BOOKING_ORDERCreating and viewing Order Booking orders.
VIEW_ISSUE_REQUESTViewing the Issue Requests tab.
tip

If an action is missing, check your role permissions or ask a supervisor to perform the step.

Best practices

  • Complete and verify the header before adding the first line; the header locks as soon as an active line exists.
  • Treat post-approval line edits as exceptions, especially after downstream documents have been generated.
  • Use partial Issue Requests deliberately and keep Request Qty at or below Outstanding Qty.
  • Check the Delivery Order tab before completing a delivery-required Sales Order.
  • Add a clear note whenever returning, rejecting, failing, or cancelling an order.

Frequently asked questions

Can I edit the customer or destination after adding a line?

No. The header is locked once the order has an active line, regardless of its status. Cancel the order and create a new one.

Can I edit or remove a line after approval?

The system may allow it, but the change can make a generated Delivery Order or Issue Request inconsistent with the Sales Order. Coordinate with a supervisor first.

Why can I not select both Requires Return and Requires Tracking?

A line cannot use both flags at the same time. Use separate lines only when the business process genuinely requires different behavior.

Why is the fulfilment button missing?

Check that the order is approved, has active lines, and follows the correct branch: Requires Delivery shows Generate Delivery Order; otherwise Generate Issue Request. Existing downstream requests may also hide the action.

Why is Complete Order missing?

For an Issue Request workflow, the Issue Request must be fully fulfilled first. Refresh the Sales Order after fulfilment is complete.

Can I resubmit a Returned or retry a Failed order here?

The status transitions exist, but the corresponding action may not be available on the detail screen. Ask a supervisor or administrator for assistance.

Glossary

Sales Context
Standard, Van Sales, or Order Booking, fixed when the order is created.
Outstanding quantity
The ordered quantity that has not yet been fulfilled.
Requires Delivery
Whether the approved order is handed to dispatch through a Delivery Order or issued directly through an Issue Request.
Requires Return
A line flag indicating that the customer must return packaging or another item.
Requires Tracking
A line flag enabling asset-level tracking.
Template order
An order used to generate recurring orders rather than being fulfilled directly.