Skip to main content
Sales orders capture customer demand; fulfillments move inventory through pick, pack, and ship. adorabl links orders to invoices, payments, and inventory relief at ship time. You can also compare rates and buy a shipping label from the order or fulfillment.

Prerequisites

Before creating sales orders:
  • Customers exist for B2B accounts (B2C may use a pooled customer).
  • Items with stock in a warehouse.
  • Default shipping warehouse configured under Products setup.
  • Optional: Sales channel tagged for reporting and fulfillment defaults.
  • Optional: packaging boxes and scales configured under Commerce setup for the pack workspace.

Sales order lifecycle

Create and submit a sales order

1

Open Sales Orders

  1. In the sidebar, open Commerce.
  2. Click Sales Orders.
The list shows order #, customer, channel, status, totals, and dates. Use Workflow summary in the header to open the channel-based order → ship → invoice guide.
2

Create a new order

Click New order.Set header fields:The header also shows the customer’s terms and contact details. A collections note appears when dunning is paused. On closed orders, header fields display as read-only. Payments recorded against the order are listed on the Payments tab; click one to open the incoming payment.The Details card header summarizes the applied workflow — the next step and a row of step dots. Expand it to see every step for this order’s fulfillment method.
3

Add lines

On the line grid, pick items from the catalog, enter qty ordered, and confirm unit price. Choosing an item fills the description with that item’s name, including when you change the item on a line that already has a description. adorabl also shows:
  • On hand for the selected ship-from warehouse. A warning appears when ordered quantity is greater than available stock.
  • Unit cost from the item’s standard cost.
  • Margin, calculated as (unit price − unit cost) ÷ unit price.
  • Supply, where eligible lines can use Purchase to order.
Non-stock, purchase-to-order, and drop-ship lines do not show an on-hand quantity.Line numbers are fixed once the order is first saved. You can drag lines into a different order only on an unsaved draft; after that, new lines append after the last existing number and removed lines leave a gap, so audit history always refers to the same line.
4

Save and submit

  • Save as Draft — keeps editing without confirming. Drafts show as Draft order in lists and the header; the order number is assigned when you confirm.
  • Save — moves status to Open, assigns the order number, and enables fulfillment creation.
Confirmed orders appear in fulfillment workflows and dashboard order KPIs. External fulfillment methods create a waiting fulfillment automatically. Customer pickup is prepared for pickup without a manual pick step.On an Open order the primary header action becomes Fulfill, which starts the first fulfillment. Once a fulfillment is already in pick or pack, the same button reads Fulfill remaining and opens that fulfillment — a pick-state order lands on the picking list, and a pack-state order lands on packing. The Next: hint in the Details header links to the same place.
Expand the workflow summary in the Details card header on the order to see how this order’s channel defaults map to pick, pack, ship, and invoicing steps.

Fulfillment workflow (pick → pack → ship)

Fulfillments track warehouse work against a sales order. Each fulfillment carries the order’s fulfillment method from channel defaults, and the method decides what the fulfillment needs: only In-house fulfillments weigh a package and buy a shipping label. 3PL, customer pickup, marketplace, and supplier drop-ship fulfillments skip both.

Fulfillment detail layout

The Details card header carries the workflow strip — the method badge, progress dots, a Next: hint for the current stage, and a Workflow expander that lists every stage with units completed. The totals strip includes Postage: the label charge, No label purchased, or a caption such as Quote — not bought when a rate was quoted and not purchased. While a fulfillment is in Picking, Packing, or Ready for pickup, the Details card starts collapsed with a one-line summary (warehouse · sales order · units) so the pick list or pack workspace sits at the top of the screen. Click the card head to expand it.

Orders list

Commerce → Sales Orders lists each order with Channel and ext. order number beside the adorabl order number. Channel is the source, such as Shopify - Web or Amazon FBA. ext. order number is the order number in that channel. Workflow summary in the header opens the path each channel takes from order to invoice.

