Skip to content

Sales Orders & Invoices


The Sales Orders & Invoices module manages the full order-to-cash cycle for product sales — from creating a sales order through shipment, invoicing, and collections. Its screens appear in the left navigation under the Orders section, while the underlying functionality belongs to the Accounts Receivable subsystem (customers, terms, collections, and AR Settings).


  • Sales Order — A customer’s commitment to purchase products. The order captures what was ordered (products, quantities, prices), drives inventory allocation and shipment scheduling, and serves as the source for invoicing. Orders are either open or closed.

  • Sales Invoice — A bill sent to the customer for products shipped or services rendered. Invoices can be created from a sales order (linking to specific order lines) or as standalone documents. Posting an invoice creates AR entries: debit the AR Control account, credit the configured revenue account (per line item); and for inventory-tracked items (when the invoice type has shouldTrackInventory enabled): debit the COGS account, credit the Inventory account.

  • Shipment — A record of physical goods leaving the warehouse to fulfill sales order lines. When dispatched, a shipment draws from inventory, records the carrier and tracking number, and can generate an invoice. A single order can have multiple shipments (partial fulfillment).

  • Drop Ship — An order that ships directly to a custom address not stored in the customer’s site addresses. When Drop Ship is enabled, the standard Ship To field is replaced with manual address fields. This is used for one-off delivery locations.

  • Salesman Commission — Sales representatives assigned to orders and invoices with commission percentages. Multiple salesmen can share a single order. Commission tracking feeds sales performance reports and compensation calculations.


Upstream — Where Sales Orders gets its data:

  • Accounts Receivable (Customers) → The customer database provides billing addresses, payment terms, credit limits, and tax jurisdictions. Customer-specific pricing tiers automatically populate unit prices on order lines.
  • Inventory (Products) → The product catalog provides items, costs, and availability for order line items. Inventory allocation reserves stock for the order.

Downstream — Where Sales Orders sends its data:

  • Inventory → Shipment dispatch draws from inventory, reducing on-hand quantities and posting COGS entries to the GL.
  • Accounts Receivable → Invoices created from orders enter the AR collections cycle. Cash receipts and deposits flow from invoice payments.
  • General Ledger → Invoice postings create balanced GL entries: revenue recognition (credit the configured revenue account), receivable creation (debit the AR Control account), and cost recognition (debit the COGS account, credit the Inventory account).
  • Reports → Sales order, shipment, and invoice data feeds reports for order status, fulfillment metrics, and sales analysis.

Key Integration Point — Order-to-Ship-to-Invoice: The standard workflow connects three records: a Sales Order defines what was promised, a Shipment records what was sent, and a Sales Invoice bills for what was delivered. Each step links back to the previous one, creating a complete audit trail from customer order through revenue recognition.


The AR Dashboard provides a high-level view of accounts receivable health and collection activity.

ChartTypeDescription
Accounts Receivable Aging ($)Dual-axis barAging buckets (Current, 1–30 Days, 31–60 Days, 61–90 Days, 90+ Days, Prepayments) showing Amount ($) on the left axis and Count on the right axis.
Cash AnticipationDual-axis barSame bucket structure as Aging — projects when open AR is expected to be collected based on terms
Top 10 Bad Debt Customers (90+ Days)Horizontal barCustomers with the highest past-due balances over 90 days. Bars are red. Click a customer to navigate to their record.
Captured DiscountsBar chartCompares Available vs. Captured early-payment discounts by count and dollar amount

Each chart manages its own date control. The Accounts Receivable Aging and Cash Anticipation charts each have an As Of Date picker with a Run button that refreshes only that chart. The Top 10 Bad Debt Customers and Captured Discounts charts have no date control.


Navigate to Orders → Manage Orders to see all sales orders.

ColumnDescription
Sales Order IDSystem-assigned order identifier
CustomerCustomer account (single combined column)
Ship ToShipment site name and address (single combined column)
Order TypeSales order type classification
Order DateDate the order was entered
Promise DateDate promised to the customer
Due to Ship DateRequired ship-by date
Total AmountTotal order value
Total Open AmountRemaining unbilled/unfulfilled order value

The Customer PO #, customer name and address, and site name and address are searchable (used as search filters) but are not shown as separate columns — Customer and Ship To are each a single combined column.

An Open / Closed toggle filters the list to active or completed orders. Additional column-level filters are available for date ranges and text search.


Click Create Sales Order or the Edit action from the list. The form is organized into a header section and lower tabs.

FieldRequiredDescription
CustomerYesCustomer account for the order
Ship To AddressConditionalDelivery site address (required unless Drop Ship is checked)
TermsYesPayment terms (e.g., Net 30, COD)
Customer PO NumberNoCustomer’s purchase order reference (max 255 characters)
Order TypeYesOrder classification
Source BuildingNoWarehouse or building fulfilling the order
FieldRequiredDescription
Sales Order DateNoDate the order was placed
Requested DateNoDate the customer wants delivery
Earliest Ship DateNoEarliest acceptable ship date
Latest Ship DateNoLatest acceptable ship date
Promise DateNoDate promised to the customer
Due to Ship DateYesInternal required ship-by date
FieldRequiredDescription
Freight TermsYesFreight delivery terms (e.g., FOB Origin, FOB Destination)
Ship ViaNoCarrier or shipping method description (max 255 characters)
Freight AmountNoFreight charge added to the order
Sales Tax JurisdictionNoTax jurisdiction; the application calculates tax based on the selected jurisdiction
Sales Tax PercentNoTax rate percentage
Sales Tax AmountNoTax dollar amount
Discount PercentNoOrder-level discount percentage
Discount AmountNoOrder-level discount dollar amount

