How to Create Inspection Report PDFs for WooCommerce (Quality Check Reports)

Refurbished electronics, used bikes and cars, serviced appliances, graded collectibles: whenever you sell something that was tested before dispatch, the buyer wants the proof. A quality inspection report lists every check, its method and its result, the serial number, the technician and the date, and travels with the item. With PDF Invoice for WooCommerce + Drag and Drop Template Builder (plugin slug pdf-for-woocommerce, by add-ons.org) the report is generated when the order is completed: the item comes from the order, the serial, battery health, technician, date and notes from order meta fields, the checklist is a styled table in the template, and a barcode of the serial number lets support find the unit later. This guide builds it from a blank template. The warranty certificate guide is the companion document for the same products.

Video tutorial

1. What the Report Contains

BlockContentMerge tags
Title“QUALITY INSPECTION REPORT”, report number, order, customerQC-8448, PIERLUIGI CIPRIANI
ItemProduct, SKU, serial number, short description (grade and spec)Dynamic Field for Elementor Forms Pro, , ,
ChecklistA table: check, method, result (✔ PASS); the battery row prints a measured valuestatic rows +
ResultPASSED line, technician, date, notes…meta_key="qc_technician", …"qc_date", …"qc_notes"
BarcodeCode 128 of the serial number inside the Barcode element
FooterWarranty reference and contact[email protected], https://add-ons.org

The checklist rows are the same for every unit of a product class, so they live in the template; only the measured values and the identifiers change per order, and those are order meta fields that the technician fills in the order’s Custom Fields box (qc_serial, qc_battery, qc_technician, qc_date, qc_notes) before completing the order.

2. Build the Report Template

Builder note: a new element is inserted just above the element you drop it on. Create the footer first and drop every other block onto it in reading order.

Step 1: New template and checklist styles

Go to PDF Templates → New Template and name it Inspection Report. Click Settings PDF and paste this under Custom CSS; it styles the checklist table used in step 5:

p { margin: 0 0 6px; }
.chk { border-collapse: collapse; }
.chk td { border: 1px solid #c9d1d9; padding: 5px 8px; font-size: 12px; }
.chk td.ok { color: #1a9b4a; font-weight: bold; text-align: center; width: 90px; }
A new empty PDF template named Inspection Report
A blank A4 template.
The Settings PDF panel with the checklist Custom CSS
Settings PDF → Custom CSS for the .chk table.

Step 2: Footer

Drag a Text/HTML element into the row and type, in 10 px: This report documents the inspection performed before dispatch. The item is covered by the warranty stated on the product page; keep this report with the warranty certificate. Questions or a claim: [email protected] · https://add-ons.org

The footer Text element selected with the warranty reference
The footer, 10 px.

Step 3: Title

Drop a Text/HTML element onto the footer:

QUALITY INSPECTION REPORT                                          ← 26 px bold
Report No: QC-8448 · Order: #8448 · Customer: PIERLUIGI CIPRIANI
The title Text element selected with QUALITY INSPECTION REPORT and the report number
The title block.

Step 4: Item

Drop a Text/HTML element onto the footer:

Item: Dynamic Field for Elementor Forms Pro · SKU:  · Serial No: 
The item Text element selected with the product, SKU, serial and description merge tags
Item, SKU, serial number and the product’s short description.

Step 5: Checklist

Drop a Text/HTML element onto the footer and paste the checklist table in the editor’s Code view. Each row is a check, its method and the result; the battery row prints the measured value from order meta:

<table class="chk" width="100%">
<tr><td><strong>Check</strong></td><td><strong>Method</strong></td><td class="ok"><strong>Result</strong></td></tr>
<tr><td>Display</td><td>Dead pixels, backlight, brightness, hinge</td><td class="ok">✔ PASS</td></tr>
<tr><td>Keyboard &amp; trackpad</td><td>Every key, gestures, click</td><td class="ok">✔ PASS</td></tr>
<tr><td>Ports &amp; wireless</td><td>USB-C/A, HDMI, audio, Wi-Fi, Bluetooth, webcam</td><td class="ok">✔ PASS</td></tr>
<tr><td>Battery health</td><td>Full charge cycle, capacity vs. design</td><td class="ok"></td></tr>
<tr><td>Storage &amp; OS</td><td>Secure wipe, SMART test, fresh install, updates</td><td class="ok">✔ PASS</td></tr>
<tr><td>Cosmetic grade</td><td>Lid, deck, bezel, underside</td><td class="ok">✔ Grade A</td></tr>
</table>

Adapt the rows to your product class: a bike has frame, brakes, gears, wheels; an appliance has leak test, heating, noise. Any row can print a meta field instead of a fixed PASS.

The checklist Text element selected: a table with check, method and result columns and green PASS results
The checklist table on the canvas.

Step 6: Result

Drop a Text/HTML element onto the footer:

RESULT: PASSED – approved for dispatch                           ← 16 px bold, colour #1a9b4a
Inspected by:  · Date: 
Notes: 
The result Text element selected with the PASSED line, technician, date and notes merge tags
Result, technician, date, notes.

Step 7: Serial barcode

Drop the Barcode element onto the footer, set its Content to and the Width to 220 px: support scans the report and finds the unit. Click Save.

The Barcode element selected with the serial number merge tag as its content
Barcode element: content = serial number.
The finished Inspection Report template: title, item, checklist, result, barcode and footer
The finished template with the sample order.

3. Generate the Report on Dispatch

Go to WooCommerce → Settings → PDF → Add new PDF:

The PDF setting for the inspection report: label Inspection report, template Inspection Report, file name inspection-QC-8448, status Completed, attached to the completed order email and order details, My Account download for completed orders
The inspection report setting.
FieldValueWhy
Enable this PDFticked
LabelInspection reportButton label in the admin and in My Account.
PDF TemplateInspection ReportThe template from section 2.
PDF Nameinspection-QC-8448e.g. inspection-QC-1828.pdf
Enable when order statusCompletedThe technician completes the order after the inspection; the report is generated with the values entered.
Attachment toCompleted order, Order detailsThe buyer receives it with the “order complete” email; re-send from the order screen.
Allow My Account invoice downloadOnly for specific order statuses → CompletedAvailable for a later warranty claim.
The PDF settings list with the Inspection report row
The report next to the other documents.

4. Workflow: Inspect, Record, Complete

  • The order arrives as Processing; the technician inspects the unit.
  • On the order screen the technician adds the Custom Fields qc_serial, qc_battery, qc_technician, qc_date and qc_notes, clicks Update, then sets the status to Completed: the report is generated and emailed with the “order complete” notification.
  • The buyer finds the Inspection report button in My Account → Orders and on the order page.
My Account Orders list with an Inspection report button next to the completed order
My Account → Orders: the Inspection report button.
The My Account order page with the Inspection report download link
The order page lists the report.
The generated inspection report for order 1828: QUALITY INSPECTION REPORT QC-1828, the refurbished laptop with SKU and serial PF3K2L9X, the checklist with green PASS results and the measured battery health, the PASSED result with technician Marco Díaz, date and notes, the serial barcode and the footer
The generated report for order #1828.

In the admin, the order screen lists it in the PDF box with Download, Preview and Regenerate.

The PDF box on the order screen with the Inspection report entry
Order screen → PDF box → Inspection report.

5. Tips

  • Failed checks: add meta fields per check (e.g. qc_display = “✔ PASS” or “✘ FAIL – replaced”) and print them in the result column instead of fixed text; the CSS keeps the column green, change it to a neutral colour if you print failures.
  • Per-product checklists: one template per product class (laptops, phones, bikes) and a setting per template with conditional logic on a custom field, or a shared template whose rows cover all classes.
  • Photos: upload the inspection photos to the Media library and add their URLs in an Image element, or link them in the notes field.
  • Technician list: keep the technician name consistent (it is free text); a checkout-fields or admin-fields plugin can turn the meta fields into a dropdown on the order screen.
  • Pair with the warranty certificate: both documents are generated at Completed; the report proves the condition at dispatch when a claim comes in.
  • Regenerate: after editing the template or the meta fields, click Regenerate on the order; emails attach the stored file.

6. Frequently Asked Questions (FAQ)

Can the technician fill the checklist in the PDF instead?

Yes: build the checklist with the Checkbox and Text input form elements; the report is then a fillable form you complete in a PDF reader and attach to the order as a note. The template in this guide prints finished results instead, so the buyer gets a clean report automatically.

Why does the builder show “Order meta qc_serial”?

The sample order has no such fields. Preview the report for a real order, or change the sample order in the toolbar.

Can I include the inspection date automatically?

The order date tag prints the order date; use a meta field for the actual inspection date as in this guide, or August 28, 2026 if they coincide.

Several units in one order?

The product tags print the first item. Sell one inspected unit per order, or put the serial numbers of all units in the notes field and use the Order Detail table block for the item list.

Is the barcode readable by any scanner?

It is a Code 128 barcode rendered into the PDF; handheld and phone scanners read it. Use the Qrcode element if you prefer QR.