Delivery¶
Menu Location: Delivery (truck icon in the top navigation)
Last Updated: 2026-07-24
Overview¶
The Delivery page (internally kiv/print_labels.php) is where each week's orders turn into
printed labels, driver sheets, and shipping labels, and where you connect an outside routing
service to put stops in the best order. You pick a delivery week, then work day by day: every
day that has orders shows its own set of download buttons.
Primary Functions:
- Print packing labels for a day, per route or all routes at once
- Download driver sheets (one per day, or per route)
- Optionally print Avery address labels, receipts, and QR codes
- Generate EasyPost carrier shipping labels (FedEx, UPS, USPS, etc.)
- Upload a carrier tracking CSV to attach tracking numbers to orders
- Connect a routing service (Routific, RouteSavvy, RoadWarrior, OptimoRoute, and others)
- Download the warehouse Pack Order sheet (PDF or CSV)
Most optional pieces (Avery labels, receipts, QR codes, routing method, EasyPost) are turned on and configured under Delivery > Settings.
Page Layout¶
Choosing a Week¶
At the top you pick a delivery week and click Select Week. Everything below then refers to that week. The page defaults to the current week minus one, so double-check the week selector before printing.
Day-by-Day Sections¶
Orders are grouped by delivery day (Sunday through Saturday). Only days that actually have orders/routes appear. Within each day, routes are listed with their order counts (for example "Route Name - 55 orders"), and each route has its own download buttons.
What each day gives you¶
Depending on which features you have enabled, a day section can include:
- Packing Labels per route, plus an All [Day] Packing Labels button
- [Day] Driver Sheet (all routes for the day) and per-route driver sheets
- EasyPost Shipping Labels per route (when EasyPost is enabled)
- All [Day] Avery Labels / Avery 8463 Labels (when enabled)
- All [Day] Receipts (when receipts are enabled)
- [Day] Pack Order PDF and Pack Order CSV
- Messages/Letters per route (when label messages, box messages, or a welcome letter are enabled)
You can drag and drop the routes in a day to set the order they print in when you download an all-routes PDF of labels, Avery labels, or driver sheets.
Printing Operations¶
Packing Labels¶
Purpose: The labels that go on each box, listing what belongs in it.
Steps:
- Select the week.
- Find the day.
- Click the packing-label button for a single route, or All [Day] Packing Labels for every route.
- A PDF generates. Download or print it.
Whether labels print in a standard sheet format or a 4x6 thermal format depends on your printer setting (see Thermal Printer under Special Label Types).
Driver Sheets¶
Purpose: The route manifest a driver carries, listing every stop in delivery order.
Steps:
- Select the week and day.
- Click [Day] Driver Sheet for all routes, or use a per-route driver-sheet button.
- A PDF generates.
Driver-sheet options set under Delivery > Settings include showing/hiding the estimated arrival (ETA) column, leaving blank note lines at the bottom for driver notes, and printing a Special Pack sheet alongside the driver sheets.
Receipts¶
Purpose: A printed customer receipt for each order (optional feature, enabled with the
print_receipts setting).
Steps:
- Select the day.
- Click All [Day] Receipts.
Pack Order Sheet¶
Purpose: The warehouse pick/pack sheet that lists products in packing order (comes from the Packing Order page).
Steps:
- Select the day.
- Click [Day] Pack Order PDF or [Day] Pack Order CSV.
Route Management¶
Routing Method¶
Under Delivery > Settings > Routing Method you choose how orders get put in delivery order. The options include:
- None
- GPX download
- Routific (Web App, or the newer Routific Integration)
- WorkWave
- MapPoint
- RouteSavvy
- RoadWarrior
- OptimoRoute
- Manual Drag & Drop
- External FedEx shipping import/export
- External Shipping Fulfillment
- EasyPost labels only
Kiva Logic recommends Routific for automated routing. Your chosen method changes which download/upload steps appear in each day's section.
Routific Integration (newer keys)¶
With a newer Routific (Platform) key and a Workspace ID set, you can send a day's orders to Routific, build and optimize the routes in Routific, then update the stops from Routific to pull the optimized stop order back in. New Routific routes can be auto-created to match.
Uploading RouteSavvy / RoadWarrior Route Data Back In¶
Purpose: Import the optimized stop order after routing on RouteSavvy or RoadWarrior.
Steps:
- Select the day, then choose the CSV file exported from RouteSavvy or RoadWarrior.
- Choose the matching route from the "Select route..." dropdown (the system tries to auto-match it to the uploaded filename).
- Click to upload the route data.
Route dropdown: By default it only lists routes that already have orders assigned for that day. Check "Show all routes for the day (including ones with no orders yet)" to add empty routes to the list, labeled "(no orders yet)". Useful when uploading a new route before any orders have been assigned to it.
Setting stop numbers¶
When you download route/order CSV data, an Auto-set stop numbers checkbox (checked by
default) writes the stop order back onto the orders. Stop numbers can also be adjusted on the
routing page (Adjust Stop Numbers, admin_routing.php).
Print order of routes¶
Dragging and dropping the routes in a day reorders how they appear in an all-routes PDF. This is about print order, not delivery optimization.
Update Stop Numbers and Splitting Routes¶
- Update Stop Numbers renumbers a day's stops starting at 1, in the current route/stop order.
- Split 'em up! breaks a route with more than about 100 stops into smaller batches. Large label runs (a few hundred at once) are slow and can time out, so split big routes before printing, then renumber stops before you print so the driver sheet order is correct.
Reprinting from Download History¶
Each day section keeps a download history of the label/PDF batches you've already generated, with delete / un-delete controls. To reprint a batch, re-download it from that history instead of regenerating it.
Importing Orders and Weights¶
The Upload panel at the top of the page opens the CSV upload used for routing return files and links to Order Import and Weights Import, so you can bring orders or product weights in from here.
Shipping Integrations¶
EasyPost¶
Purpose: Generate carrier shipping labels (FedEx, UPS, USPS, and others) for orders that ship rather than deliver locally.
Setup (Delivery > Settings > EasyPost):
- Requires an EasyPost account and API keys
- Warehouse ship-from address (street, city, state, ZIP, country) and a phone number
- Carrier name and the service-level identifiers you want to allow
- Optional box weights, dry-ice weight, and label-date options
- Optional automatic customer tracking emails (in-transit and weather-delay notifications)
Generating labels:
- Select the week and day.
- Click the EasyPost Shipping Labels button for a route.
- EasyPost creates the shipments, tracking numbers are saved to the orders, and the label PDF is produced.
Upload Tracking Numbers CSV¶
Purpose: Attach tracking numbers to orders from a carrier's CSV (for example when labels are made in the carrier's own software instead of EasyPost).
Steps:
- Open the Upload Tracking CSV option.
- Choose the CSV file and submit.
- The system reads each row, matches an order ID to a tracking number, and saves the tracking number, tracking URL, and timestamp to that order. A message reports how many rows were updated.
How rows are matched: the importer scans each cell and recognizes:
- Order ID: a plain 5 to 9 digit number
- FedEx: 12, 15, or 20 digit numbers
- UPS: starts with
1Z - OnTrac: starts with
1LSC - DHL eCommerce: starts with
JD - GLS: a long code starting with the current year
Rows where no order ID and tracking number can be found are skipped. This upload attaches tracking; it does not itself email customers or change order status.
Special Label Types¶
Thermal Printer Labels¶
When thermal printing is enabled for your account, packing labels are produced in a 4x6 thermal format instead of a standard sheet layout. This is a printer/format setting, not a separate button.
Avery 5351 Labels¶
Purpose: Optional address labels included with your label download, printed on Avery 5351 sheets. Enable under Delivery > Settings.
Offset: If you already used some labels on a sheet, set an Avery offset so printing starts lower on the page and skips the used positions.
Avery 8463 Labels¶
Purpose: Optional larger address labels (2" x 4", 10 per sheet) on Avery 8463 stock, also included with the label download when enabled. Has its own offset setting.
QR Code¶
Purpose: An optional QR code on labels. It can be set to encode the Customer ID for scanning. Enabled and configured under Delivery > Settings.
Separate Bundle PDF Labels¶
Purpose: Controls how bundle contents are printed on packing labels. Set under Delivery > Settings.
- Print bundle contents with the rest of the order (default) - bundle items print inline on the order's own label.
- Print bundles as separate PDF labels (appended after the route) - bundle contents print as their own addendum pages, appended after the route's regular labels.
This applies to all packing-label downloads, including single-route, all-routes, and large/batch print runs.
Delivery Settings¶
Delivery > Settings (print_labels.php?settings=1) is where the optional features above are
turned on and configured, including:
- EasyPost account, warehouse address, carriers, weights, and tracking-email options
- Avery 5351 and Avery 8463 labels and their offsets
- QR code option
- Routing method
- Driver-sheet options (ETA column, note space, special pack sheet, box/bag/freezer/fridge notation)
Common Use Cases¶
Use Case 1: Daily Label Printing (Local Delivery)¶
Goal: Print all labels and driver sheets for a delivery day.
Steps:
- Open the Delivery page and Select Week.
- Find the day's section.
- Click All [Day] Packing Labels and print.
- Click [Day] Driver Sheet and print for the drivers.
Use Case 2: Shipping Orders via EasyPost¶
Goal: Generate carrier labels for a route that ships.
Steps:
- Select the week and day.
- Click EasyPost Shipping Labels for the route.
- EasyPost creates the shipments, saves tracking numbers to the orders, and produces the label PDF.
- Print and apply the labels.
Use Case 3: Optimizing Routes with Routific¶
Goal: Put stops in the best delivery order using Routific.
Steps:
- With a Routific Platform key and Workspace ID configured, send the day's orders to Routific.
- Build and optimize the routes in Routific.
- Back in Kiva Logic, update the stops from Routific to pull the optimized order in.
Use Case 4: Attaching Tracking from a Carrier CSV¶
Goal: Import tracking numbers from a carrier export.
Steps:
- Make labels in the carrier's software and export the CSV (it should contain order IDs and tracking numbers).
- On the Delivery page, use Upload Tracking CSV and choose the file.
- The importer matches each order ID to its tracking number and saves it. A message reports the number of rows updated.
Troubleshooting¶
A day or route is missing its buttons¶
Check:
- Did you Select Week for the right week?
- Does that day/route actually have orders? Routes with zero orders do not show download buttons.
- Is the feature enabled (Avery, receipts, QR, EasyPost) under Delivery > Settings?
EasyPost labels not generating¶
Check:
- EasyPost keys entered under Delivery > Settings?
- Warehouse ship-from address complete (street, city, state, ZIP, country) and phone set?
- Carrier and service-level identifiers configured?
- Addresses valid (check the EasyPost dashboard for errors)?
If a route reports orders with no shipping label, go to the Orders page, filter to that route, and create labels for the customers who are missing one.
Tracking CSV uploaded but nothing updated¶
Symptoms: "CSV processed but no valid rows found," or fewer rows updated than expected.
Check:
- Does each row contain both a recognizable order ID (5 to 9 digits) and a tracking number?
- Is the tracking number in a format the importer recognizes (FedEx digit lengths,
1Z,1LSC,JD, or a year-prefixed GLS code)? - Do the order IDs exist in the system?
Driver sheet order looks wrong¶
Check:
- Was the day routed (via your routing method) and were stop numbers set?
- If you use RouteSavvy/RoadWarrior, did you upload the optimized CSV back in?
- If you use Routific Integration, did you update stops from Routific after optimizing?
- Use Adjust Stop Numbers (
admin_routing.php) to correct the order, then re-download the driver sheet.
Related Pages¶
- Orders (
cust_order.php) - view and edit individual orders, filter by route, create labels - Routes / Map Editor - configure delivery routes and zones
- Drivers - manage driver profiles used with driver tips and tracking
- Delivery > Settings (
print_labels.php?settings=1) - configure labels, QR, routing method, and EasyPost - Packing Order - sets the product order used by the Pack Order sheet
Quick Reference Card¶
| Task | Action/Location |
|---|---|
| Print all packing labels for a day | Select week, find day, click "All [Day] Packing Labels" |
| Print packing labels for one route | Click that route's packing-label button |
| Download a driver sheet | Click "[Day] Driver Sheet" (or a per-route button) |
| Generate carrier shipping labels | Click "EasyPost Shipping Labels" for the route |
| Attach carrier tracking numbers | Use "Upload Tracking CSV" |
| Print Avery labels | Enable in Settings, then "All [Day] Avery Labels" / "Avery 8463 Labels" |
| Print receipts | Enable in Settings, then "All [Day] Receipts" |
| Download the pack order | Click "[Day] Pack Order PDF" or "Pack Order CSV" |
| Send a day to Routific | Routific Integration: send day, then "update stops from Routific" |
| Import RouteSavvy/RoadWarrior order | Upload the exported CSV and pick the matching route |
| Change routing service | Delivery > Settings > Routing Method |
FAQs¶
How are orders organized on this page?¶
By delivery week, then by day (Sunday through Saturday), then by route. Only days and routes that have orders show buttons.
What format do labels print in?¶
Standard sheet format, or a 4x6 thermal format if thermal printing is enabled for your account.
Which routing services can I use?¶
Routific (Web App or Integration), RouteSavvy, RoadWarrior, OptimoRoute, WorkWave, MapPoint, a GPX download, Manual Drag & Drop, and external FedEx/shipping-fulfillment formats. Set it under Delivery > Settings > Routing Method.
Does uploading a tracking CSV email my customers?¶
No. That upload only attaches tracking numbers to orders. Automatic customer tracking emails are a separate EasyPost setting.
Where do I turn on Avery labels, receipts, or QR codes?¶
Under Delivery > Settings. Once enabled, their buttons appear in each day's section.
Change Log¶
2026-08-03¶
- Fixed large/batch packing-label print runs so they include the "separate PDF" bundle addendum pages when that setting is on (previously only single/all-routes downloads included them).
2026-07-24¶
- Rewrote the doc to match the actual Delivery page: corrected Avery 5351 (not 5160), QR encodes Customer ID, tracking CSV carrier list and behavior, and the real routing-method list. Removed features the page does not have.
2026-07-20¶
- RouteSavvy/RoadWarrior route dropdown gained a "Show all routes for the day" toggle to include routes with no orders yet, not just ones already in use.
For additional help, contact Kiva Logic support.