Enable Drop Ship to ship directly to a custom address instead of a site on file. The following fields become required when Drop Ship is active:

FieldRequiredDescription
Ship To NameYesRecipient name
Ship To Name 2NoAdditional name line
Ship To AddressYesStreet address
Ship To Address 2NoSuite/unit
Ship To CityYesCity
Ship To StateYes (US)State (required for US addresses)
Ship To CountryYesCountry
Ship To ZipYesPostal/ZIP code
FieldRequiredDescription
Hold Sales OrderNo (checkbox)Flags the order as on hold and displays a red Hold chip on the order. It is an informational flag only — it does not block creating shipments or invoices in the UI or on the server
Hold ReasonNoReason for the hold. Enabled only when Hold Sales Order is checked; optional even when Hold is enabled
Ship CompleteNo (checkbox)Indicates the full order should ship together; enforced in the UI only
Cancel BackordersNo (checkbox)Indicates unfulfilled backorder quantities should be cancelled; this is a UI-level control (stored but not enforced server-side)
Cancellation DateNoDate the order was or will be cancelled
Cancellation ReasonNoReason for cancellation (max 255 characters)
FieldDescription
Buyer ContactBuyer name at the customer (max 255)
Buyer PhoneBuyer phone number
Buyer Phone ExtensionBuyer phone extension
Warehouse ContactWarehouse contact name
Warehouse PhoneWarehouse phone number
Warehouse Phone ExtensionWarehouse phone extension
FieldDescription
Our Vendor IDYour vendor ID in the customer’s system (max 255)
DepartmentInternal department reference (max 255)
NotesFree-text internal notes
TabDescription
ItemsLine items — products, quantities, pricing, and GL accounts
SalesmenAssign salesmen and commission rates to this order
NotesInternal notes
Custom FieldsOrganization-specific custom data fields
ColumnRequiredDescription
ProductConditionalProduct from inventory (required if quantity > 0 or description is entered)
DescriptionNoItem description (max 1000 characters)
Ordered QuantityConditionalNumber of units ordered (required if product selected)
Order UOMConditionalUnit of measure for ordered quantity
Unit PriceNoSell price per unit
Price UOMConditionalUnit of measure for pricing
Discount %NoLine-level discount percentage
Unit CostNoCost per unit
Cost UOMConditionalUnit of measure for cost
Sale AccountConditionalGL account for revenue (required if product selected)
Cost AccountConditionalGL account for cost of goods (required if product selected)
Due DateNoLine-level due date
Customer ProductNoCustomer’s product code or reference

Add one or more salesmen to the order for commission tracking:

FieldRequiredDescription
SalesmanYesSales representative
Commission RateNoCommission percentage for this salesman

Clicking a Sales Order ID opens the full detail view.

TabDescription
GeneralAll header fields in read-only display
Custom FieldsCustom field values
TabDescription
ItemsLine items with expandable rows showing allocations and related invoices per line
AllocationsInventory allocated to this order (all lines)
SalesmenSalesmen assigned and their commission rates
InvoicesAll invoices generated from this sales order
Product LogHistory of inventory transactions against this order
AttachmentsUploaded documents and files

Each line item in the Items tab can be expanded to show two sub-tabs:

  • Allocations — Inventory allocated to this specific line
  • Invoices — Invoices that bill for this line

(A Shipments sub-tab exists in the code but is currently hidden.)


Navigate to Orders → Manage Invoices to see all sales invoices.

ColumnDescription
Sales Invoice IDSystem-assigned invoice identifier
CustomerCustomer account name
SiteDelivery or billing site name
Invoice TypeSales invoice type classification
Invoice DateDate on the invoice
Posting DateDate the invoice was posted to the GL
Total AmountTotal invoice amount

Invoices can be created directly (standalone) or generated from a sales order. Click Create Sales Invoice or select an order from the sales order selection dialog.

FieldRequiredDescription
CustomerYesCustomer account
Ship To AddressConditionalSite address (required unless Drop Ship is checked)
TermsYesPayment terms
Customer PO NumberNoCustomer PO reference
Sales Invoice TypeYesInvoice classification
Sales Invoice DateYesDate printed on the invoice
Posting DateYesDate the invoice posts to the general ledger
Due DateYesPayment due date

Drop Ship, Freight, Tax, and Discount fields are the same as on Sales Orders (see Section 6).

When you create an invoice, two header fields let you apply money the customer has already paid against the new invoice.

FieldRequiredDescription
Payment on Acct ApplicationNoAmount of the customer’s on-account prepayment credit to apply to this invoice. Must be zero or greater.
Order PrepaymentsNo (read-only)Total of unapplied prepayments/deposits already recorded against the linked sales order. This field is display-only and cannot be edited; its total is populated only when the invoice was created from a sales order that has deposits on it (otherwise it shows zero).

Payment on Acct Application draws from the customer’s prepayment balance — money the customer paid that has not yet been applied to an invoice. The amount you enter is applied to the invoice when you save it, and the customer’s account balance is increased by the invoice total minus the amount you applied here. If the amount you enter exceeds the customer’s available prepayment balance, the save fails with the message Prepayment Application exceeds available amount followed by the available amount.

