How-to guide
How to create packing slips from orders
Turn order exports into packing slip PDFs that warehouse and fulfillment teams can use at handoff.
What you'll need
Supplies
- Order export CSV
- Fulfillment labels and package details
- Carrier or tracking references
Tools
- DocForge
- Order management export
- Warehouse workflow
Steps
- 1
Prepare one row per shipment
Prepare the export around physical shipments, not orders. If one order splits into two boxes leaving on different days, create two rows so each package gets the correct slip. Use headers such as `packing_slip_number,order_number,recipient_name,ship_to,item_summary,package_count,carrier,tracking_reference,ship_date,packed_by`. For a split shipment, use values like `PS-10455-01` and `PS-10455-02` tied to the same `order_number`. Do not combine tracking references in one cell unless the warehouse process truly puts one slip on a master carton. A common error is leaving `tracking_reference` blank because labels are purchased after the order export. Fix the timing: export after labels exist, or use `{{ row.tracking_reference | default: 'See carrier portal' }}` so the slip remains readable. Preview a row with `package_count` greater than `1` and confirm the copy tells the packer whether the slip belongs in every box or only the lead package.
- 2
Keep the template focused on fulfillment
Keep the packing slip focused on what the packer and recipient need. Show `order_number`, `recipient_name`, `ship_to`, `item_summary`, `package_count`, `carrier`, `tracking_reference`, and `packed_by`. Remove prices, discounts, margin notes, fraud checks, and approval history unless the fulfillment team has a direct use for them at the bench. Use Liquid for operational clarity, not decoration: `{{ row.order_number }}` near the top, `{{ row.ship_date | date: '%B %-d, %Y' }}` near the shipping block, and `{% if row.handling_notes %}{{ row.handling_notes }}{% endif %}` near the item list. A common data issue is line breaks inside `item_summary` from ecommerce exports. Keep them only if the template is designed for multi-line text; otherwise replace them with semicolons before upload. Preview a row like `Replacement filter kit; 2 mounting brackets; printed return label` to make sure the item summary remains scannable on paper.
- 3
Preview operational edge cases
Preview the rows that stress the warehouse layout. Include a long `ship_to` address, a multi-package shipment, a replacement part order, and an order with a missing tracking reference. Use a real-looking tracking value such as `1Z999AA10123456789` and verify it does not wrap across two lines in a way that makes scanning or manual entry difficult. Check a row for `package_count` of `4`; the slip should clearly show whether the package is part of a set. If the template includes return instructions or quality-control notes, preview them with long text before batch generation. A common error is putting customer service comments into `handling_notes`, such as `Customer angry, expedite`, which should not print on a recipient-facing slip. Clean those fields before upload. If barcodes are part of the process, confirm the human-readable `tracking_reference` still appears. The person packing the order should be able to match items, address, carrier, and package count without opening another system.
- 4
Generate slips for handoff
Generate the packing slip batch as close to handoff as possible, after labels and package counts are final. Download the ZIP and sort or print by the field your team actually uses at the bench, usually `packing_slip_number` or `order_number`. Keep filenames operational, such as `PS-10455-02-ORDER-10455.pdf`, so a reprint request does not require opening every file. Store the output with the order record or shipment record, along with the source CSV. That makes later support checks straightforward: what was packed, who packed it, when it shipped, and which `tracking_reference` was used. A common mistake is generating slips before a carrier switch, then shipping with a different tracking number. If `carrier` changes from `GroundShip` to another service or the tracking value changes, regenerate that row and discard the old PDF. Spot-check the first ten printed slips for clipped addresses, missing item summaries, and page breaks before handing the stack to fulfillment.