Fulfillments list

Commerce → Fulfillments lists every fulfillment document — one row per fulfillment, so an order shipped in two parts shows two rows. Each row shows the fulfillment number, its sales order, customer, warehouse, method, status, requested / picked / packed quantities, fulfilled date, and the invoice created from it. Click a tile at the top to scope the list: Search matches fulfillment number, sales order number, customer, warehouse, method, status, and tracking number.
1

Start fulfillment

Open a submitted sales order and click Fulfill, or Fulfill remaining when a fulfillment is already in progress.
  • In-house orders create a fulfillment that begins in Pick. Fulfill remaining opens the open fulfillment instead of raising an error that nothing is left to fulfill.
  • Customer Pickup orders show Record pickup and skip manual pick and pack.
  • 3PL, Marketplace fulfillment, and Supplier drop ship orders already have a waiting fulfillment created during submit.
The fulfillment header keeps Complete picking primary during pick. Pack slip, gift note, shipment confirmation, Cancel, and Void sit in the overflow menu, and Auto-print stays available as a toggle.
2

Work the pick queue

  1. Open Commerce → Fulfillments and click the Picking tile (or open Pick batches for batched picking).
  2. Click a row to open fulfillment detail.
  3. Enter qty picked per line, record short-pick reasons when needed, and allocate quantities to bin locations. When the warehouse uses bin locations, picking cannot complete until every picked unit has a bin.
  4. Save pick progress and click Complete picking to advance to Pack.
3

Pack and buy the label

  1. Open Commerce → Pack, or open the fulfillment from the Packing tile.
  2. Scan a tote or shipment barcode, or select a ready fulfillment from the queue.
  3. Check the Ship to address in the Details card. It is editable during pack and verified as you type; a change saves to the order and re-rates the shipment.
  4. Assign each package to a box from your configured box list, and enter weight manually or read it from a configured scale. Add gift notes when needed.
  5. Print pack slip for warehouse paperwork and save the package.
  6. In the Shipping panel below the pack workspace, pick a carrier rate and click Buy label. Buying the label is how an in-house fulfillment ships: adorabl purchases postage, records tracking, relieves inventory, posts COGS, and accrues the label cost in one step. See Shipping labels.
Before spending postage, adorabl checks that the shipment can post — every picked unit has a bin when the warehouse uses bins, and every item has a standard or average cost. If something is missing, the panel names it and no label is bought.Rating and label purchase use the order’s assigned warehouse as the ship-from address. If that warehouse’s address is incomplete, adorabl stops and names the warehouse rather than shipping from somewhere else.
4

Record other fulfillment methods

Fulfillments that do not buy a label finish from their own action instead:
  • Customer Pickup — click Record customer pickup.
  • 3PL — click Complete fulfillment when the 3PL confirms shipment. The Commerce → Ship queue lists what is waiting.
  • Marketplace fulfillment — click Record marketplace fulfillment when the marketplace confirms.
  • Supplier drop ship — enter the supplier’s tracking and click Record supplier fulfillment.
5

Invoice

adorabl creates the AR invoice for you when a fulfillment ships — see Invoicing from fulfillment. You can still create an invoice by hand from the order’s Related invoices section, consolidate several shipments, or invoice service-only orders with Create from Sales Orders in Invoices & adjustments.

Invoicing from fulfillment

