Aaima PDF Invoice — Documentation
🧾
📄
🔢
🎨
📧
⭐ WooCommerce Plugin v1.0.0

Aaima PDF Invoice

Professional PDF invoices, credit notes, packing slips and delivery notes for WooCommerce. Legally sound sequential numbering, four built-in designs, your own branding, automatic email attachment and customer downloads from My Account.

🧾 4 Document Types🔢 Gap-Free Numbering🎨 4 Designs💶 HT / TVA / TTC Columns📧 Email Attachment🇫🇷 French Included

📑 Table of Contents

🚀 Getting Started

  • • System Requirements
  • • Installation
  • • Company Details
  • • Numbering Before Go-Live

🧾 Document Types

  • • Invoice
  • • Credit Note
  • • Packing Slip
  • • Delivery Note

🔢 Numbering

  • • Why It Matters Legally
  • • Prefixes & Placeholders
  • • Yearly & Monthly Reset
  • • Migrating From Another System

🎨 Design

  • • Four Layouts
  • • Accent Colour & Fonts
  • • Tax Columns
  • • Logo & Wording

📧 Delivery

  • • Attach to Emails
  • • Order Screen Buttons
  • • Bulk Download
  • • My Account Access

🔧 Support

  • • Troubleshooting
  • • FAQ
  • • Developer Filters
  • • Changelog

System Requirements

What the plugin needs to run

📦

WordPress

5.8+
🐘

PHP

7.4+
🛒

WooCommerce

6.0+
💾

Memory

128MB+
💡

PDF generation is more demanding than a normal page load. 128 MB of PHP memory is recommended. If invoices fail on large orders, that is almost always the limit to raise first.

Key Features

Everything a shop needs to issue proper tax documents

🧾

Four Document Types

Invoice, credit note, packing slip and delivery note — each with its own numbering sequence, its own design behaviour and its own email rules.

🔢

Legally Sound Numbering

Numbers are claimed through a unique database index rather than a counter that is read then written back. Two orders completing in the same instant can never receive the same number.

💶

Configurable Tax Columns

Show unit price and line total excluding tax, the tax amount, and the same figures including tax. Each column toggles independently, so B2B and B2C shops both get what they need.

🎨

Four Designs

Classic, Modern, Minimal and Compact, all driven by a single accent colour with softer background tints derived automatically.

📧

Attach to Any Email

A simple grid maps each document type to each WooCommerce email. Most shops attach the invoice to the completed order email only.

👤

Customer Downloads

Invoices appear as a download button in My Account. You choose which document types and which order statuses.

📦

Bulk Download

Select orders in the list, choose a document type from bulk actions, and get one combined PDF ready for the printer.

🌍

Full Unicode

DejaVu Sans is bundled, so accented, Greek and Cyrillic characters render correctly rather than as empty boxes.

🔒

Private by Design

PDFs live in a protected folder and are streamed only after a permission check, because an invoice contains personal data.

Installation Guide

Two ways to install

📦 Method 1: WordPress Admin

  • 1

    Go to Plugins → Add New

  • 2

    Click Upload Plugin

  • 3

    Choose aaima-pdf-invoice.zip

  • 4

    Click Install Now

  • 5

    Click Activate

📁 Method 2: FTP Upload

  • 1

    Extract aaima-pdf-invoice.zip

  • 2

    Connect to your server via FTP/SFTP

  • 3

    Navigate to /wp-content/plugins/

  • 4

    Upload the aaima-pdf-invoice folder

  • 5

    Activate in Plugins

After Activation: Go to PDF Invoice in the admin menu, fill in your company details, then set your numbering before taking real orders.

⚠️

Hard-refresh after uploading an update. Browsers cache plugin CSS and JavaScript. Press Ctrl+Shift+R (or Cmd+Shift+R) so you are not looking at the old version.

Setup in Four Steps

Get invoices out of the door

🏢

1. Company Details

Name, address, VAT

🎨

2. Pick a Design

Preview a real PDF

🔢

3. Set Numbering

Do this before go-live

📧

4. Choose Emails

