Markus Michalski FAQ

PDF Invoices: Configuration

Settings of the PDF Invoices module for OXID eShop 7.x: numbering, storage path, email attachment, logo, creditor ID, debug logging and the invoice tab in the order.

Deutsche Version

Back to overview

PDF Invoices: Configuration

Live Demo: Try this and other plugins live — no installation, no risk: demo.markus-michalski.net

This documentation always describes the latest published version.

You find the module settings in the OXID admin under Extensions > Modules > PDF Invoices > Settings.

Settings

General settings

Module settings under Extensions > Modules > PDF Invoices > Settings

Setting Default Description
Invoice Number Prefix RE- Prefix of the invoice number, for example RE- or INV-
PDF Storage Path export/invoices Storage directory of the PDF files, relative to the shop directory (source/)

Invoice Number Prefix: The number has the format {prefix}{year}-{running number, 5 digits}, for example RE-2026-00001. The counter runs per shop and calendar year and starts at 1 again with every new year. If you change the prefix in the middle of a year, the counter continues and only the new numbers get the new prefix.

The admin area also shows the setting "Reset Numbering Yearly". It has no effect in the code. Numbering always runs per shop and year, whatever the option is set to.

PDF Storage Path: Only paths relative to the shop directory are possible. Below it the module creates the structure {shop ID}/{year}/{month}/{invoice number}.pdf. The path of each invoice is stored with the invoice. Changing the storage path later does not move existing files, they are still found at the old location.

The module only creates the .htaccess with Deny from all for the default path export/invoices. With a custom storage path you have to block direct access to the directory yourself, otherwise the invoices are reachable via URL.

Email settings

Setting Default Description
Email Attachment Customer only To which order email the invoice is attached
Auto-generate Yes Create a missing invoice automatically when the order email is sent

Options for "Email Attachment":

Option Effect
Do not attach The invoice is not attached to any order email
Customer only Attached to the order confirmation to the customer
Shop owner only Attached to the order notification to the shop owner
Both Attached to both emails

Template settings

Setting Default Description
Logo Path empty Path to the logo, relative to out/pictures/. Empty = use the shop logo
SEPA Creditor ID empty Creditor identifier, printed in the SEPA direct debit block of the invoice

If the module does not find the logo file under out/pictures/, the shop name appears in the invoice header instead of the logo.

Debug settings

Setting Default Description
Enable Debug Logging Off Switches on additional flow messages of the module (PDF creation, number assignment, sending) for the OXID log

Errors are always logged regardless of this setting. The module writes through the OXID logger and does not create a log file of its own.

When is an invoice created?

There is no order event and no cron job. An invoice is created in exactly two places:

  1. When the order email is sent, if the attachment is intended for this email and the invoice is still missing.
  2. Manually via the "Create Invoice" button in the admin area.

When an order email is sent, the module checks in this order:

Check Result
Does "Email Attachment" match the recipient type of the email (customer or shop owner)? If not, nothing is attached and nothing is created
Does an invoice already exist for the order? If yes, it is attached
Is "Auto-generate" enabled? If yes, the invoice is created now and attached. If not, the email is sent without an invoice

"Auto-generate" therefore only controls whether a missing invoice is created when the email is sent. An invoice that already exists is attached even if the option is off.

If "Email Attachment" is set to "Do not attach", no invoice is ever created when emails are sent, even if "Auto-generate" is enabled. In that case you create invoices manually in the admin area.

Further notes:

Invoice tab in the order

In the OXID admin, open an order under Manage Orders > Orders and select the tab PDF Invoice.

The tab shows the order information (order number, order date, total, customer, email) and the invoice information (invoice number, invoice date, created at, sent to customer, sent to shop owner, each with timestamp).

Invoice tab with four buttons and info fields in the order

Actions

Action Visible when Effect
Create Invoice as long as no invoice exists Creates number, snapshot and PDF
Download PDF when an invoice exists Downloads the PDF file (Rechnung-{invoice number}.pdf)
Send via Email when an invoice exists After confirmation, sends a separate invoice email to the customer
Regenerate PDF when an invoice exists After confirmation, renders the PDF again from the stored snapshot

Separate invoice email: It goes to the billing email address of the order, contains the PDF as attachment and sets the status "Sent to Customer". The subject is "Ihre Rechnung {invoice number}" (with an English admin language "Your Invoice {invoice number}"). The email text is fixed in German and consists of a greeting, one sentence with invoice and order number, a closing and the company address.

Regenerate PDF: Number and date of the invoice stay the same. The PDF is created from the order's stored snapshot, while the shop master data (company address, bank account) and the logo are read as they are now. The old file is replaced and the hash value is updated.