An AR invoice is created automatically when a fulfillment ships or is confirmed — whether that is an in-house label purchase, a 3PL confirmation, a customer pickup, or a marketplace (for example, Amazon FBA) confirmation.
  • One invoice per shipped fulfillment. An order that ships in two fulfillments gets two invoices. The order stays Open until every ordered quantity has shipped and been invoiced.
  • Short picks invoice what shipped. If a fulfillment was short-picked, the invoice covers the posted quantity and the order stays open for the remainder.
  • Lines and quantities come from the shipment; prices, tax, discounts, and terms come from the sales order. The invoice date is the shipment confirmation date.
  • Order payments apply automatically. When the order already carries a successful payment — a checkout deposit, a prepayment recorded on confirm, or any incoming payment tied to the order — adorabl applies the unapplied balance to the new invoice, up to the invoice total. Across several shipments, the remaining cash flows to each later invoice until it is used up. This no longer depends on the channel’s Prepayment expected flag.
  • The fulfillment shows its invoice, and the invoice links back to the fulfillment and order.
Orders with stock lines always wait for a posted fulfillment before any invoice is created, for every fulfillment method. Customer pickup (for example, Shopify POS) and marketplace orders (for example, Amazon FBA) record payment at confirm and invoice when the pickup or marketplace fulfillment is recorded. Service-only orders — no stock lines — are not invoiced automatically and do not need a fulfillment. Invoice them when you are ready with Create from Sales Orders on a new invoice. See Invoices & adjustments. If the invoice cannot be created — for example, an item is missing a revenue account — the fulfillment shows Invoice pending – error with the reason, appears under that tile on the Fulfillments list, and adorabl retries automatically once you fix the cause.

Fulfillment methods

Only In-house fulfillments require a weighed package and buy postage. The other methods never offer label purchase. There is no separate label or carrier policy to configure — the method decides.

Purchase to order

Use Purchase to order when you need to buy a stock item for a specific sales order before fulfilling it from your warehouse.
1

Mark the sales-order line

On the sales-order line, set Supply to Purchase to order. Submit the order.
2

Create the purchase order

Click Create purchase order. adorabl groups eligible lines by preferred supplier and links each PO to the sales order.
3

Receive the goods

Open the linked PO and receive it into the sales order’s warehouse. After the PO is fully received, click Fulfill sales order.
4

Pick, pack, and fulfill

adorabl opens the standard in-house fulfillment. Complete pick, pack, and fulfillment using the newly received stock.

Correct a submitted order

Open orders stay editable. When you save a material change — a quantity, an item, a line added or removed, a warehouse or ship-to change — adorabl asks why and records an order action with a full before-and-after snapshot.
1

Edit the open order

Change the lines or header fields directly on the order.
2

Pick a reason

A bar docks at the bottom of the screen next to Save changes. It names the detected change — for example, Added line 2 (TR-JK-L) qty 3 — and offers reason chips for that kind of change:Every set also includes Other, which asks for a short note. One tap on a chip is enough to save; a note is optional otherwise.
3

Save changes

Click Save changes in the bar (or the header Save icon). adorabl saves the order and the action together. Pressing Save without a reason scrolls the bar into view and highlights the first chip.
Recorded actions appear on the order’s Order actions tab — what changed, who changed it, the quoted reason, and expandable previous → new values by line. The Activity tab keeps the field-level log. See Audit log and record history. Draft orders and notes-only or channel-order-number edits save without a reason.

Protected work

For a partially fulfilled order, adorabl keeps the order open and protects committed work:
  • You can change or remove fully uncommitted lines.
  • You can reduce a partially fulfilled line only as far as its fulfilled quantity.
  • Item, description, price, and supply method are locked on picked or fulfilled lines.
  • Lines assigned to an active fulfillment stay locked until that fulfillment is cancelled.
  • Replace a committed item by cancelling its remaining quantity and adding a new line.
Use Reopen to draft when an open order has no committed fulfillment activity. Unstarted waiting fulfillments are cancelled automatically. Posted invoices, posted fulfillments, and payment mismatches can block correction.

Copy an order

Use Copy order to start a new draft from an existing sales order. adorabl copies the order details and lines but does not copy fulfillment activity or the channel order number. You can optionally create a draft payment for the new order.

Example: Trail Ridge Outfitters