Which mail carries it

🧾 The Four Document Types

Each serves a different purpose and audience

🧾 Invoice

  • The tax document your customer files
  • Shows prices, itemised taxes, both addresses
  • Issued when the order reaches a chosen status
  • Number is permanent once issued

↩️ Credit Note

  • Issued against a refund
  • Describes what was actually given back
  • References the original invoice number
  • Required in most countries — you may not simply delete an invoice

📦 Packing Slip

  • For whoever packs the box
  • Deliberately shows no prices
  • Safe to put inside a gift parcel
  • Lists what to pick and how many

🚚 Delivery Note

  • Travels with the parcel
  • Leads with the delivery address
  • Useful for couriers and the recipient
  • Confirms contents on arrival
💡

Set your numbering before going live. Issued numbers are permanent by design — in most countries you may not renumber an invoice you have already sent. If you are migrating, set "Start at" to one above your last existing number and match the prefix.

Settings Reference

Four tabs, every option explained

🏢 Company Tab

This becomes the "from" block at the top of every document. In most countries an invoice must carry your legal name, address and tax number.

Company nameYour legal trading name as it should be printed.
AddressOne line per line, exactly as printed.
VAT numberRequired on invoices in the EU and many other territories.
Company registrationSIRET, Companies House number, and similar.
LogoPNG or JPEG. SVG is not supported by the PDF engine.
TermsPrinted under the totals — payment terms, return policy.
Page footerRepeated at the bottom of every page.
Payment termsDays until due. Prints a due date. Set 0 for shops paid at checkout.

🎨 Design Tab

LayoutClassic (formal, B2B), Modern (coloured header band), Minimal (prints well in black and white), Compact (tighter rows for long orders).
Accent colourDrives headings, the table header and the total. Background tints are derived from it automatically.
Paper sizeA4, Letter or Legal.
FontKeep DejaVu Sans if your shop uses accented or non-Latin characters. The others cannot render them.
Item table columnsUnit price excl. tax, line total excl. tax, tax, unit price incl. tax, line total incl. tax — each independent.
IncludeSKU column, product thumbnails, payment method, shipping address, customer note.
💡

Thumbnails make each document noticeably slower to build. Leave them off unless you need them.

🔢 Numbering Tab

Each document type has its own independent sequence.

Prefix / digits / suffixBuild the format. Digits pads with zeros — 5 gives 00001.
Placeholders{Y} four-digit year, {y} two digits, {m} month, {d} day.
Start atThe first number issued. Use this when carrying on from another system.
ResetNever, every year, or every month. If you reset, put {Y} in the prefix so numbers from different years stay distinct.
Use the order numberMirror the WooCommerce order number instead of counting separately. Simpler to reconcile, but leaves gaps when an order is cancelled — which some tax authorities query.

📧 Documents Tab

Issue the invoice atWhich order statuses reserve a number. The first time an order reaches one of these, the invoice is numbered.
Credit notesCreate one automatically whenever a refund is recorded.
Rebuild PDFsOff by default. An invoice records what was sold when it was issued, so it normally should not change afterwards.
Attach to emailsA grid mapping each document type to each WooCommerce email.
Available in My AccountWhich types customers can download, and for which order statuses.
💡

Packing slips are internal documents — usually best left unticked for My Account.

Numbering Formats

Common setups you can copy

🔢 Prefix and Reset Combinations

PrefixDigitsResetProduces
INV-5NeverINV-00001INV-00002
{Y}-5Every year2026-00001, restarting each January
INV-{Y}{m}-3Every monthINV-202608-001
FA-4NeverFA-0001 — common French format

💶 Column Setups by Shop Type

Shop typeColumns to enableResult
B2B / FranceUnit ex., Total ex., TaxPrix HT, Total HT, TVA
B2C simpleUnit inc., Total inc.Tax-inclusive prices only, tax shown once at the bottom
Full breakdownAll fivePrix HT, Total HT, TVA, Prix TTC, Total TTC
MinimalTotal ex. onlyA single price column

Troubleshooting Guide

Common issues and how to fix them

