This article lists every merge field you can put in a Word template with the Packing Slip category, and what each one prints. It also shows how to lay out the item table, including the lot (batch) lines inside each item.
After reading it, you can design a packing slip in Word, choose the right fields, and know what prints for shipped orders versus orders that have not been picked or packed yet.
How packing slips are printed from a .docx template
A packing slip template is filled once per slip. Qoblex prints one slip for each shipment on each selected order, so an order shipped in two parts gives two slips. Every slip after the first starts on a new page, and the whole batch downloads as one PDF.
See How .docx templates work for the basics of merge fields, ranges and prefixes.
Where to print
Word packing slips are printed from the Sales list:
- In the sidebar, open Sales, then Orders, and select one or more orders.
- Select Bulk Actions, then under the DOCUMENTS heading choose Packing Slips.
- Pick your template under Please select one of the available templates.
- Tick Include orders that are neither picked nor packed. if you also want slips for orders with no shipment yet.
- Select Generate, then Preview when the file is ready.
The template list shows every Packing Slip template you have, designer and .docx together. Pick your .docx template by name.
Shipment slips and whole-order slips
Two kinds of slip use the same template, but a few fields differ.
| Slip type | When you get it | Fields that differ |
|---|---|---|
| Shipment slip | The order has a shipment that is not draft or cancelled. | Carrier, method, tracking code, shipment number, shipment date, bins and lots all come from the shipment. |
| Whole-order slip | The order has no shipment, or only draft or cancelled ones, and you ticked Include orders that are neither picked nor packed. | Carrier, method and tracking code print N/A. Shipment number and shipment date are empty. No bins, no lots. |
Orders with no shipment that counts are skipped when the tick box is clear. If nothing selected qualifies, no PDF is produced and Qoblex shows Could not download packing slips. Please try again.
Slip-level fields
These fields sit outside any range. Use each one once, or as many times as you like, anywhere on the page. Copy the names exactly as written here.
Order and shipment details
| Field | What it prints |
|---|---|
OrderNumber |
The order number. |
ShipmentNumber |
The shipment number. Empty on whole-order slips. |
ReferenceNumber |
The order’s Customer Reference. |
Carrier |
The shipment’s carrier. N/A on whole-order slips. |
Method |
The shipment’s shipping method. N/A on whole-order slips. |
TrackingCode |
The shipment’s tracking code. N/A on whole-order slips. |
OrderDate |
The order’s Created at date, in the printing user’s time zone. Add a date format (see Check the result below). |
ShipmentDate |
The shipment date, in the printing user’s time zone. Empty on whole-order slips. |
UnitsCount |
Total units on the slip: shipped quantities on a shipment slip, ordered quantities on a whole-order slip. |
Currency |
The order currency symbol, for example $. |
CurrencyCode |
The order currency code, for example USD. |
If the order has no currency of its own, your company currency is used.
Company and notes
| Field | What it prints |
|---|---|
Company |
Your company name. |
CustomerNotes |
The shipment’s Comments on a shipment slip. The order’s Notes to your customer on a whole-order slip. |
Logo |
Always empty. Paste your logo into the Word file as a normal picture instead. |
The order’s Notes to your customer use a rich-text editor. Write Html:CustomerNotes on its own line so bold text and lists keep their formatting. If there are no notes, the line disappears without leaving a blank line.
Do not put the field inside a sentence, because the text around it is split onto separate lines. The same field prints the plain-text Comments on shipment slips, so test a shipment slip with multi-line comments too.
Customer fields
Customer on its own prints the customer name, which is how the starter file shows it above the addresses. Add a dot to reach one detail.
| Field | What it prints |
|---|---|
Customer.Name |
The customer name. |
Customer.ContactPerson |
The contact person. |
Customer.Email |
The email address. |
Customer.Phone |
The landline phone. |
Customer.MobilePhone |
The mobile phone. |
Customer.TaxNumber |
The tax number. |
Customer.Eori |
The EORI number. |
Customer.ReferenceId |
The contact’s ID in your connected accounting app. Empty if the contact is not linked. |
If the order has no customer, these print empty.
Address fields
Three addresses are available. Each has the same eight parts.
| Address | Field prefix | Where it comes from |
|---|---|---|
| Ship from | ShipFromAddress. |
The address of the shipment’s location. On a whole-order slip, the order’s shipping location. |
| Ship to | ShippingAddress. |
The order’s shipping address. |
| Bill to | BillingAddress. |
The order’s billing address. |
Add one of these parts after the prefix, for example ShippingAddress.City:
LineOneLineTwoCityStateZipPostCodeCountryLandlinePhoneMobilePhone
Addresses carry no recipient name. Print «Customer» above each address block, as the starter file does.
Barcode of the order
OrderBarcode holds a barcode picture of the order number, not the number itself. The starter file does not use it. To try it, add it as Picture:OrderBarcode and print a test slip. Use OrderNumber if you want the number as text.
The item table
Items repeat once per order line. Wrap the fields in RangeStart:Items and RangeEnd:Items, and keep both in the same table row so the row repeats for each item.
On a shipment slip, the table lists what was shipped in that shipment. On a whole-order slip, it lists every order line. Lines follow their position on the order.
Item fields
| Field | What it prints |
|---|---|
ProductName |
The product name, with the variant options after a dash for variant products. For a line not linked to a product, the name typed on the order. |
Sku |
The SKU. Empty for lines not linked to a product. |
Notes |
The item notes from the order line, as plain text. |
Quantity |
Shipped quantity on a shipment slip, ordered quantity on a whole-order slip. |
Price |
The unit price on the order line, converted at the order’s currency rate. A number only, so pair it with Currency or CurrencyCode. |
Weight |
The product weight. 0 for lines not linked to a product. |
WeightUnit |
The weight unit. |
BinNumber |
The product’s bin at the shipment’s location. Shipment slips only. |
Image |
The product photo. Use it as Picture:Image. |
ProductBarcode |
A barcode picture of the product barcode. Empty if the product has none. |
HasParts |
True when the line is a bundle with components. |
Product photos and barcodes
Write the photo field as Picture:Image, as the starter file does, and leave the small placeholder picture inside the field as it is. Print a test slip to check the photo size, and test with a product that has no image.
ProductBarcode is a picture, not digits. Write it as Picture:ProductBarcode and test it. Qoblex has no field that prints the barcode number as text.
Lots (batches) inside each item
Put a second range inside the item row to list lots for batch-tracked products. Wrap Number in RangeStart:Batches and RangeEnd:Batches, and place the whole thing inside the Items range.
| Field | What it prints |
|---|---|
Number |
A ready-made lot line: quantity, lot number and, if the batch has one, the expiry date. For example 2x LOT-123 - 01 Jan 2025. |
Expiry |
The batch expiry date. A batch with no expiry holds a date in the year 9999, so prefer Number. |
Lots print only on shipment slips, for batch-tracked products. A product with no lots prints nothing in its Batches range. A bundle line’s own Batches range is always empty. For a bundle, put Batches inside the Parts range to list lots of its components.
Inside a range, only that range’s fields fill. A field from outside, such as OrderNumber, prints blank there.
Bundle components
A bundle line can list its components with a second nested range, RangeStart:Parts and RangeEnd:Parts, inside the Items range. HasParts prints True for bundle lines and False for others. For non-bundle lines the Parts range prints nothing.
Each component has ProductName, Sku, Image, ProductBarcode, Weight, WeightUnit and Quantity. Quantity is the bundle quantity times the number of that component in one bundle. Shipment slips also give BinNumber and Batches for each component. Price prints 0 and Notes is empty for components, so leave them out of the Parts range.
The starter file does not use Parts, so print a test slip before you roll it out.
Lay out a packing slip
Start from the starter file
The upload dialog offers a starter file: choose the packing slip link in Document Template Editor. It already contains every part below, so edit it rather than starting from a blank page.
| Block | Fields used |
|---|---|
| Header | A heading and a placeholder picture reading “Your logo”. |
| Addresses | Company, ShipFromAddress.*, Customer, ShippingAddress.*, BillingAddress.*. |
| Details | OrderNumber, ShipmentNumber, ReferenceNumber, Carrier, Method, TrackingCode, OrderDate, ShipmentDate, CurrencyCode. |
| Item table | Picture:Image, ProductName, Notes, Number for lots, Sku, Price, Quantity, Weight, WeightUnit, BinNumber. |
| Footer | UnitsCount, CustomerNotes. |
Build the item row
The item table has one header row and one repeating row.
- Put
RangeStart:Itemsin the first cell of the repeating row. - In the product cell, add
Picture:Image,ProductNameandNotes. - In the next cell (LOT in the starter file), wrap
NumberinRangeStart:BatchesandRangeEnd:Batches. - In the following cells, add
Sku,Price,Quantity,WeightwithWeightUnit, andBinNumber, withRangeEnd:ItemsafterBinNumberin the last cell.
Keep the Batches range inside the item row so each item lists its own lots.
Settings that do not apply to .docx
The designer’s logo, column choices and sort order are not used. Your Word file controls the whole layout. Items print in order-line order.
Check the result
Field names are not case-sensitive, and a name Qoblex does not know prints blank, with no error. Keep each RangeStart: and RangeEnd: name identical (for example Items and Items), or the print fails.
Page setup and fonts are whatever you set in Word. Use common fonts and check the test print. When you print several slips, each starts on a new page and keeps your page setup, headers and footers.
Numbers print with all their decimals and no thousands separator unless you add a format, for example \# "#,##0.00". Dates print with the time unless you add one, for example \@ "dd MMM yyyy". See How .docx templates work.
Print a test slip from the Sales list for an order that has a shipment, and one without, and check the PDF. If a field prints blank, compare its spelling with the tables above.
Fields from purchase order templates, such as ShipFromFirstPart, ShipToFirstPart or BillToSecondPart, do not work on packing slips. Use ShipFromAddress.*, ShippingAddress.* and BillingAddress.* instead.
Troubleshooting
Could not download packing slips. Please try again
Qoblex shows this when no PDF could be produced. Check that at least one selected order has a shipment that is not draft or cancelled, or tick Include orders that are neither picked nor packed.
Then check your template opens in Word and every field comes from the tables above. See Troubleshooting .docx templates.
Carrier, method and tracking code print N/A
The lot column is empty
Number sits between RangeStart:Batches and RangeEnd:Batches inside the item row.Bins are empty
BinNumber fills only on shipment slips, from the shipment’s location. Whole-order slips leave it empty. It is also empty when the product has no bin at the shipment’s location.My logo does not appear
Logo field always prints empty. Paste your logo into the Word file as a normal picture instead.Notes show tags or lose their formatting
Html:CustomerNotes on its own line, not inside a sentence. Shipment Comments are plain text and print through the same field, so test a shipment slip with multi-line comments.