How to Create WooCommerce PDF Invoices and Packing Slips (2026)

A catering customer needs an invoice for their accounts department. Your delivery driver needs a slip showing three meals, a flat number, and “ring the side entrance.” Sending both people the same document is where an otherwise tidy ordering workflow starts getting messy. WooCommerce stores the order details, but turning those details into useful PDF...

September 12, 2026 WPSlash

A catering customer needs an invoice for their accounts department. Your delivery driver needs a slip showing three meals, a flat number, and “ring the side entrance.” Sending both people the same document is where an otherwise tidy ordering workflow starts getting messy.

WooCommerce stores the order details, but turning those details into useful PDF invoices and packing slips takes a little configuration. The real job isn’t adding a logo. It’s getting document timing, tax information, numbering, and staff instructions right—and keeping them right after refunds or order changes.

WooCommerce Invoices vs. Order Emails and Packing Slips

An order confirmation tells the customer that your store received their order. It typically includes products, totals, and billing information, but that doesn’t automatically make it a compliant tax invoice. Even an email described as a “customer invoice” or containing a payment link needs checking against your local invoice requirements.

A tax invoice may need your registered business name, address, tax registration number, an appropriate invoice number, issue date, and specific tax breakdowns. Requirements differ by jurisdiction, business status, and transaction type. A PDF format alone doesn’t establish compliance.

A packing slip serves a different audience: the person preparing, checking, or handing over the order. It usually prioritizes items, quantities, and fulfillment details rather than payment information.

Two restaurant orders, two document workflows

Consider a catering booking for 40 lunches. The customer’s finance team might need a downloadable invoice with the company’s billing address and purchase order reference. Your dispatch team needs a packing slip showing tray quantities, delivery location, and handover instructions. Those are different jobs.

For a takeaway delivery, the customer may be happy with an order email, while the driver needs an address and delivery instructions. You still need a process for supplying invoices where legally required or requested.

And a packing slip isn’t kitchen routing software. It won’t, by itself, send pizzas to one preparation station and drinks to another. Treat PDF documents as billing and fulfillment records, not as a replacement for a kitchen display or restaurant order-management workflow.

Choose a WooCommerce PDF Invoice Plugin

PDF Invoices & Packing Slips for WooCommerce by WP Overnight is one example of this plugin category. Its basic offering includes PDF invoices, packing slips, attachment options, and template functionality; additional document types and more advanced features may depend on paid extensions. That distinction matters when comparing requirements, not just plugin names.

Before installing your selected solution, write down what must happen after an order arrives. “Create a PDF” is too vague. “Attach an invoice to the processing email, allow an eligible customer to download it again, and give staff a separate packing slip” is a specification you can test.

  • Attachments: Check which WooCommerce emails the plugin supports and whether attachment rules can follow your billing policy.
  • Customer downloads: Confirm where invoices appear in My Account and which order statuses make them available.
  • Numbering: Look for configurable invoice numbers and understand when the plugin assigns them.
  • Templates: Separate simple logo and footer settings from changes requiring code or a paid template tool.
  • Compatibility: Check the current release’s supported WordPress, WooCommerce, and PHP versions, plus declared High-Performance Order Storage compatibility.

HPOS changes how WooCommerce stores order data. Test against your store’s actual HPOS and compatibility-mode configuration, especially if custom templates or integrations read order fields. A plugin working on another store doesn’t prove it works with your combination.

Credit notes, bulk document exports, automated numbering resets, and advanced customization aren’t universally included in free editions. Verify each requirement against the selected edition’s current documentation.

Keep restaurant operations separate from that decision. If you also need delivery, pickup, dine-in, kitchen display, or automatic printing, FoodMaster’s WooCommerce restaurant ordering system addresses those operational needs. A PDF invoice tool complements it; it doesn’t replace it. Test document metadata compatibility rather than assuming it.

Set Up Your First WooCommerce PDF Invoice

Install safely and enter your business details

Start on staging or take a current backup before changing a live checkout workflow. For the invoice plugin you’ve selected, install the verified package through Plugins → Add New, then activate it. Menu labels vary by product and release; locate its document or PDF invoice settings rather than expecting every tutorial screenshot to match.

Enter the business details that should appear on invoices. That usually starts with your legal trading identity and address, with tax identifiers and other required information added according to local rules. Don’t assume the restaurant’s public-facing brand name is sufficient if another entity issues the invoices.