Order SO-8820 for Aspen Sports Co.: Workflow:
  1. Save → status Open, channel B2B Portal, method In-house
  2. Create fulfillment FL-5501 → pick quantities captured from bin A-12-3
  3. Pack into Medium carton box, weigh it, print pack slip on March 4
  4. Buy label → postage purchased, inventory reduced, COGS posted, label cost accrued
  5. Invoice INV-1051 created automatically from the shipped fulfillment → AR balance $1,680.00
Dashboard Fulfilled on-time KPI compares ship date to order date (within 2 days = on time).

Returns

On a Fulfilled, Invoiced, or Closed order, click Create return. The order’s Returns tab lists each return and its Outcome — Received and restocked, Customer kept the item, or the choice still on a draft. See Customer returns.

Relationship map

Both sales orders and fulfillments expose a Relationship map action showing linked invoices, payments, fulfillments, returns, purchase orders, and journal entries — useful when tracing a channel order from demand through supply and cash.

Customer returns

Authorize a return, restock what comes back, and credit the invoice.

Shipping labels

Compare rates, buy postage, and print labels from an order.

Sales channels

Configure channel fulfillment and shipping defaults.

Invoices & adjustments

Bill customers after fulfillment — including consolidated invoices.

Stock on hand

Verify inventory before submitting orders.

Warehouses

Configure shipping and receiving locations.

Troubleshooting

Save as Draft keeps the order in draft. The header Save icon confirms it. Add at least one valid line with item, quantity, and price, resolve red validation on the line grid, and select a customer.
The order must be Open. Draft orders need Save first. External methods use the waiting fulfillment created when the order was confirmed, so open that record instead of creating another one.
adorabl blocks reopen when the order has posted invoices, committed fulfillment activity, or payment totals that no longer match the order. Complete or reverse the downstream work first.
Customer pickup allocates bin stock automatically. Correct the inventory shortage before recording pickup.
Enter the supplier’s tracking number on the waiting fulfillment first. Drop-ship fulfillment does not post warehouse inventory or COGS; the linked AP bill records the cost.
Complete the workflow shown in the Details header. Orders that ship, are picked up, or are fulfilled by a 3PL or marketplace invoice only after that fulfillment is recorded — and adorabl creates the invoice for you at that point.
Open the fulfillment and read the reason in the alert — usually a missing revenue account or item GL default. Fix the cause; adorabl retries the invoice automatically. Click the Invoice pending – error tile on the Fulfillments list to see every affected shipment.
You changed an open order. Choose a reason chip in the bar at the bottom of the screen, then click Save changes. Draft orders do not ask for a reason.
The order’s assigned warehouse is missing part of its address. Complete the street, city, region, postal code, and country on that warehouse, then rate again. adorabl does not substitute a different warehouse.
Check Stock on hand for the fulfillment warehouse. The ship dialog shows stock issues with a refresh action when bin allocation or on-hand is short.
Confirm all lines are fully shipped. Short-picked and partial fulfillments invoice what shipped and leave the order Open until the remaining quantity ships or the order is closed manually.
adorabl applies a successful order-tied payment to each shipment invoice automatically, up to the invoice total. If the payment covered less than the order, later invoices stay open for the difference. Payments recorded as standalone incoming payments without the order reference are applied by hand in Incoming payments.
In-house fulfillments need a box and a package weight before the label can be bought. Configure boxes and scales under Settings → Commerce if the dropdowns are empty.
adorabl checks that the shipment can post before buying. Read the message in the Shipping panel: assign bins for every picked unit (Review allocations) when the warehouse uses bin locations, or add a standard or average cost to the named items. Then buy the label again.
Only In-house fulfillments buy labels. 3PL, customer pickup, marketplace, and drop-ship fulfillments finish from their own action in the header. Check the fulfillment method badge in the Details header.
Open the fulfillment at the Packing stage and use the Shipping panel below the pack workspace. Save a weighed package, pick a rate, and buy a label. See Shipping labels.