Manage order lines
The line items are the heart of a sales order — the products, quantities, and prices you're selling. This guide covers everything you do to the lines after an order exists: adding them, editing them inline, mapping an unmatched channel line to a product, swapping one SKU for another, reclassifying a line, adding decorations, and removing lines.
To start a brand-new order, see Create a sales order. To change the order's header — customer, addresses, shipping method — see View and edit a sales order. Line-level discounts and charge lines have their own guide: Add discounts and charges.
The examples below use the demo order SO-DOCS-0001 — customer Blue Bottle Retail, store Main Store, warehouse Main Warehouse — with products Stainless Water Bottle 750ml, Insulated Tumbler 500ml, and Reusable Straw 4-Pack.
Before you begin
You work with lines on the order's Lines tab. The controls appear only when all of these are true:
| Requirement | If it isn't met |
|---|---|
| You have the Update sales orders permission. | The add row, inline editing, and the per-line actions menu don't appear. See Permissions reference. |
| The order is editable — not cancelled, and not gated by a fully Paid status. | The line grid opens read-only. A cancelled or fully paid order behaves like a closed one for editing. |
| No one else holds the order's edit lock. | You see the grid read-only with a lock banner and Request edit / Take over buttons. See View and edit a sales order. |
| The specific line isn't already committed to fulfillment. | Lines that have shipped units (or an in-flight fulfillment order) are locked against structural changes — see the warehouse lock and the void-first notes below. |
Adding a line, editing a cell, mapping, replacing, reclassifying, decorating, and deleting each save on their own as you go — you don't need a separate Save press for the grid. Header edits are different; they're saved together through the order's Edit flow.
Add a line
Open the order's Lines tab. There are four ways to add products, so pick the one that fits how much you're adding.
| Method | How to do it | Best for |
|---|---|---|
| Inline search-and-add | Use the Search by SKU or name… field in the row at the bottom of the grid. Type, then use the arrow keys and Enter (or click a result) to add it. | Adding a few known products quickly. |
| Browse products | Click the Browse products icon (next to the inline add field) to open the product drawer, tick several products, and add them together. | Building an order by shopping the catalog. |
| Import line items | Click Import in the grid toolbar to paste or upload a list of SKUs and quantities. See Import line items below. | A long list you already have in a spreadsheet. |
| Add a subscription offering | Click Add Offering to add a recurring subscription product. See Add a subscription offering below. | Recurring / subscription products. |
Add a line inline
- On the Lines tab, click into the Search by SKU or name… field in the add row at the bottom of the grid.
- Type at least two characters. A dropdown lists matching products with their price and availability.
- Move the highlight with the ↑ / ↓ arrow keys, then press Enter to add the highlighted product. You can also click a result.
- The product drops in as a new line. Set its Qty and Unit Price directly in the row.
What you'll see: each product becomes a line showing its SKU, name, quantity, unit price, and line total, and the order totals update in the footer.
If a product has no price configured for the order's pricing tier, its dropdown entry shows a Not priced warning. You can still add it — the line is flagged so you can set the price manually afterward.
Edit a line inline
Every editable cell saves on its own. On a line's row you can change:
- Qty — the quantity ordered.
- Unit Price — the per-unit price.
- Discount % — a line-level discount (0–100). Order-wide discounts and charge lines live in Add discounts and charges.
- Description — click the line name to edit the product description shown on this order.
- Nominal Code — the nominal (accounting) code the line's revenue posts to, when per-line nominal codes are turned on. Clearing the override re-resolves the code from your mapping rules on the next save.
Click Bulk Edit in the grid toolbar to select lines and apply a Reprice (from a pricing tier), a Discount, a Tax rate, or a Nominal code to the selected lines — or to all lines when none are selected. Click Done to leave bulk-edit mode.
Add a subscription offering
- Click Add Offering in the grid toolbar.
- In Add Subscription Offering, search and select an offering. SKU.io resolves the correct edition for the order date and shows it under Resolved Edition.
- (Optional) Expand Override Edition to pick a different edition manually and record a reason. See Reclassify a line for changing the edition later.
- Set the Quantity and click Add to Order.
The line is added and pinned to that subscription edition. For how bundle and subscription lines behave, see Bundle and subscription lines.
Import line items in bulk
Use Import in the grid toolbar to add many lines from a file or a paste.
- Click Import. The Import Line Items dialog opens.
- (Optional) Click Download Template for a file with the required headers.
- Drag in a CSV, TSV, or Excel file, click Choose File, or paste rows into the text box. Each row needs a SKU; quantity and price are optional.
- Confirm the SKU / Barcode, Quantity, and Price column mapping and the First row is a header toggle, then click Validate.
- Review the Matched Items — adjust any quantity or price — then decide whether to Replace all existing lines (unchecked adds to the existing lines) and click Import.
SKUs that don't resolve to a product are listed under Unmatched SKUs (with a Copy to clipboard action) and aren't imported. Products that aren't a standard or kit type are skipped and shown with their type. Fix those SKUs and re-import if you need them.
A draft order is allowed to have zero lines, but it shows a "No lines" warning until you add at least one. An order can't be approved with no lines.
Map an unmatched channel line to a product
When an order imports from a sales channel, a line whose channel SKU didn't resolve to one of your products comes in unmapped. It shows an amber Link to product action in place of a SKU, and it blocks fulfillment and prevents the order from closing until it's mapped.
- On the Lines tab, click Link to product on the unmapped line (or filter the grid to Unmapped first). The Link Line Item to Product dialog opens, showing the channel listing details for reference.
- Keep the Map to Product tab selected and search for the matching product by SKU or name. Use the Browse products icon to browse instead.
- Click Map to Product.
What you'll see: the line now shows the mapped product's SKU, and it no longer blocks fulfillment.
Mapping here fixes the current order. If the dialog reports that other orders also have the same unlinked item, map it centrally on the channel's product mapping page (the dialog links to it) so future orders resolve automatically. See How channel orders sync.
The same Link Line Item to Product dialog has a Convert to Revenue Line tab. Use it when the channel line isn't a stocked product at all (for example a fee or surcharge) — pick a financial line type and convert it. See Reclassify a line.
Replace a line with different SKUs
Replacing swaps one line for one or more different SKUs while keeping the original line total and the channel tie. Use it to substitute an out-of-stock item, or to break a single line out into its component SKUs.
- On the line's ⋮ (actions) menu, click Replace with SKUs. The Replace line with SKUs dialog opens showing the original line and its total.
- Search and select the replacement SKU. Set its Qty; the Unit amount is prorated automatically so the replacement total matches the original line total.
- Click Add SKU to add more replacement SKUs, splitting the total across them. Edit any Unit amount to override the split, or click Reset to even split to reprorate by quantity.
- If the line came from a sales channel, choose how the channel mapping should behave under Channel product mapping (see the note below).
- Click Replace line.
The replacement amounts must total exactly the original line total — the Replace line button stays disabled (with a tooltip explaining why) until they match and every SKU is unique.
For a channel-tied line, Just this order replaces the line here only and leaves the channel mapping untouched. Remap permanently also rewrites the channel listing → product mapping so future orders for that listing use the new SKU — but it's only available when you replace with one SKU at the original quantity, since a mapping can't carry a quantity change.
Once a line has shipped units, you can't replace it, and the dialog shows a warning. Void the shipment first, then replace the line.
Reclassify a line
Sometimes a line needs to change what it represents rather than what's on it. These options change a line's classification.
Convert a product line to a revenue line
Turn a product line into a non-stock financial (revenue) line — useful when what looks like a product is really a fee, service, or surcharge that shouldn't draw down inventory.
- On the line's ⋮ menu, click Convert to revenue line. (It's available only for a mapped product line.)
- In Convert to Revenue Line, pick a Financial line type (revenue types only).
- (Optional) Tick Remember for SKU … to auto-convert this product to a revenue line on all future orders.
- Click Convert.
What you'll see: the product line is removed and replaced by a revenue line for the same amount. The line no longer routes to a warehouse or fulfills.
Set or clear a line's nominal code
When per-line nominal codes are enabled, click the line's Nominal Code cell to set an override, or clear it to let the code re-resolve from your mapping rules. This affects only where the line's revenue posts in accounting — see How order financials flow to accounting.
Mark a line as a non-product line
You can flag a line as a non-product line — a service, note, or charge line that doesn't route to a warehouse or fulfill. A line can only be marked non-product while it has no product mapped; if it already has a product, unmap or convert it first.
Override a subscription line's edition
A subscription line is pinned to a specific edition. You can override it to a different edition (with an optional reason) or clear the override to return to automatic resolution. You choose the edition when you first add the offering (see Add a subscription offering); overriding it afterward keeps the edition's consumed-quantity tracking accurate.
Add decorations to a line
When product decoration is enabled for your account and a product supports it, each decorable line can carry one or more decorations — the print, embroidery, or engraving specs for made-to-order and promotional products.
- On a decorable line, click Add decoration (or the + Add next to existing decoration chips). The decoration editor drawer opens.
- Set the decoration up:
- Method — for example Embroidery, Screen Print, DTG, Heat Transfer, or a custom method you add on the spot.
- Placement — for example Full Front, Left Sleeve, or Custom with a free-text description.
- Artwork — select the artwork; its digitization state (approved / digitized / none) shows as a colored dot on the chip.
- Method-specific details such as Stitch Count or Ink Colors Count, an optional Size / Color Breakdown, Setup Type (New Setup / Repeat), Digitization required, and Notes.
- Review the Estimated Cost, then save. Each decoration appears as a chip on the line — click a chip to edit it, or use its close (×) to remove it.
The decoration configuration drives an estimated decoration cost, and repricing after an artwork or spec change updates the line's cost basis. A pro-forma cost/margin badge on the line reflects the current configuration.
When the order has decorated lines, a Create decoration orders button appears in the grid toolbar. It routes the decorated lines into decoration manufacturing orders as a background job — track it in the job tray. You can create a decoration order per line or for the whole order.
Delete a line
- On the line's ⋮ menu, click Delete line.
To remove several at once, click Bulk Edit, select the lines, and click Delete (n).
What you'll see: the line is removed and the order totals — including any order-level discount — recalculate.
A line that has been fully or partially fulfilled can't be deleted — void its shipment first. And you can't delete the last line of an order unless the order is still a Draft. Both are rejected with a message explaining why.
Bundle and subscription lines
Two kinds of line behave differently from a plain product line. Both present as a single sold line but carry extra structure underneath.
| Line type | On the grid | What's different underneath |
|---|---|---|
| Bundle / kit | A Bundle chip; click it to see the kit name, price, and components. | The kit's components explode into demand, so allocation and fulfillment draw down each component's stock even though the customer sees one line. Revenue is prorated across the components on a cached basis. |
| Subscription | A Subscription chip showing the offering and edition. | The line is pinned to a subscription edition. Adding, editing the quantity, or deleting the line atomically adjusts that edition's consumed quantity, so the offering's allocation stays correct. |
For how bundle components are committed and how backordered demand is tracked, see Inventory allocation and backorders.
Next steps
- Add discounts and charges — line- and order-level discounts and financial charge lines.
- Approve, reserve, and allocate stock — commit inventory to the lines you've built.
- Fulfill a sales order — ship the lines and record shipments.
- Split, move, and merge fulfillments — split a line across warehouses when it ships from more than one.
- Fields reference — every header and line field explained.
- Glossary — bundle, edition, financial line, nominal code, and more.
Video transcript
The line items are the heart of a sales order. On the Lines tab, add a product from the row at the bottom of the grid: click Search by SKU or name, type a few characters, and pick a match — here, the Ceramic Mug. It drops in as a new line with its price and availability, and the order totals update in the footer. Set the quantity and unit price right in the row — every cell saves on its own, so there is no separate Save for the grid. Each line has a menu for the rest: replace it with other SKUs, convert it to a revenue line, reorder it, or delete it. The footer totals follow every change.