Order Prepayments reflects deposits already collected against the sales order this invoice was created from. When an invoice is generated from an order, the system loads the order’s unapplied prepayment postings and totals them into this field. When you save the invoice, the remaining invoice amount (the invoice total minus the Payment on Acct Application amount) is automatically applied against the order’s prepayments, up to the amount of prepayments available on that order.

To apply a prepayment to an invoice:

  1. Open Create Sales Invoice, either standalone or by selecting a sales order. If you select an order that has deposits on it, the Order Prepayments total is filled in automatically.

  2. Enter the line items and confirm the invoice total.

  3. In Payment on Acct Application, enter the portion of the customer’s on-account prepayment balance you want to apply to this invoice. Leave it at 0 to apply none.

  4. Save the invoice. The entered amount is drawn from the customer’s prepayments, and any remaining balance carried by the linked order’s deposits is applied automatically.

TabDescription
ItemsLine items
SalesmenAssigned salesmen with commission rates
Custom FieldsCustom data fields
ColumnRequiredDescription
ProductConditionalProduct (required if quantity > 0 or description entered)
DescriptionNoItem description (max 1000 characters)
QuantityConditionalNumber of units (required if product selected)
Quantity UOMConditionalUnit of measure for quantity
Unit PriceNoSell price per unit
Price UOMConditionalUnit of measure for price
Discount %NoLine-level discount
Unit CostNoCost per unit
Cost UOMConditionalUnit of measure for cost
Sale AccountConditionalRevenue GL account (required if product selected and not a proforma invoice)
Cost AccountConditionalCost of goods GL account (required if product selected and not a proforma invoice)
Customer ProductNoCustomer’s internal product reference

Lead and Job are invoice header fields (in the General area), not line-item columns. Populated from the selected customer’s leads and jobs, Lead associates the whole invoice with a CRM lead and Job associates the whole invoice with a Job Costing job.


The Sales Invoice Type you select (in the General fields) controls two behaviors that are surfaced directly in the invoice header as read-only indicators:

IndicatorDriven ByMeaning
Tracking Inventory?The invoice type’s inventory-tracking settingWhen Yes, inventory-tracked line items relieve stock and post Cost of Goods Sold / Inventory entries.
Proforma Invoice?The invoice type’s proforma settingWhen Yes, the invoice is a proforma invoice and does not post to the general ledger.

A proforma invoice type is a sales invoice type flagged as proforma in its setup (see Sales Invoice Types under Settings). Proforma invoices behave differently from standard invoices in two ways:

  1. No general ledger posting. When a proforma invoice is created, the system skips the AR and inventory ledger entries that a standard invoice would generate. Voiding a proforma invoice likewise creates no reversing ledger entries, because there were none to reverse.
  2. Relaxed line-item account requirements. On a standard invoice, selecting a product on a line item makes the Sale Account (revenue GL) and Cost Account (cost-of-goods GL) required. On a proforma invoice, these two columns are not required, even when a product is selected — so you can issue a proforma without assigning revenue and cost accounts to each line.

To create a proforma invoice:

  1. On the Create / Edit Sales Invoice screen, set Sales Invoice Type to a type configured as proforma. The header Proforma Invoice? indicator will read Yes.
  2. Add line items as usual. Sale Account and Cost Account may be left blank on each line.
  3. Save the invoice. No general ledger entries are created.

Each line on the Items tab ends with an actions column: a trash icon that removes the line (Delete Detail) and a three-dot menu with the following options.

ActionAvailabilityDescription
View ProductRequires a product on the lineOpens the product record in a new tab
View Tiered PricingRequires a customer product on the lineOpens a read-only View Tiered Pricing dialog for that customer product
View Product LogRequires a product on the lineOpens a Product Log dialog showing inventory transactions for that product
View Sales HistoryRequires a product on the lineOpens the Sales History dialog for that product (see below)

The View Sales History action opens a dialog titled Sales History - <product ID> - <product description> that lists prior sales invoice lines for the same product, so you can see how the item has been priced and sold to customers before. When the line has a customer product assigned, the history is limited to lines that share that customer product; otherwise all sales history for the product is shown.

The dialog lists one row per prior invoice line, sorted with the most recent invoice date first. Voided invoices are excluded.

ColumnDescription
Invoice DateDate of the prior sales invoice
Sales Invoice IDThe prior invoice’s ID — opens that invoice in a new tab
CustomerCustomer name and ID — opens that customer in a new tab
QuantityQuantity sold on that line
Quantity UOMUnit of measure for the quantity
Unit PriceSell price per unit on that line
Price UOMUnit of measure for the price
Extended PriceLine total
DiscountDiscount amount applied to that line
Customer Prod IDCustomer’s product reference on that line

When a sales invoice is associated with a Job (via the Job header field), the system tracks a Retention amount — the portion of the invoice held back under the job’s retention terms.

Navigation: Orders → Manage Invoices → open or create an invoice → totals area (next to Sales Tax and Total).

FieldRequiredDescription
RetentionNoAmount of retention withheld on this invoice. Auto-calculated from the selected Job’s retention percentage applied to the after-discount amount.

How Retention is calculated:

  • When a Job is selected on the invoice, Retention is calculated as the Job’s retention percentage applied to the invoice’s after-discount subtotal (subtotal minus discount).
  • When no Job is selected, Retention calculates to 0.
  • The amount is recalculated whenever the totals are recomputed (for example, when line items or the discount change). Because editing the Retention field also re-runs the totals calculation, a value you type is re-derived from the Job’s retention percentage whenever a Job is selected.
TabDescription
GeneralHeader information in read-only view
Custom FieldsCustom field values
TabDescription
ItemsInvoice line items
SalesmenAssigned salesmen
Product LogInventory transaction history
AttachmentsUploaded files

Shipments record the physical movement of goods to fulfill sales order lines. The Sales Order Shipments screen has no dedicated sidebar menu entry (it is currently disabled in the menu configuration); reach it through links and actions on a sales order or from a sales invoice (an invoice links to its shipment). The Orders sidebar category itself contains Manage Orders and Manage Invoices.

Displays all shipments with their Shipment ID, Customer, Ship To, Carrier, Pro Number, Scheduled Pickup, and Expected Delivery. There is no Order, Ship Date, or Status column.

A radio filter above the search box restricts which shipments the search returns. It defaults to Unshipped:

OptionResult
AllReturns matching shipments regardless of whether they have been shipped
UnshippedReturns only shipments that have not yet been shipped (the default)
ShippedReturns only shipments that have already been shipped

The list stays empty until you type in the search box; the filter then narrows the matches returned for what you typed. Search matches against Shipment ID, Pro Number, SSCC-18, and the customer or ship-to name and address. Changing the filter re-runs the current search with the new shipped/unshipped restriction.

A shipment is linked to a specific sales order and records which order lines are being fulfilled, the quantity shipped per line, and the freight and logistics detail used to move the goods. In addition to the customer, ship-to address, and source building, the form captures the following freight and logistics fields:

FieldRequiredDescription
DescriptionNoFree-text description of the shipment (max 255 characters)
Special Handling RequirementsNoFree-text handling instructions for the carrier (max 255 characters)
SSCC-18ConditionalSerial Shipping Container Code. Read-only on the form; generated automatically if left blank. Required when dispatching
CarrierNoCarrier moving the shipment. Selecting a saved carrier auto-fills the SCAC Code
SCAC CodeConditionalStandard Carrier Alpha Code. Populated automatically when a saved carrier is chosen, or entered manually. Required when dispatching
Pro NumberNoCarrier’s PRO (progressive) tracking number (max 255 characters)
Source BuildingYesWarehouse or building the goods ship from
Freight TermsYesFreight delivery terms for the shipment
NMFC ClassificationConditionalNational Motor Freight Classification for LTL freight. Required when dispatching
Weight (lbs)NoTotal shipment weight in pounds (whole number, 0 or greater)
Total PalletsNoNumber of pallets (whole number, 0 or greater)
Total CartonsNoNumber of cartons (whole number, 0 or greater)
Total DrumsNoNumber of drums (whole number, 0 or greater)
Scheduled PickupNoDate and time the carrier is scheduled to pick up
Expected DeliveryNoDate and time delivery is expected
Trailer NumberNoTrailer identifier (max 255 characters)
Seal NumberNoSeal identifier (max 255 characters)

The view screen shows full shipment detail and the sales order lines fulfilled (Items tab: Order ID, Product ID, Description, Ordered Qty, Shipped Qty, Shipment Qty, UOM), plus Product Log and Attachments tabs. The header indicates whether the shipment auto-invoices via the Auto-Invoice? and Is Invoiced flags, but it does not list the actual invoices generated from the shipment.

A shipment carries two independent state flags, each shown as a chip on the View Shipment header:

StateValuesMeaning
Open / ClosedOpen or ClosedWhether the shipment is still being worked. A newly created shipment is Open; dispatching it sets it to Closed. You can also toggle this manually with the Open Shipment / Close Shipment action.
Shipped / UnshippedShipped or UnshippedWhether the goods have left the warehouse. A shipment is created Unshipped and becomes Shipped only after it is dispatched.

If the shipment is on hold, a red Hold chip also appears, showing the hold reason when one is recorded.

A shipment starts life Open and Unshipped: it has been planned and its lines and tracking details captured, but no inventory has moved yet. The Dispatch Shipment action is what actually ships it — see below.

Dispatching is the step that turns a planned shipment into a shipped one. Both actions are reached from the Actions menu on the View Shipment screen and require the Dispatch Sales Order Shipment permission.

Dispatch Shipment (shown when the shipment is Unshipped) opens a dialog where you confirm the carrier and shipping details, then commits the shipment. When you dispatch:

  • The shipment’s allocated inventory is removed from on-hand stock.
  • Shipped quantities are added to the fulfilled sales order lines.
  • The shipment is marked Shipped and Closed.
  • For company-owned inventory, an invoice is generated automatically as part of the dispatch.

The Dispatch dialog captures:

FieldRequiredDescription
Special Handling RequirementsNoFree-text handling notes
SSCC-18Serial shipping container code (display only; not editable)
Source BuildingYesThe building the goods ship from
Freight TermsYesCustomer freight terms
CarrierYesShipping carrier (select an existing carrier or type a new one); selecting a carrier fills in its SCAC Code
SCAC CodeYesStandard Carrier Alpha Code
Pro NumberNoCarrier pro / tracking number
Trailer NumberNoTrailer identifier
Seal NumberNoSeal identifier
NMFC ClassificationYesFreight classification
Weight (lbs)YesTotal shipment weight
Total PalletsYesPallet count
Total CartonsYesCarton count
Total DrumsYesDrum count
Invoice DateConditionalInvoice date (used when the shipment auto-invoices)
Posting DateConditionalGL posting date (used when the shipment auto-invoices)
Scheduled PickupNoCarrier pickup date and time
Expected DeliveryNoExpected delivery date and time

To dispatch a shipment:

  1. Open the shipment in View Shipment. Confirm it shows the Unshipped chip.
  2. Open the Actions menu and choose Dispatch Shipment.
  3. Review and complete the carrier and shipment detail fields, then click Dispatch.
  4. The shipment header updates to Shipped and Closed, and an invoice is created for any company-owned inventory.

Reverse Dispatch Shipment (shown when the shipment is Shipped) undoes a dispatch. It opens a small dialog asking only for a Posting Date. When you reverse a dispatch:

  • The previously shipped inventory is added back and re-allocated to the shipment.
  • Shipped quantities are removed from the sales order lines.
  • Any invoice that was generated by the dispatch is voided.
  • The shipment returns to an Unshipped state (it remains Closed; use Open Shipment to reopen it).

The Actions menu on a shipment lets you preview, print, and email the shipment’s paperwork. Most of these documents open as a PDF in a new browser tab.

Navigation: Sales order shipment → Actions menu.

ActionDescription
Preview Bill of LadingOpen a PDF preview of the bill of lading for this shipment
Preview Packing ListOpen a PDF preview of the packing list for this shipment
Preview Pick TicketOpen a PDF preview of the warehouse pick ticket (disabled once the shipment has been shipped)
Preview Shipping LabelOpen a PDF preview of the shipping label for this shipment
Print DocumentsOpen the Print Sales Order Shipment Documents dialog to send documents to a printer
Email Bill of LadingSend the bill of lading to a recipient via email
Email Packing ListSend the packing list to a recipient via email
Email Pick TicketSend the pick ticket via email (disabled once the shipment has been shipped)
Audit ShipmentView the full audit trail of changes to this shipment

When you email a shipment document, the same Email Dialog used elsewhere in the module opens (see Email Dialog under Actions & Dialogs). For a Bill of Lading or Packing List, the recipient list is pre-filled with the customer contacts that are flagged to receive shipping notifications.

The Print Sales Order Shipment Documents dialog sends one or more documents directly to a configured printer instead of opening a PDF preview. It lists three documents, each with its own enable checkbox, quantity, and printer selection:

FieldDescription
Bill of LadingWhen enabled, prints the bill of lading. Quantity defaults to 1. The Printer list shows your PCL printers
Packing ListWhen enabled, prints the packing list. Quantity defaults to 1. The Printer list shows your PCL printers
Shipping LabelsWhen enabled, prints the shipping labels. Quantity defaults to 1. The Printer list shows your Zebra printers

All three documents are enabled by default, and each printer field defaults to your first available printer of the matching type (the first PCL printer for Bill of Lading and Packing List, the first Zebra printer for Shipping Labels). Uncheck any document you do not want to print. The Print button is unavailable unless at least one document is enabled.

  1. Open the shipment and choose Print Documents from the Actions menu.

  2. For each document you want to print, leave its checkbox enabled (or enable it), set the quantity, and choose a printer from the list.

  3. Uncheck any documents you do not want to print.

  4. Click Print to send the selected documents to their printers, then close the dialog.

The shipment View screen header shows two status chips and, when applicable, a hold chip:

ChipValuesMeaning
Open / ClosedOpen (green) or Closed (blue)Reflects the shipment’s isClosed flag
Unshipped / ShippedUnshipped (amber) or Shipped (grey)Reflects whether the shipment has been dispatched (isShipped)
HoldRed Hold chip (shown only when the shipment is held)Displays Hold plus the selected reason, e.g. Hold: Credit Hold, when the shipment is flagged on hold

A shipment can be placed on hold independently of any order-level hold. The hold is set on the Create / Edit Shipment form:

FieldRequiredNotes
HoldNo (checkbox)Flags the shipment as on hold. When checked, the shipment displays a red Hold chip on its View screen
Hold ReasonNoReason for the hold. Enabled only when Hold is checked; clearing the Hold checkbox clears the reason. The list is limited to hold reasons configured to apply to sales order shipments

The shipment Actions menu includes an Open Shipment / Close Shipment toggle. The menu item label reflects the current state: it reads Close Shipment for an open shipment and Open Shipment for a closed one.

  1. Open the shipment’s Actions menu and choose Close Shipment (or Open Shipment).
  2. Confirm the action in the dialog, which names the shipment by its ID.
  3. The shipment’s Open / Closed status updates accordingly.

When a sales order is configured to invoice from shipments, the void and issue corrected invoice actions on the resulting invoices are disabled — the shipment record governs the billing.


Dispatching is the action that records a shipment as physically shipped. Open the Dispatch Shipment dialog from the shipment, complete the carrier and packaging details, then click Dispatch. Dispatching draws the allocated inventory, closes the shipment, and — for company-owned inventory — generates the sales invoice in the same step (see Auto-Invoice on dispatch below).

The dialog collects:

