Skip to main content

Generate invoices, packing slips, and accounting

A sales order produces three kinds of paperwork: the invoice you send the customer, the packing slip that travels with the shipment, and the accounting transaction that carries the sale into your books. This guide covers generating each one from an order.

An invoice is a document, not a record

SKU.io has no separate "invoice" object you open and edit. An invoice is a PDF you generate on demand from the order, paired with the order's accounting transaction — the double-entry record that syncs to your accounting software. Reprinting the PDF never changes the numbers; the numbers live on the order and its accounting transaction. For the full explanation of how line revenue, discounts, and tax become that transaction, see How order financials flow to accounting.

Before you begin

RequirementDetail
Print permissionYou need the Print sales orders permission to see the Export menu on an order — the source of the invoice PDF and single-order packing slips.
Update permissionYou need the Update sales orders permission to generate the accounting transaction, recalculate financials, and bulk-print packing slips.
PDF templates configuredThe invoice and the Print Packing Slip (New) renderer each render from a template set under Settings → PDF Templates — without one, that export is rejected with a message telling you to configure it. The Legacy / Jasper packing slip renderer uses its own built-in layout instead, so it doesn't need a PDF template.
The order has line itemsYou can't export an invoice or packing slip for an order with no lines.
Open the orderGo to Orders → Sales Orders and open the order. The examples below use SO-DOCS-0001 (customer Blue Bottle Retail, store Main Store).

Download an invoice PDF

Generate a customer-facing invoice as a PDF you can save, print, or attach to an email.

  1. Open the sales order.
  2. In the header, click Export.
  3. Click Download PDF Invoice.

What you'll see: SKU.io renders the invoice and opens it as a PDF named after the order — SO-DOCS-0001.pdf. The document reflects the order's current lines, discounts, charges, and totals, so it always matches what's on screen.

If the invoice won't generate

Two conditions block the render, each with a clear message:

  • The order has no line items — add at least one line first. See Manage order lines.
  • No sales order PDF template is configured — set one up under Settings → PDF Templates, then try again.
Email the invoice instead of downloading it

To send the invoice straight to the customer rather than downloading it, use the email action instead. You can email a single order or many at once, optionally attaching the document. See Bulk actions on the sales orders list.

A packing slip lists what's in the box for the warehouse and the customer. Print it straight from the order's Export menu.

  1. Open the sales order and click Export.
  2. Choose a renderer:
    • Print Packing Slip (New) — the current renderer, and the one to use by default. It builds the slip from your configured packing slip template under Settings → PDF Templates, and reports "No packing slip template configured" if none is set.
    • Print Packing Slip (Legacy / Jasper) — a fallback that uses the older JasperReports engine. Reach for it only if a slip doesn't render correctly with the new renderer.

What you'll see: the packing slip opens as a PDF named after the order. The two renderers draw from different templates, so the slips can look different: the New renderer uses your configured packing slip template, while the Legacy / Jasper renderer uses a separate built-in layout — your store's custom Jasper layout, or SKU.io's default packing slip layout when no custom one is set. Because of that, the Legacy renderer doesn't require a configured PDF template and won't be blocked when one is missing.

Register orders can also reprint a receipt

For an order that started at the point of sale, the Export menu adds a Print POS Receipt option. See Sell at the point of sale (POS).

Packing slips can also be printed per shipment from the Fulfillment tab as you ship, so a multi-warehouse order gives you one slip per box. See Fulfill a sales order.

When you're picking a batch, print every order's packing slip together from the list.

  1. Go to Orders → Sales Orders.
  2. Select the orders you want to print. The bulk action bar appears above the table.
  3. Click Print Packing Slips (New) (or Print Packing Slips (Legacy / Jasper) to use the older engine).
  4. Confirm in the Print Packing Slips dialog — it asks "Print packing slips for N sales orders?". Click Print.

What you'll see: the run starts as a background job. Because it can span many orders, SKU.io tracks it in the job tray and combines the individual slips into a single PDF you can open when it finishes. If some orders can't be rendered, the job reports how many succeeded and how many failed — check the tray for details.

Printing marks orders as printed

Bulk-printing stamps each order's packing slip printed date. That date powers the Packing Slip Printed column and filter (under the Fulfillment group) on the list, so you can tell at a glance which orders have already been picked and printed. See List columns and filters.

Generate the accounting transaction

The accounting transaction is the order's entry in your books — revenue, tax, shipping, and cost lines mapped to their nominal codes — and it's what syncs to your accounting software. Generate or regenerate it from the order's Accounting tab.

  1. Open the sales order and select the Accounting tab.
  2. If no transaction exists yet, the tab shows No Accounting Transaction. Click Generate Accounting Transaction.

What you'll see: SKU.io builds the transaction from the order's current financial lines and confirms with "Accounting transaction generated." The tab then shows the transaction's reference, date, and total, plus a Related Accounting Transactions section listing any sales credits raised against the order.

Once a transaction exists, two small icon buttons appear in the top-right of the transaction card. Neither has a text label — hover each one to read its tooltip:

ControlTooltipWhat it does
Refresh icon (a page with a circular arrow)Rebuild transactionRebuilds the transaction from the order's current financial lines, so edits to prices, discounts, or charges are picked up. It doesn't merely re-read the saved figures — it recomputes them.
Sync icon (two circular arrows)Sync to accountingQueues the transaction to push to your connected accounting integration. This icon appears only when an accounting integration is connected.
The transaction rebuilds when the order changes

Cancelling an order or reverting it to draft deletes its accounting transaction — the tab then shows a banner, "Accounting transaction was deleted. You can generate a new one below." Regenerate it here once the order is settled again. See Close, cancel, archive, and delete orders.

Recalculate the order's financials

If line prices, discounts, or charges changed and the profit figures look stale, rebuild them from the Profit tab.

  1. Open the sales order and select the Profit tab.
  2. Click RECALCULATE FINANCIALS.

What you'll see: SKU.io recomputes the order's per-line revenue, discount, tax, and cost figures and refreshes the profit breakdown. Use the PROFORMA / ACCOUNTING toggle at the top of the tab to switch between the projected (proforma) view and the figures behind the posted accounting transaction.

Recalculate before you generate accounting

If you've edited the order since the transaction was last built, recalculate financials first, then regenerate the accounting transaction so both reflect the same numbers.

Next steps

Last verified: