PDF Invoices & Packing Slips Generator

WooCommerce Plugin
5.0
3 Reviews
v2.4.8
Updated 5 months ago
300+
Stores Live
every order, its own branded PDF ↓

Auto-generate branded invoices, packing slips and credit notes.

Send a professional invoice with every order email. Generate packing slips at completed status. Issue credit notes on refunds. Six shortcodes ([prop], [each_item], [each_refund], [page_break], [line], [translate]) give you full template control. HPOS-ready. $39.99/yr or $119 once.

14-day refund
RTL + decimal qty
HPOS-ready
three things WooCommerce native can't do ↓

Every order. Every email. No native PDF.

Out of the box, WooCommerce sends a plain-text order confirmation. No invoice. No packing slip. No credit note. Your accountant and warehouse staff need real documents, not order-number references in an email body.

problem · 1

You build invoices by hand in Word. One at a time.

Open order #4218 in admin2 min
Copy line items into Word3 min
Recalculate tax + total2 min
Export PDF · email customer8 min · per order

At 20 orders a day that's 2 hours and 40 minutes of clerical work, and the typos still happen. The customer's invoice ends up looking different every time.

problem · 2

"Hi, can you send me an invoice for order #4218?"

Jules · #4218need invoice for expense report
Marek · #4221VAT invoice please, B2B
Sara · #4223accountant wants a PDF
3 tickets · same week · same fix

Every B2B buyer and every freelancer customer eventually asks. If the invoice doesn't ship with the email, your support queue takes the hit instead.

problem · 3

Warehouse picks orders off a screen, not paper.

#4218aisle 3 · bin 12✕ no slip
#4219aisle 1 · bin 04✕ no slip
#4220aisle 5 · bin 22✕ no slip
picker walks to a computer · re-checks every order

Without a packing slip you can print and tape to a box, your shipping team becomes a screen-bound bottleneck. Mis-picks go up, throughput goes down.

eight controls you'll use ↓

Every document. Every trigger. Every detail.

The plugin handles four jobs: generate invoices, packing slips, and credit notes; trigger them on order events or manual action; brand them with full header/footer/background control; and extend them with shortcodes for layouts your accountant signs off on.

docs · invoice · slip · credit note

Three documents. One plugin. Same template engine.

Each document has its own template, numbering sequence, page format, and trigger rules. Enable one, two, or all three.

template · 6 shortcodes

Six shortcodes give you total layout control.

No HTML engine to learn. Use shortcodes inline with regular text and the plugin renders the rest.

brand · header + footer + bg

Logo top, terms bottom, watermark in the middle.

Upload header image, set page background, set foreground image (great for "PAID" / "DRAFT" watermarks).

numbers · seq · date · custom

Number formats accountants accept.

Different format per document type. Set the starting number and a reset cadence so January 1st starts fresh.

bulk · admin orders

Pick 50 orders. Generate every PDF in one click.

Sits in the WooCommerce > Orders bulk-actions menu. Works for invoices, packing slips, and credit notes alike.

thumbnails · packing slips

Product images on slips. Warehouse picks faster.

Toggle per document. Pickers spot the right SKU at a glance, returns staff verify what came back without checking the screen.

tech · rtl · decimal · hpos

Speaks every language. Counts every fraction.

RTL renders correctly with proper number alignment. Decimal quantity plugins for grocery/fabric/weighted goods supported out of the box.

setup

Four steps. Live in under 10 minutes.

i · install

Activate the plugin

Upload the .zip from Plugins → Add New, then activate.

PDF Invoices & Packing Slips Generator Active
ii · pick triggers

Set order events per document

Invoice on Processing. Packing slip on Completed. Credit note on Refunded. Or any order status you use.

invoice trigger processing
packing slip trigger completed
iii · brand

Upload logo, header, footer text

Add your logo, set the header title, set the footer text (terms, VAT number, contact), pick page format and margins.

Header imagelogo.png ✓
Page formatA4 portrait ✓
Footer textVAT GB123… ✓
iv · numbers

Pick a numbering scheme

Sequential (INV-0001), date-based (INV-2026-04-001), or fully custom with a printf pattern. Yearly reset is one click.

how we stack up

PDF invoicing without the yearly tax.

WooCommerce
native · none
WebToffee
from $69/yr · no lifetime
WP Overnight
from €69/yr · no lifetime
WPFactory
$39.99/yr · $119 once
core: documents the plugin generates
Invoice PDF✕✓✓
Packing slip PDF✕✓✓
Credit note (refund) PDF✕✓✓
Auto-attach to order emails✕✓✓
template & layout control
Shortcode template engine✕✕drag-drop only
[each_item] / [each_refund] loops✕✕✕
[page_break] for multi-page✕✕not specified
[translate] per-language inline✕✕✕
Page background image✕not specified✓
Foreground image (watermark)✕✕via add-on
numbering & compatibility
Sequential + date-based numbering✕✓✓
Custom printf number pattern✕not specifiednot specified
Decimal-quantity compatible✕not specifiednot specified
HPOS-ready-✓✓
RTL support (Arabic, Hebrew, Persian)✕✓✓
Bulk PDF generate (admin orders)✕✓✓
Customer download from My Account✕✓✓
pricing & ownership
Free version on .org-✓✓
Lifetime tier-✕✕
Top tier (apples-to-apples)-$199/yr · 25 sites€279/yr · 25 sites
10-year cost (top tier)$0$1,990~$2,790
50+ plugins (All Access)-✕✕
Ready to send a branded PDF with every order? ↓ Jump to pricing
scroll →
three real stores ↓

Three businesses. Three PDF workflows.

EU B2B · VAT invoices

EU B2B store · "Every order needs a VAT invoice."

A Berlin office-supply store sells to other businesses. German tax law requires a compliant VAT invoice for every order. The plugin auto-generates the invoice on Processing, attaches it to the customer-processing email, and includes line-item VAT, the seller's VAT number, and a sequential VAT-prefixed number.

TriggerProcessing → invoice attached to email
NumberingVAT-2026-00001, yearly reset
FooterVAT no, registered address, terms

B2B support tickets asking "can you send me a VAT invoice?" went from 6/week to zero. Accountant signs off in the first audit cycle.

global SaaS · multi-language

Global SaaS · "Every customer gets an invoice in their language."

A WordPress plugin shop sells worldwide. French buyers want "Facture", German buyers "Rechnung", Arabic buyers an RTL document with Arabic numerals. Using the [translate] shortcode, one template covers every language; the plugin picks the right string based on the order's billing locale.

TemplateOne file, [translate] shortcode per label
RTLAuto-flips for ar, he, fa
StackWPML + WPFactory PDF Invoicing

No more maintaining 6 separate invoice templates. New language = a few extra [translate] strings, never a new file.

verified reviews

From stores running this right now.

Using the plugin? Leave a review on WordPress.org.

"Excellent plugin and outstanding support. Quick replies, solid quality, exactly what we needed."
C
Carsten Lund verified review from another WPFactory plugin
verified buyer
see review →
"Great plugin and even better support team. They answered within hours and fixed our edge case fast."
J
joyryde verified review from another WPFactory plugin
verified buyer
see review →
"Solid plugin, fair price, and the support team actually replies. Real value for the money."
S
Sopan Ali verified review from another WPFactory plugin
verified buyer
see review →
tested with

Drops into the stack you already run.

Platform

WP 4.4+WP 7.0WC 4.0+WC 10.7PHP 7.4+PHP 8.3HPOS-ready

Documents

InvoicePacking slipCredit noteRefundsMulti-pageDecimal qty

Languages & locales

WPMLPolylangRTL: ArabicRTL: HebrewRTL: PersianUnicode

Plays well with

EU VATWC SubscriptionsPayment Gateway CurrencyOrder Status RulesREST API
why this plugin

Built for stores where every order ships with paperwork.

Every WPFactory plugin ships with the same eight guarantees. Here's what running this one looks like in practice.

Clean code, reviewed

Hooks into WooCommerce's email and order-status events instead of polling. Shortcode parser is the same engine WordPress uses. No extra database tables - documents render on demand from order data.

Docs & specs, written

Every shortcode is documented with examples ([prop], [each_item], [each_refund], [page_break], [line], [translate]). Hooks for custom data exposed at every render step.

Support that ships

Email support that actually replies. Reviewers credit support for adding requested features inside their trial window. Real bug reports become releases within days, not quarters.

14-day money-back

14-day refund on yearly and lifetime, 30 days on All Access, no questions asked. If your accountant rejects the template, support helps adjust; if it still doesn't fit, you walk away whole.

Bundle savings, real

All Access is $499 once for all 50+ plugins, lifetime, unlimited sites, and it includes every plugin we release later. Three lifetime licenses at $199 already cost $597, so the bundle usually wins by your third plugin.

Updates, regularly