FieldDescription
Special Handling RequirementsFree-text handling notes for the shipment
SSCC-18The shipment’s SSCC-18 serial shipping container code (read-only)
Source BuildingBuilding the goods ship from (required)
CarrierShipping carrier (required)
Pro NumberCarrier PRO / tracking number
SCAC CodeStandard Carrier Alpha Code (required)
NMFC ClassificationFreight classification (required)
Freight TermsCustomer freight terms for the shipment (required)
Trailer NumberTrailer the shipment is loaded on
Seal NumberTrailer seal number
Weight (lbs)Shipment weight (required)
Total Pallets / Total Cartons / Total DrumsPackage counts (required)
Invoice DateDate used as the invoice date when auto-invoicing (required when Auto-Invoice applies)
Posting DateGL posting date used when auto-invoicing (required when Auto-Invoice applies)
Scheduled PickupScheduled carrier pickup date and time
Expected DeliveryExpected delivery date and time
Auto-InvoiceRead-only indicator showing the shipment will generate an invoice on dispatch

The Auto-Invoice checkbox is read-only — you do not toggle it. The dialog opens with Invoice Date and Posting Date pre-filled to today’s date, and both fields are required and editable while Auto-Invoice applies. Adjust these dates before dispatching if the invoice should carry a different invoice date or post to a different accounting period.

To dispatch a shipment and bill it in one step:

  1. Open the shipment and choose the dispatch action to open the Dispatch Shipment dialog.

  2. Confirm or adjust the carrier, Source Building, freight, weight, and packaging fields. Source Building, Carrier, SCAC Code, NMFC Classification, Freight Terms, Weight, Total Pallets, Total Cartons, and Total Drums are required.

  3. Review Invoice Date and Posting Date (both default to today). Set the Invoice Date and the accounting period Posting Date you want the generated invoice to use.

  4. Click Dispatch. The shipment is marked shipped and closed, the allocated inventory is drawn, and — for company-owned inventory — a posted sales invoice is generated automatically.

How the invoice is generated: When the dispatched shipment fulfills lines from more than one sales order, dispatch creates one sales invoice per sales order on that shipment. Each generated invoice uses the Invoice Date and Posting Date you entered, links back to the originating shipment, and posts its GL entries as part of creation, so it is a posted invoice rather than a draft. The shipment is then marked invoiced.

ActionDescription
Allocate InventoryNavigate to the inventory allocation screen for this order (disabled if the order is closed)
Preview Order AcknowledgementOpen a PDF preview of the order acknowledgement document
Preview Pick TicketOpen a PDF preview of the warehouse pick ticket
Email Order AcknowledgementSend the order acknowledgement to a recipient via email
Email Pick TicketSend the pick ticket via email
Audit Sales OrderView the full audit trail of changes to this order
Edit Sales OrderOpen the edit form (disabled if the order is closed)
Delete Sales OrderPermanently delete the order after confirmation (disabled if the order is closed)
ActionDescription
Preview InvoiceOpen a PDF preview of the invoice
Void InvoiceMark the invoice as void — requires entering a Void Date (disabled for shipment-based invoices)
Issue Corrected InvoiceCreate a replacement invoice for a voided invoice (disabled for shipment-based invoices)
Email InvoiceSend the invoice to a recipient via email
Audit Sales InvoiceView the full audit trail for this invoice

When sending any document (acknowledgement, pick ticket, or invoice) by email, a dialog opens where you can configure:

  • Recipient email address(es)
  • Subject
  • Body (message text)
  • Send Copy to Me — also send the email to your own address
  • Save New Email Addresses — save any newly entered recipient addresses for reuse

Both sales orders and invoices allow adding multiple salesmen:

  • Salesman (required) — select from configured salesmen
  • Commission Rate (optional) — percentage commission for this salesman on this transaction

When creating a sales order, you can load from a pre-sales order (legacy import). A dialog lists available pre-sales orders showing: Source, Customer, Customer PO #, Order Date, Requested, Due to Ship, Earliest Ship, Latest Ship, and Total.


Access via Accounts Receivable → Settings.

These GL accounts are required and must be configured before using the module:

FieldRequiredDescription
Sales LedgerYesRevenue GL account for product sales
Freight LedgerYesGL account for freight charges
Discount LedgerYesGL account for discounts granted
Tax LedgerYesGL account for collected sales tax
Inventory LedgerYesGL account for inventory cost of goods sold
Cash LedgerYesGL account for cash receipts
Accounts Receivable LedgerYesThe AR control account
Prepayments LedgerYesGL account for customer prepayments/deposits
FieldRequiredDescription
Default Payment TypeYesDefault AR payment type for new receipts
Default Customer TermsYesDefault payment terms applied to new customers (the input is not visually marked required, but the form validation requires a value)
SSCC-18 Company PrefixYesCompany prefix for SSCC-18 shipping barcode generation (max 10 characters)
TabDescription
Customer TermsDefine payment term options (e.g., Net 30, Net 60, 2/10 Net 30, COD)
Customer Freight TermsDefine freight delivery terms (e.g., FOB Origin, FOB Destination, Prepaid)
Customer StatusesManage status values for customer accounts
Customer CategoriesManage customer category classifications
Payment TypesDefine AR payment types (e.g., Check, ACH, Credit Card, Wire)
Deposit GroupsDefine named deposit groups (a description) used to group cash receipts onto bank deposits
Sales Order TypesDefine sales order type classifications
Sales Invoice TypesDefine sales invoice type classifications
SalesmenManage the list of available sales representatives
Sales Tax JurisdictionsConfigure tax jurisdictions with rates for tax calculation in the application
Shipping CarriersDefine available shipping carrier options