Upload a clear logo and generate a preview if available. Keep the image sensibly sized and check it on paper, not just on a bright monitor. A giant header that pushes a six-item order onto two pages isn’t doing anyone a favor.

Choose document settings and numbering

Enable the invoice document and configure the available date, address, and footer options. Use the footer for relevant payment terms or business information, not a wall of promotional copy. Required fields should be prominent and consistently populated.

Next, decide on the invoice numbering scheme with your accountant. A prefix such as INV-2026- followed by a sequential number can be readable, but annual resets, prefixes, and sequence rules must fit your jurisdiction. An order number and an invoice number are not automatically interchangeable.

Find out what triggers number allocation: manual creation, an email attachment, a status transition, or a customer download. This is easy to miss. Depending on configuration, opening the first PDF may create an issued document rather than merely preview one.

Use clearly separated test records and prevent staging from sending real customer emails. Don’t reset a production sequence just to tidy up testing, and don’t casually delete issued invoices to reuse their numbers. Ask how the plugin preserves document dates, numbers, and content after order edits.

[IMAGE: Annotated PDF invoice preview showing business identity, invoice number, issue date, customer billing address, itemized charges, and tax totals]

Generate and reconcile a test invoice

Create a test order with a billing address, multiple items, a discount, shipping, and tax where applicable. Open it in WooCommerce and use the selected plugin’s invoice action to generate or download the PDF.

Check the business details first, then the customer’s billing name, company, and address. Compare each product quantity, unit price, discount, shipping charge, tax amount, and final total against the order record. Confirm whether displayed prices include or exclude tax.

For example, in a hypothetical tax-exclusive order, £200 of goods minus a £20 discount plus £10 shipping gives a £190 taxable subtotal. If everything in that example is taxed at 10%, tax is £19 and the total is £209. This is an arithmetic test, not a suggested tax treatment—actual rates, shipping taxation, and discount rules vary.

Also test rounding and multi-page layouts. A one-item order won’t reveal awkward page breaks, truncated addresses, or a totals block disappearing below the footer.

Automatically Send Invoices and Offer Customer Downloads

Once the PDF is correct, choose its delivery points. In the plugin’s attachment settings, select supported WooCommerce emails that match your invoicing policy. Avoid ticking every box: repeated attachments create confusion, and different email triggers can issue documents earlier than intended.

For many online-paid orders, the processing email is a practical attachment point. But status is not universal proof of payment. Gateway behavior varies, and cash-on-delivery orders can enter processing before anyone collects cash.

Match invoice timing to payment reality

Use a clear policy for the main payment situations:

  • Paid online: Verify the payment result and attach the invoice at the status or event your policy requires.
  • Pending payment: Decide whether the customer needs an unpaid invoice, payment request, or another document. Don’t label it paid.
  • Failed payment: Check whether any invoice was already issued and handle it under your accounting rules rather than silently deleting it.
  • Cash on delivery: Make payment expectations clear and record collection through your normal order-management process.

An issued invoice is not necessarily proof of payment. A receipt or explicit paid notation serves a different purpose. If your template shows payment status, test when that label changes and whether previously issued documents remain consistent.

For registered customers, enable invoice downloads in My Account where supported. Check any status restrictions and test with an ordinary customer account, not your administrator login. Confirm that the customer sees only documents belonging to their orders.

Guest buyers usually won’t have an account order list. Test the email attachment and any supported authenticated guest-download process separately; don’t assume account downloads cover them.

Complete one guest purchase and one registered-customer purchase using a suitable test payment method. Check the attachment, filename, readability, and repeat download. If the email arrives without a PDF, investigate document eligibility and generation first. If the email never arrives, move to email delivery logs rather than changing invoice settings at random.

Create Packing Slips for Delivery, Pickup, and Catering Orders

Enable the packing-slip document, then generate it from an individual order or a supported bulk action in the orders list. Print a sample on the actual staff printer. A document that looks fine on A4 may be unreadable on narrow thermal paper without a suitable template.

Keep operational documents focused. Staff need to identify the order, check quantities, and complete the handover. They generally don’t need a customer’s billing company details, tax number, payment transaction reference, or a breakdown of how much they tipped.

Show the details each fulfillment method needs

For delivery, prioritize the recipient, delivery address, item quantities, and relevant delivery instructions. Include a contact number only where it’s needed for the job and permitted by your privacy practices. An order reference should be easy to spot when several bags are waiting together.

For pickup, the useful fields are usually the customer name, collection reference, collection time, and contents. A billing address adds clutter. Catering may need venue access instructions, a contact person, service time, and a packing checklist for utensils or equipment.