v2.4.8 shipped recently. Tested against the latest WooCommerce within days of every release. HPOS-ready, PHP 8.3 compatible. Tracks WooCommerce's email and order-status API changes so generated PDFs keep landing.

Plays well with others

Compatible with WooCommerce Subscriptions, EU VAT, Order Status Rules, WPML, Polylang. Shortcodes and filters expose every render step so custom integrations slot in cleanly.

Designed for store owners

You don't need to know what dompdf is. Pick the trigger, upload the logo, pick a number format, save. The first paid order generates a real PDF and emails it.

7 stores joined this week·2 in the last 24h
if you're going to keep this plugin a while ↓

Three tiers. Pick once.

14-day refund on yearly and lifetime, 30 days on All Access. Lifetime pays for itself by year 3. All Access pays for itself with any 2nd plugin you'd ever use. Yearly auto-renew can be turned off in your account.

PDF INVOICING PRO
$119 once

Buy once. Owns itself by year 3. Use on every site you own.

  • Unlimited sites
  • Lifetime updates
  • Priority email support
  • 14-day refund
  • GPL-licensed · use on client sites
Buy Lifetime - $119 once
★ SMART MOVE ALL ACCESS · LIFETIME
$999$499oncesave 50%

This plugin + 49 others, lifetime updates, unlimited sites - for $380 more than Lifetime alone.

! Buying any 5 single lifetimes?
$595 → $499 / 50+
  • 50+ plugins, lifetime updates
  • Unlimited sites - every plugin
  • Future plugins included free, forever
  • Lifetime priority support
  • Pays back at 5th plugin you'd use
Explore All Access
Which documents can the plugin generate?
Invoices, packing slips, and credit notes (refunds). Each document type has its own template, numbering sequence, header and footer, page format, and trigger rules. You can enable just one or run all three side-by-side.
How are PDFs generated - manual or automatic?
Both. Set each document to generate automatically on a specific order status (e.g. invoice on processing, packing slip on completed, credit note on refund) and attach it to the matching WooCommerce email. Or generate on demand from the order admin page, the bulk actions menu, or the customer's My Account orders list.
Can customers download their invoices themselves?
Yes. A download button is added to the My Account > Orders area for every order that has a generated document. No support ticket needed - customers re-download whenever they need to.
How customizable is the document layout?
Fully. Page orientation (portrait/landscape), format (A4, A5, Letter, custom), margins, header image, header title and text, footer text, background image, and foreground overlay are all configurable. Content is built with shortcodes so you can lay it out exactly as the accountant needs.
What shortcodes are available?
Core shortcodes include [prop] for any order or document property, [each_item] for product line iteration, [each_refund] for credit notes, [page_break] for multi-page documents, [line] for horizontal separators, and [translate] for multilingual content. Every shortcode is documented with examples.
What about number formats?
Sequential (INV-0001, INV-0002), date-based (INV-2026-04-001), or fully custom with a printf-style pattern. Set a starting number, reset cadence (never, yearly, monthly), and a prefix/suffix per document type. Different formats per document are supported.
Does it handle taxes and refunds?
Yes. Order total, line-item tax percentages, multi-rate taxes, and partial refunds (credit notes) are all rendered with the original totals plus the deducted amounts. Tax breakdowns appear on every line and as a summary.
Are product images included on invoices?
Yes, optionally. Toggle product images on per document. Useful for picking lists and packing slips where a visual cue speeds up warehouse work.
Does it support RTL languages?
Yes. Arabic, Hebrew, Persian, and other RTL scripts render with correct direction and proper number alignment. Tested with WPML and Polylang for multilingual stores.
Does it work with HPOS?
Yes. HPOS (High-Performance Order Storage) is declared compatible. The plugin reads from the new high-performance order tables and the legacy postmeta storage transparently.
Does it work with decimal quantities?
Yes. Decimal quantity plugins (for grocery, fabric, weighted goods) are supported out of the box. Documents render quantities at the precision you have configured (e.g. 1.5 kg, 0.25 yd).
What is the refund policy?
14 days on the yearly and lifetime plans; 30 days on All Access. No questions asked. Lifetime never renews. Yearly auto-renew can be turned off in your account.
if you've scrolled this far ↓

Stop building invoices by hand. Ship the PDF with the order email.

Invoices, packing slips, credit notes. Triggered on order events or generated in bulk. Six shortcodes for full template control. RTL, decimal-quantity, HPOS-ready. 300+ stores already running it. 14-day refund if it's not for you.

300+ stores · 5.0★ across 3 reviews · WordPress.org plugin · 14-day refund