❌ Accented characters show as boxes

é, ç or ü render wrong

Solution: Switch the font back to DejaVu Sans on the Design tab. Helvetica, Times and Courier are built into the PDF format itself and only cover basic Latin characters.

❌ PDF generation fails or times out

Error or blank page

Solution: Turn off product thumbnails on the Design tab, since each image must be fetched and embedded. If it persists, ask your host to raise the PHP memory limit to at least 128 MB.

⚠️ The logo does not appear

Blank space where the logo should be

Solution: SVG is not supported — use a PNG or JPEG. If your site sits behind HTTP authentication the PDF engine may also be unable to fetch the file.

⚠️ Invoice not attached to emails

Customer receives no PDF

Solution: On the Documents tab, the invoice column must be ticked for that specific email. Also confirm the order reaches a status that issues an invoice.

ℹ️ There is a gap in my invoice numbers

A number is missing from the sequence

Solution: Usually a document was issued then deleted, or you are mirroring order numbers and an order was cancelled. Counting separately from order numbers avoids this.

ℹ️ Everything spills onto a second page

Page 1 is nearly empty

Solution: Reduce the font size by a point on the Design tab, or switch to the Compact layout. Turning off thumbnails also frees a lot of vertical space.

ℹ️ Customers cannot find their invoice

Nothing in My Account

Solution: On the Documents tab, tick the invoice under "Available in My Account" and make sure the order status they are viewing is in the list below it.

ℹ️ Prices look wrong by about 20%

Totals do not match the order

Solution: Check which tax columns are enabled. Showing "Total ex. tax" against an order the customer paid inclusive of tax is the usual cause of confusion.

Frequently Asked Questions

Common questions answered

Q: Can I change an invoice after sending it?

You can rebuild the PDF and the number stays the same. But if the amounts have changed, the correct approach almost everywhere is to issue a credit note and then a new invoice, rather than altering the original.

Q: Are the numbers really gap-free?

A number is claimed by inserting it into a database column that only permits unique values. If two orders complete simultaneously, one insert fails and that request takes the next number. Reading a counter and writing it back — the usual approach — can hand the same number to both.

Q: Where are the PDF files stored?

In a protected folder inside your uploads directory. They are never served directly — every download passes a permission check, because an invoice contains personal data.

Q: Can customers download their own invoices?

Yes, from My Account. You choose which document types and which order statuses are available.

Q: Does it work with HPOS?

Yes. The plugin declares compatibility with High-Performance Order Storage and the Cart/Checkout blocks.

Q: Can I print a batch for the warehouse?

Yes. Select the orders in the list, choose "Download packing slip PDFs" from bulk actions, and you get one combined PDF.

Q: Do I enter prices including or excluding tax?

Neither — the plugin reads them from the order. What you choose is which columns to display. Enable the tax columns that match how your shop sells.

Q: Is it translated?

Yes, a complete French translation is included, using proper HT / TTC terminology.

Changelog

Version history

v1.0.0 — Initial Release

  • Four document types: invoice, credit note, packing slip, delivery note
  • Gap-free sequential numbering via a unique database index
  • Placeholders {Y} {y} {m} {d} with yearly and monthly reset
  • Four designs driven by a single accent colour
  • Five configurable tax columns (HT / TVA / TTC)
  • Email attachment grid for every document type and WooCommerce email
  • Order screen View / Download / Rebuild buttons and an orders list column
  • Bulk download producing one combined PDF
  • My Account downloads with per-status control
  • Bundled DejaVu Sans for full Unicode support
  • Protected storage with permission-checked streaming
  • Complete French translation and built-in Help tab

Support & Updates

We're here to help

💬

6 Months Support

Via ThemeForest comments or support email. We reply within 24-48 hours on business days.

🔄

Free Lifetime Updates

All future updates are free, and included in the Aaima theme update package.

📖

Built-in Help

Every screen of this plugin has a Help tab covering setup and troubleshooting, so the answer is always to hand.

Need Help?

Get support via ThemeForest comments or contact us directly

📧 Contact Support 📖 View Full Docs