Order notes deserve care. Customer-provided delivery instructions and internal staff notes aren’t the same thing. Don’t configure a template to print every note indiscriminately, particularly when slips might be handed to customers.

Check add-ons, slots, and custom order fields

Restaurant orders often contain details beyond the product name: “large,” “extra cheese,” “no onions,” or a selected delivery window. Some are stored as order-item metadata; others live in custom order fields. A PDF template may display one type automatically and omit the other.

Place a test order with every customization you actually sell. Check delivery slots, pickup instructions, product add-ons, bundles, and long notes. For catering, confirm that both the number of packages and their contents are understandable: “4 trays, 10 portions each” is less ambiguous than “quantity: 4.”

If a field is missing, first confirm that it exists on the saved order. Then investigate supported display settings, integrations, or template hooks. Custom work should use WooCommerce’s order APIs and the invoice plugin’s documented extension points, not direct database assumptions or edits to plugin core files.

[IMAGE: Delivery and catering packing slips side by side, highlighting delivery instructions, pickup or service times, modifier details, and quantities while excluding billing and payment information]

Keep kitchen instructions in the kitchen workflow too. A correctly printed slip is useful for a final bag check, but it’s a poor substitute for getting preparation details to cooks at the right moment.

Test Your Workflow and Fix Common PDF Invoice Problems

Most PDF invoice problems come from three places: missing order data, document-generation rules, or template behavior. Work through those in that order. Redesigning a template won’t recover a company name that checkout never collected.

A practical troubleshooting checklist

  • Missing attachment: Confirm that the relevant email was triggered, selected for attachments, and eligible under document rules. Generate the PDF manually, then inspect relevant logs for rendering errors.
  • Absent billing fields: Inspect the saved order. If the field exists there, check its template mapping; if it doesn’t, investigate checkout collection and validation.
  • Incorrect tax display: Compare the PDF with the order’s recorded tax lines, tax-inclusive settings, shipping tax, discounts, and rounding. Distinguish a display error from an incorrect order calculation.
  • Duplicate numbering: Pause affected issuance and investigate resets, restored databases, migrations, or multiple sites sharing a sequence. Don’t renumber already-issued documents without accounting guidance.
  • Inaccessible downloads: Check ownership, login state, order-status eligibility, security rules, and caching. Account pages and authenticated document responses must not be publicly cached.

Reproduce problems on staging before disabling plugins or changing templates. Use anonymized data where possible, keep staging emails contained, and change one variable at a time. Never “fix” an access problem by making the invoice directory public.

Refunds, exports, and records

A WooCommerce refund record doesn’t automatically create a compliant credit note. Verify whether your selected edition supports credit notes, how they reference the original invoice, and how partial refunds—including shipping, tax, and tips—are represented. An issued invoice generally shouldn’t simply disappear because an order was refunded or canceled; follow locally applicable correction rules.

Ask your accountant what exports they need before launch. PDFs may not replace a structured sales export with invoice numbers, dates, currency, net amounts, tax breakdowns, gross totals, and linked credits. Confirm that exports reconcile with your bookkeeping workflow, including non-product charges.

Protect documents with appropriate customer and staff access controls. Test that one customer cannot retrieve another customer’s invoice by changing a URL parameter. Establish retention, backup, and deletion practices around local accounting and privacy obligations rather than choosing an arbitrary storage period.

Before switching on live attachments

Run a final check covering paid, pending, failed, cash-on-delivery, canceled, and partially refunded orders. Repeat-download an issued invoice and confirm its identity remains consistent. Test guest delivery, account downloads, long orders, custom fields, and the printed packing slip.

When the customer receives a clear billing document and staff receive exactly what they need to fulfill the order, the setup is doing its job. That’s the goal—not more paperwork, just fewer reasons to stop and ask what happened.

Commission-free ordering

Run restaurant orders on your own WordPress site

FoodMaster adds delivery, pickup, dine-in, POS, and kitchen tools — with zero per-order fees.

Get FoodMaster

Leave a Comment

Your email address will not be published. Required fields are marked *

×

🔥 ONE DAY ONLY OFFER 🔥

Upgrade FoodMaster Today

Normally your license is limited to 1 Website.

Today only, get a LIFETIME Unlimited Websites License for just:
$499

✔ Unlimited Client Websites
✔ Unlimited Personal Projects
✔ Future Updates Included
✔ Save Hundreds on Additional Licenses

Offer Ends In: