Supply Chain, Logistics & Fulfillment for Print
You can print the most beautiful brochure in the world, but the customer never sees it until it lands on their doorstep — intact, on time, and without a surprise bill at the door. This chapter is about that journey: how raw paper becomes a finished print, gets packed so it survives the trip, gets onto the right truck or plane, crosses borders without getting stuck, and arrives. We call this whole journey the order-to-delivery spine.
If you are building software for a print shop, this chapter also tells you exactly what your order system must capture — the weights, dimensions, carriers, and tracking numbers — so that the physical world and the database agree.
The two halves of the spine: inbound and outbound
Let's define the two big halves first, in plain words.
- Inbound = getting raw materials into the shop so production can happen. The main raw material in print is the substrate — the physical thing you print on (paper, cardstock, vinyl, fabric, rigid board). Inbound also covers ink, toner, and finishing supplies.
- Outbound = getting the finished print to the customer: packing it, picking a carrier, shipping, tracking, clearing customs if it crosses a border, and delivering.
Why print is different from normal ecommerce
This is the single most important idea in the chapter. In a typical online store, the product already exists on a warehouse shelf as a finished item (a "SKU" — Stock Keeping Unit, a unique code for one sellable product). Fulfillment means pick it, pack it, ship it.
Print is made-to-order. The finished brochure does not exist until someone buys it. So:
- Your inventory is raw material (paper, ink), not finished goods.
- Fulfillment overlaps with production — "is it ready to ship?" depends on "is it printed yet?"
- The big risks shift to inbound material availability and production lead time, not warehouse picking.
One more print quirk: the physical range is enormous. A single greeting card weighs about 10 grams and ships as a small parcel. A run of 50 boxes of brochures weighs over 100 pounds and ships on a wooden pallet by freight truck. One software model has to handle both.
Inbound: sourcing materials & managing inventory
Production stalls the moment you run out of the right paper. Managing inbound material is about never being surprised by a stockout — while not drowning cash in a warehouse full of paper you don't need yet.
The core inventory terms
| Term | Plain meaning |
|---|---|
| Lead time | How long from "I order this material" to "it's on my shelf." Days for common paper; weeks to months for specialty stock. |
| Safety stock | A buffer of extra material kept on hand to absorb surprises (a rush order, a late supplier). |
| Reorder point | The stock level that triggers "order more now." Hit it, and you reorder before you run dry. |
| Purchase Order (PO) | The formal document you send a supplier saying "I want this much of this material at this price." |
The reorder point has a simple formula:
Reorder point = (avg daily usage x lead time in days) + safety stock Example: a shop uses 5 boxes of gloss cardstock/day, supplier lead time is 6 days, safety stock is 10 boxes. Reorder point = (5 x 6) + 10 = 40 boxes. When stock drops to 40 boxes -> issue a new PO.
Manual vs automated procurement
Procurement just means "the act of buying the materials." The old, manual loop looks like this:
spot low stock -> contact suppliers -> get quotes -> compare -> get approval -> issue PO -> wait for delivery
That is fine for standard paper (hours of work), but painful for specialty substrates or unusual quantities, which can take days just to source. Modern automated procurement reverses the flow: the production floor reports how much material it consumed; the system forecasts demand; when stock hits the reorder point it auto-generates a PO to a pre-approved supplier. Vendors in this space (e.g. ERP systems and procurement platforms like GelatoConnect) report material-cost reductions in the range of 5–20% when shops move from manual to automated sourcing, mostly from better timing and supplier comparison.
A real strategic choice here is single-source vs multi-supplier: buying everything from one supplier gives you price leverage and simplicity, but if that supplier has a shortage, your whole shop stalls. Spreading across suppliers costs a bit more but keeps you running. This is a resilience-vs-price tradeoff.
Outbound mode 1: parcel (small packages)
Now the finished print exists and has to travel. There are two fundamentally different shipping modes, and choosing the wrong one wastes money. The first is parcel.
Parcel = an individual package handled door-to-door by a carrier. The familiar names are UPS, FedEx, DHL, USPS. Parcel gives you real-time tracking, frequent pickups, and works for anything from a postcard to a medium box.
Parcel has hard physical limits. Typical caps:
| Limit | Typical value |
|---|---|
| Max weight | 150 lbs per package |
| Max length | 108 inches |
| Max length + girth | 165 inches |
Girth is a measure of how "fat" a package is around its middle: girth = 2 x width + 2 x height. Carriers add it to the length to catch long-but-thin or bulky items.
Parcel pricing depends on several inputs, not just weight:
- Billable weight — the greater of actual weight vs dimensional weight (explained below).
- Zone — how far the package travels (explained below).
- Surcharges — additional-handling fees, oversize fees near the limits, a Delivery Area Surcharge (DAS) for remote ZIP codes, and a residential surcharge for delivering to a home rather than a business.
Outbound mode 2: LTL freight (pallets)
When print goes big — a full run of brochures, a stack of catalogs, signage — it ships on a pallet (a wooden platform, also called a skid) by LTL freight.
LTL = "Less-Than-Truckload." Your palletized goods share a trailer with other shippers' loads, so you pay for the space you use rather than a whole truck. LTL covers roughly 150 to 15,000 lbs. Above that you book FTL ("Full Truckload") or a flatbed — your goods get the whole truck.
How LTL pricing works: freight class + lane + accessorials
LTL has its own pricing language. The key concept is freight class, set by the NMFC (National Motor Freight Classification) system. There are 18 classes from Class 50 (densest, cheapest) to Class 500 (lightest/bulkiest, most expensive). The class is driven by four factors: density, stowability, handling, and liability. Since a mid-2025 NMFC reform, density now sets the class for most freight.
Density = how much weight is packed into the space. The formula:
Density (lbs/ft3) = Total Weight (lbs) / Total Volume (ft3) Volume (ft3) = (L x W x H in inches) / 1,728 (1,728 = number of cubic inches in one cubic foot) Higher density -> LOWER class number -> CHEAPER to ship.
Good news for print: boxed paper is dense, so it lands a favorable (low) class.
| Class | Density | Example goods |
|---|---|---|
| Class 70 | ~15–22.5 lbs/ft³ | Boxed paper & print products, machinery parts, plumbing fixtures |
| Class 100 | ~9–10.5 lbs/ft³ | Boxed light goods, wine cases |
On top of the class and the lane (the origin-to-destination route), carriers add accessorials — fees for extra services beyond a simple dock-to-dock drop:
| Accessorial | Typical cost | When it applies |
|---|---|---|
| Liftgate service | $75–$150 | Customer has no loading dock; truck needs a powered platform to lower the pallet |
| Inside delivery | $75–$200 | Driver must bring goods inside, past the curb/dock |
| Residential surcharge | Varies | Delivery to a home address |
| Limited-access / appointment | Varies | Schools, sites needing scheduled delivery |
| Reweigh fee | Varies | Declared weight was wrong |
Named LTL carriers include FedEx Freight, UPS Freight, Old Dominion, SAIA, Estes, and YRC. Note: many of them now also apply dimensional weight (next section) to LTL, not just parcel.
Dimensional weight: why a light box can cost a lot
This concept catches more print shops off guard than any other. Dimensional weight (also called volumetric weight, or "DIM weight") exists because a carrier charges for the space your package takes up in the truck, not only its weight on a scale. A big, light box — very common in print: rolled posters, foam-core signs, framed pieces, heavily-padded fragile prints — would otherwise occupy expensive truck space for almost no revenue.
So carriers compute a pretend weight from the package's size, and bill you the larger of the two:
Billable weight = the GREATER of (actual weight, DIM weight) DIM weight = (L x W x H in inches) / DIM divisor
The DIM divisor is a number the carrier publishes; a smaller divisor means a higher DIM weight (more expensive). The 2026 divisors:
| Carrier | DIM divisor | Note |
|---|---|---|
| UPS / FedEx | 139 | Domestic and international |
| USPS | 166 | For packages over 1 cubic foot (1,728 in³). Changing to 139 on July 12, 2026 (matching UPS/FedEx) |
Two rules make this worse for oddly-sized print pieces:
- Round-up rule (effective Aug 18, 2025 on FedEx & UPS): any fractional dimension is rounded up to the next whole inch before the formula runs. So 11.1" becomes 12". This quietly raises the billed weight.
- Billed weight rounds up too to the next whole pound.
The print-specific lesson: your packaging choice directly changes the bill. Sometimes a strong, compact tube beats an over-reinforced flat box on both protection and DIM cost.
Shipping zones: distance, by ZIP not by miles
A zone is the carrier's measure of how far a package travels from origin to destination. It is based on groupings of ZIP codes, not literal mileage. Domestic US zones run from Zone 1 (local, roughly within 50 miles) to Zone 8 (over 1,800 miles). A higher zone means higher cost and longer transit (the package passes through more sorting hubs).
Two consequences matter for print software:
- Zone is tied to the origin. The same customer is a different zone from two different print facilities. This is the core argument for distributed fulfillment — printing near the customer to drop the zone.
- Heavy packages feel zone jumps more. The price gap between Zone 2 and Zone 7 is much bigger for a 40-lb box of catalogs than for a 1-lb envelope. So zone strategy matters most for heavy print (books, catalogs, signage).
Packaging & protecting print
Paper is fragile in specific, predictable ways. Good packaging targets the four damage modes:
| Damage mode | What happens | Defense |
|---|---|---|
| Bending | Automated sorters flex the package | Rigidity — backer board or a tube |
| Corner/edge crush | Stacking and drops crush corners | Corner protectors; cylinders distribute pressure |
| Moisture | Rain/humidity warps and stains paper | Poly sleeve or wrap |
| Surface scuffs | Matte and fine-art papers mark easily | Slip sheet / protective sleeve against abrasion |
The core principle is rigidity + zero internal movement: stop the print from flexing, and stop it from sliding around inside the package. Format choice depends on size:
- Small/flat prints — a rigid mailer with a firm backer board. Stays light, holds shape, keeps postage low. Add a protective sleeve and a slip sheet against scuffing.
- Large prints (16x20 and up) — usually safer rolled in a strong tube with end caps. Shipping a large piece flat needs so much reinforcement that weight and DIM size spike. The tube's cylinder shape distributes pressure and resists corner damage. Use corrugated kraft tubes, typically 2" or 3" diameter; protecting the ends is critical.
- Framed/rigid pieces — foam corner protectors, glass-protection tape, bubble wrap.
Cross-border: customs, duties & documentation
The moment a shipment crosses a national border, a government wants to know what's inside, where it came from, and what it's worth — so it can charge duties (taxes on imported goods). Three documents do most of the work.
| Document / data | What it is | Why it matters |
|---|---|---|
| Commercial invoice | The shipment's "ID card": shipper, recipient, honest goods description, quantity, value, country of origin | The single most important doc. Vague descriptions ("accessories", "samples") now trigger delays and scrutiny |
| HS code | Harmonized System code — a standardized number classifying every internationally shipped item | A small misclassification materially changes the duty owed; getting it right is a critical lever |
| Electronic shipment data | Standardized data submitted before goods enter (especially the EU) | Filed ahead so customs can pre-clear; missing it stalls the shipment |
Intrinsic value and the death of "de minimis"
Intrinsic value = the price of the goods only. It excludes shipping, insurance, and other fees if those are shown separately on the invoice. So €140 of goods + €20 shipping has an intrinsic value of €140, not €160.
Intrinsic value used to matter because of de minimis — a low-value threshold below which goods entered duty-free. That safety net is collapsing worldwide in 2025–2026:
| Region | Old de minimis | 2025–2026 change |
|---|---|---|
| United States | $800 duty-free | Eliminated in late 2025 — goods now face duties regardless of value |
| European Union | €150 duty relief | Abolished from July 1, 2026 (Council Reg (EU) 2026/382). A transitional flat €3 customs duty per item applies to consignments ≤ €150 until July 1, 2028, then normal classification-based duties via the EU Customs Data Hub |
Incoterms: who pays and who carries the risk
Incoterms ("International Commercial Terms") are a standard set of three-letter codes that split responsibility between seller and buyer across the journey — who pays transport, who insures, who handles export and import clearance, and who pays the duties. The Incoterm even sets the customs value used to calculate duty. Three are worth knowing:
| Incoterm | Seller's job | Buyer's job | Best for |
|---|---|---|---|
| EXW (Ex Works) | Just make goods available at the seller's premises — minimum obligation | Everything else: export clearance, all transport, import clearance, duties, VAT, risk | Rarely good for a storefront — heavy burden on the buyer |
| DAP (Delivered At Place) | Deliver to a named place in the buyer's country; pay transport; bear risk to that point | Import clearance, duties, taxes, unloading | Buyer is comfortable clearing customs themselves |
| DDP (Delivered Duty Paid) | Maximum obligation — arrange all transport AND pay import clearance, duties, and VAT in the destination country | Nothing extra — just receive the goods | Best customer experience; heaviest seller burden |
In plain terms: DDP = "delivered, all costs included, no surprises for the buyer." DAP = "delivered, but you (the buyer) clear customs and pay the duties yourself." For a print storefront, this single choice decides whether your customer gets a surprise duty bill from the courier at the door.
POD, drop-ship & 3PL: letting someone else fulfill
Not every shop prints and ships everything itself. Three related models outsource part of the spine:
- Print-on-Demand (POD) — the product is printed and shipped only after a sale clears. There is no finished-goods inventory to store. The order itself triggers production.
- Drop-ship — a print partner or 3PL produces and ships directly to the end customer, under the store's brand. The storefront never physically touches the product.
- 3PL (third-party logistics) — an outside company that warehouses, kits, picks, packs, and ships on your behalf.
Major POD/drop-ship platforms include Printful, Printify (1,300+ products), CJdropshipping, Lumaprints, InterestPrint, Amplifier, and Gelato. Specialist print-kit 3PLs include SHIPHYPE and Harte Hanks, which handle inventory, kit assembly, custom packaging, and quality control (QC).
The POD order-to-delivery flow (and why webhooks matter)
sale comes in
-> order auto-approved as soon as payment clears
-> print provider selected
-> production
-> QC
-> packaging
-> ship
-> tracking number + carrier sent BACK to the store
via WEBHOOK
-> order auto-marked "Fulfilled" with tracking attached
-> customer gets a shipping-confirmation email
A webhook is a message the fulfillment platform pushes to your software the instant something happens (e.g., "shipped, here's the tracking number"). It is the opposite of polling, where your software keeps asking "any updates yet?" Webhooks land in seconds; polling typically lags 5–15 minutes.
Kitting: bundling components into one package
Kitting means assembling several separate components into one ready-to-ship package. It's common in print marketing: a "welcome kit" might combine a brochure + business cards + a branded folder + an insert, all packed together. A key sub-task is insert control — making sure the right printed inserts go into the right kit (the correct flyer for the correct region, for example).
Kitting is usually most cost-effective through a 3PL that offers custom kitting: they hold the component inventory, assemble to your spec, apply custom packaging, and run QC before shipping.
Partial shipments & backorders
Because print items are made on different presses on different days, one order often can't all be ready at once. Two terms:
- Split shipment (a.k.a. partial shipment) — one order divided into two or more shipments, each sent separately to the same destination.
- Backorder — an item not yet available or produced. The ready portion ships now; the rest follows when it's done.
Common causes in print: items produced on different presses or days, one item finishing before another, an oversized item needing its own box, inventory split across warehouses, backordered material, or multiple ship-to addresses.
Handling it well:
- Apply an order-routing rule like "minimize split fulfillment" — prefer a single location/run that has everything, in the fewest packages.
- Use automated, rules-based splitting so no human has to intervene per order.
- Send proactive comms per shipment, with separate tracking for each parcel.
- Offer a checkout choice: consolidated delivery (slower, one box) vs faster partial delivery.
- Use analytics to find which products or sites split most often, and fix the root cause.
Multi-carrier shipping software & rate shopping
Rather than integrating with each carrier separately, most shops use a multi-carrier shipping API — one integration that reaches many carriers at once. Examples: ShipStation/ShipEngine (200+ carriers), EasyPost, Shippo (40+ global), ShipWise, Veeqo. Core capabilities:
- Rate shopping — query many carriers in real time and pick the cheapest or fastest by your business rules.
- Label generation — print the shipping label.
- Address validation — catch bad addresses before they cause failed deliveries or label errors.
- Tracking feed — pipe carrier updates into customer notifications.
- Parcel analytics — spot overspend and surcharge patterns.
What a print order system must capture (software requirements)
This is the section to bookmark if you build the software. The physical realities above translate into concrete fields your order model must store. Capture these per line item / per shippable unit:
| Field | Why it's needed |
|---|---|
| Weight (actual) + calculated DIM weight | Carrier rate calls, freight class/density, parcel-vs-LTL decision |
| Dimensions (L×W×H) | DIM weight, freight density, packaging selection, size limits |
| Packaging type (tube / flat mailer / box / pallet) | Drives both protection and DIM weight |
| Ship-to address + residential/commercial flag + access (dock/liftgate) | Drives accessorials and surcharges |
| Origin facility | Determines the zone |
| Carrier + service level chosen | The actual shipping method |
| Tracking number(s) — plural | One order can have many (split shipments) |
| Shipment/fulfillment status supporting partial fulfillment | Which items/quantities shipped in which shipment; what's still pending/backordered |
| Cross-border fields: HS code per item, country of origin, declared/intrinsic value, Incoterm (DDP/DAP), customs description | Customs clearance and accurate duty |
The structural rule: one order, many shipments
The biggest mistake in print order schemas is a single tracking-number field on the order. Print orders split constantly, so the model must be:
ORDER +-- SHIPMENT 1 | carrier, service, tracking #, weight, dims, | line items + quantities in THIS shipment +-- SHIPMENT 2 (the rest, shipped later) | its own carrier, tracking #, items... +-- (backordered items: still pending)
One order → many shipments → each shipment with its own carrier, tracking number, weight, and item list. Without this, you literally cannot represent "half shipped, half still in production" — so the system tells the customer "shipped" while part of the order isn't.
Snapshot discipline & the silent-drop trap
Capture weight, dimensions, shipping cost, carrier, and customs fields onto the order at fulfillment time as a frozen snapshot. If you later edit the product catalog (change a weight, a size), historical orders must not rewrite themselves — the order should remember what was true the day it shipped. This mirrors the established pattern of snapshotting addresses and totals onto orders.
Equally important: cross-border fields are the ones most often silently dropped. If the checkout collects an HS code or Incoterm but the form's validation rules don't list it, the value vanishes — and the courier rejects the shipment, or the customer gets a surprise duty bill. Every captured field must round-trip: validate → save → read back → render.
Quick reference: the numbers that matter
| Item | Value |
|---|---|
| Parcel weight cap | 150 lbs |
| Parcel size limits | Length + girth ≤ 165 in; max length 108 in; girth = 2W + 2H |
| LTL range | 150–15,000 lbs (above → FTL) |
| DIM divisor | UPS/FedEx 139; USPS 166 → 139 on Jul 12, 2026 |
| DIM round-up to whole inch | Since Aug 18, 2025 (UPS/FedEx) |
| Density volume divisor | 1,728 (in³ per ft³) |
| NMFC classes | 50 (cheap/dense) → 500 (expensive/bulky); Class 70 ≈ 15–22.5 lb/ft³ |
| Zones | 1 (≤50 mi) → 8 (>1,800 mi) |
| Liftgate / inside delivery | $75–$150 / $75–$200 |
| US de minimis ($800) | Ended late 2025 |
| EU de minimis (€150) | Ends Jul 1, 2026; flat €3/item until Jul 1, 2028 |
| Tracking latency | Webhook seconds vs polling 5–15 min |
| Specialty substrate lead time | Order 4–6 weeks ahead |
| Automated procurement savings | 5–20% material cost |