Sales Order and Invoice permissions are configured per role. The following capabilities can be granted or restricted:

PermissionDescription
Read Sales OrdersView the sales order list and details
Create Sales OrdersCreate new sales orders
Update Sales OrdersEdit existing open sales orders
Delete Sales OrdersDelete sales orders
Read Sales InvoicesView the invoice list and details
Create Sales InvoicesCreate new invoices
Void Sales InvoicesVoid posted invoices
Read Sales Order ShipmentsView shipment records
Create Sales Order ShipmentsCreate new shipments
Update Sales Order ShipmentsEdit shipment records
Manage SettingsAccess and modify AR Settings

Contact your system administrator to adjust role permissions.


Example 1: Standard Order-to-Ship-to-Invoice

Section titled “Example 1: Standard Order-to-Ship-to-Invoice”

Scenario: Henderson Contractors orders 500 concrete anchors at $2.50 each and 100 hex bolts at $1.50 each. Jeff Allen is the salesman. Total order = $1,400.00.

Step 1 — Create the sales order:

  1. Navigate to Orders → Manage Orders and click +.
  2. Customer = Henderson Contractors, Ship To = Henderson Main Yard — 88 Builder’s Lane.
  3. Order Type = Standard, Customer Terms = Net 30, Due to Ship = 02/20/2026.
  4. Freight Terms = FOB Origin, Freight Amount = $75.00.
  5. Items tab:
    • Line 1: Product = Concrete Anchor 3/8”, Qty = 500, Unit Price = $2.50, Sale GL = 4000 Sales Revenue → Line Amount = $1,250.00
    • Line 2: Product = Hex Bolt 1/2” × 3”, Qty = 100, Unit Price = $1.50, Sale GL = 4000 Sales Revenue → Line Amount = $150.00
  6. Salesmen tab: Jeff Allen, Commission Rate = 3%.
  7. Click Save. Sales Order SO-4100 created. Total = $1,400.00 + $75.00 freight = $1,475.00.

Step 2 — Allocate inventory:

  1. From SO-4100, click Actions → Allocate Inventory.
  2. Both products show sufficient stock. Reserve mode → Post.

Step 3 — Ship the order:

  1. Open SO-4100 and use its shipment action (the Sales Order Shipments screen has no dedicated menu entry), then click +.
  2. Sales Order = SO-4100, Ship Date = 02/20/2026, Carrier = Precision Trucking.
  3. Ship all quantities: Anchors = 500, Bolts = 100.
  4. Click Save.

Step 4 — Invoice:

  1. Navigate to Orders → Manage Invoices and click +.
  2. Customer = Henderson Contractors, link to SO-4100.
  3. Invoice Date = 02/20/2026, Invoice Type = Standard, Terms = Net 30 → Due Date = 03/22/2026.
  4. Line items populate from the order. Click Save.

GL posting:

AccountDebitCredit
AR Control$1,475.00
Sales Revenue (configured per line)$1,400.00
Freight Income$75.00
COGS$875.00
Inventory$875.00

Scenario: Henderson Contractors orders 200 stainless steel brackets at $3.75 each ($750.00). Only 150 are in stock; the remaining 50 are backordered.

Step 1 — Create the sales order:

  1. Customer = Henderson Contractors, Order Type = Standard.
  2. Item: Product = SS Bracket L-Type, Qty = 200, Unit Price = $3.75 → Line Amount = $750.00.
  3. Leave Cancel Backorders unchecked (default) to create a backorder for unfulfilled qty.
  4. Click Save. SO-4105 created.

Step 2 — Ship what’s available:

  1. Create shipment for SO-4105, Ship Date = 02/22/2026.
  2. SS Bracket: Shipped Qty = 150 (only 150 in stock). Backorder Qty = 50.
  3. Click Save.

Step 3 — Invoice the partial shipment:

  1. Create invoice from SO-4105.
  2. Invoiced Qty = 150 × $3.75 = $562.50.
  3. Click Save. Invoice posted.

Step 4 — Receive backorder and complete:

  1. When the remaining 50 brackets arrive in inventory, create a second shipment for SO-4105.
  2. Shipped Qty = 50.
  3. Create a second invoice: 50 × $3.75 = $187.50.

Result:

  • SO-4105 shows: Ordered = 200, Shipped = 200, Invoiced = 200 → Closed.
  • Two invoices: $562.50 + $187.50 = $750.00 total.

Rules are grouped by category. Each rule has an ID for cross-referencing.

  • BR-SO-C1: Drop Ship Address Required — When Drop Ship is enabled, manual Ship To address fields replace the standard site address and are required.
  • BR-SO-C2: Ship Complete — When enabled, the UI prevents partial shipment; all ordered quantity must be available before shipping. This is a client-side control; the flag is stored but not enforced server-side.
  • BR-SO-C3: Hold Flag Recorded — The hold flag and Hold Reason are recorded and shown on the sales order (a Hold chip in the order view). There is currently no UI block preventing a held order from being shipped or invoiced, and the hold is not enforced server-side.
  • BR-SO-A1: Customer Pricing — Customer-specific pricing auto-populates unit prices on order lines from special pricing agreements.
  • BR-SO-A2: Tax Calculation — Selecting a Sales Tax Jurisdiction causes the application to calculate tax amount on the order/invoice. The server stores the supplied tax percent and amount; calculation occurs client-side.
  • BR-SO-A3: Backorder Auto-Create — Partial shipments auto-create backorder quantities for remaining items unless “Cancel Backorders” is checked. Cancel Backorders is a UI-level control; the flag is stored but not enforced server-side.
  • BR-SO-A4: Invoice GL Post — Invoice posting auto-creates GL entries: debit the AR Control account / credit the configured revenue account, and for inventory-tracked items: debit the COGS account / credit the Inventory account.
  • BR-SO-W1: Order-to-Invoice — Create Order → Allocate Inventory → Ship → Invoice → Collect Payment.
  • BR-SO-W2: Void and Correct — Voiding an invoice reverses GL entries; a corrected invoice can be issued to replace it.
  • BR-SO-X1: Inventory Allocation — Sales orders create demand that drives inventory allocation; dispatched shipments draw from inventory and reduce on-hand.
  • BR-SO-X2: AR Collections — Invoices created from orders enter the AR collections cycle (Cash Receipt → Deposit).
  • BR-SO-X3: Commission Tracking — Salesman assignments on orders feed sales performance reports and compensation calculations.

Q: I can’t save a drop ship order — “Ship To address required.” When Drop Ship is enabled, the standard Ship To field is replaced with manual address fields that must all be filled (BR-SO-C1). Enter the complete delivery address in the custom fields.

Q: I can’t create a partial shipment — the system requires full quantity. The Ship Complete flag is enabled on the order (BR-SO-C2). The UI prevents partial shipments when this flag is set — all ordered quantity must be available. Disable Ship Complete on the order if partial shipment is acceptable, or wait until full stock is available.

Q: An order is marked on hold — does that stop shipping or invoicing? No. The hold flag and Hold Reason are recorded and shown on the order (a Hold chip) for awareness (BR-SO-C3), but the system does not currently block a held order from being shipped or invoiced. Review the Hold Reason, resolve the issue, and clear the hold for accurate records before proceeding.

Q: I need to void an invoice but the Void button is disabled. Invoices generated from a shipment cannot be voided directly. You must reverse the shipment instead. For standalone invoices (not linked to a shipment), the Void button should be available — check your permissions.

Q: Backorders weren’t created after a partial shipment. The Cancel Backorders checkbox was checked on the order (BR-SO-A3). When checked, partial shipments do not auto-create backorders. Create a new order for the remaining quantity, or re-open the original order if possible.

Q: The invoice amount includes unexpected tax. A Sales Tax Jurisdiction is selected on the order or invoice, which causes the application to calculate tax (BR-SO-A2). If tax should not apply, remove the jurisdiction. If the tax rate is wrong, check the jurisdiction configuration in AR Settings → Sales Tax Jurisdictions.

Q: Customer pricing isn’t populating on order lines. Customer-specific pricing auto-populates from special pricing agreements (BR-SO-A1). Verify the customer has a pricing agreement configured, and that the product is included in that agreement. If no agreement exists, prices default to the product’s standard price.


  • Order → Invoice workflow: The typical flow is Create Sales Order → Allocate Inventory → Ship → Invoice. Invoices can also be created directly without a sales order for services or one-off billing.

  • Drop ship orders: When Drop Ship is enabled, the ship-to address fields override the customer site address. All required ship-to fields must be filled before saving.

  • Order holds: Placing an order on hold records the hold flag and reason and shows a Hold chip on the order, but it does not currently prevent the order from being shipped or invoiced. Always enter a Hold Reason so the team knows why the order is held and what action is needed before processing it.

  • Ship Complete: Enabling Ship Complete causes the UI to prevent partial shipments. All ordered quantities must be available before the UI allows the shipment to be created. This is a client-side control.

  • Sales tax: Configure Sales Tax Jurisdictions in Settings to enable tax calculation in the application. Once a jurisdiction is selected on an order or invoice, the application calculates and populates the tax percent and amount. The server stores the supplied values.

  • Salesman commissions: Adding salesmen to an order or invoice is important for commission reporting. Multiple salesmen can share an order with different commission rates.

  • Voiding invoices: Only invoices that were not generated from a shipment can be voided directly. For shipment-based invoices, reverse the shipment instead. The Void Date is required and should typically match your accounting period.

  • Corrected invoices: When you issue a corrected invoice after voiding, the system creates a new invoice to replace the voided one. The original voided invoice remains in history for audit purposes.

  • SSCC-18 prefix: The SSCC-18 Company Prefix is used for generating compliant GS1 shipping labels. It must match your registered GS1 company prefix.

  • Aging dashboard: The Accounts Receivable Aging chart is a static visualization of open AR by aging bucket. To drill into specific customers, use the Top 10 Bad Debt Customers (90+ Days) chart on the AR Dashboard, where clicking a bar opens that customer’s record.

  • Product log: The Product Log tab on sales orders and invoices shows the inventory transaction history associated with that document — with columns such as Date, User, Transaction ID, Product ID, Location ID, Pallet ID, Serial Number, Transaction Type, Description, and quantities. Transaction types reflect the underlying inventory movements (for example Manage Shipment, Reserve Inventory, Allocate Inventory, Count Adjustment, and Post Inventory Adjustment) — useful for reconciliation and auditing.