Please note that this documentation is for the most recent version of this extension. It may not be relevant for older versions. Related documentation can be found in the documentation directory of the extension.
Automatic invoice generation
With automatic invoice generation in your TYPO3 shop, you save valuable time and automate your e-commerce processes from order placement to the finished PDF document. Whether B2B or B2C, domestic in the DACH region (Germany, Austria, Switzerland) or international in EU and third-country trade: your shop creates legally compliant, customizable invoices fully automatically.
Key benefits and features at a glance:
- Continuous invoice numbers: Orders receive consecutive and transparent numbering per container or shop instance.
- Maximum flexibility through services: The invoice number is generated via a dedicated service. Using Dependency Injection (DI), you can seamlessly replace this service if needed and adapt it to company-specific number ranges or ERP requirements.
- Custom invoice design with Fluid: You create the layout of your PDF invoice flexibly using TYPO3 Fluid (
EXT:fluid_fpdf) and configure it precisely via TypoScript for individual pages, tenants, or brand presences. - Future-proof e-invoices (ZUGFeRD & Factur-X): Fulfill all legal requirements for electronic invoice formats in B2B and B2G. You can find more details and examples in the Fluid-FPDF documentation.
Displaying VAT/sales tax
| Destination Country | B2B (Business) | B2C (Private) |
|---|---|---|
| Domestic | Display VAT | Display VAT |
| EU | No VAT to display | Display VAT |
| Third country | No VAT to display | No VAT to display |
| VAT union | Display VAT | Display VAT |
Notes on VAT/sales tax
Depending on the destination country and customer type (B2B / B2C) or VAT union, corresponding tax notices can be displayed on the invoice.
| Destination Country / Case | B2B (Business) | B2C (Private) |
|---|---|---|
| Domestic | Es handelt sich um eine Inland-Lieferung an ein Unternehmen. Ihre USt.-ID: %1$s |
Es handelt sich um eine Inland-Lieferung an eine Privatperson. |
| EU | Es handelt sich um eine steuerbefreite innergemeinschaftliche Lieferung gem. §4 Nr. 1b UstG. Unsere USt.-ID: DE 123 456 789 Ihre USt.-ID: %1$s |
Es handelt sich um eine innergemeinschaftliche Lieferung an eine Privatperson. |
| Third country | Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG. | Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG. |
VAT union
For country combinations with a VAT union (e.g. Switzerland/Liechtenstein, France/Monaco, United Kingdom/Isle of Man), specific notice texts apply:
| Combination | Default notice text |
|---|---|
| CH_LI / LI_CH | Es handelt sich um eine Inlandslieferung innerhalb der Schweizer Mehrwertsteuerunion. Die Schweizer Mehrwertsteuer wird ausgewiesen. |
| FR_MC / MC_FR | Es handelt sich um eine Inlandslieferung, da Monaco umsatzsteuerlich zu Frankreich gehört. Die französische Mehrwertsteuer wird ausgewiesen. |
| GB_IM / IM_GB | Es handelt sich um eine Inlandslieferung innerhalb des gemeinsamen Mehrwertsteuergebiets. Die britische Mehrwertsteuer wird ausgewiesen. |
Configuration in TypoScript Setup
The notice texts are configured in TypoScript Setup under plugin.tx_shop.settings.basketOrder.vat. The placeholder %1$s is replaced with the VAT ID provided by the customer:
plugin.tx_shop.settings.basketOrder.vat {
b2b {
inland {
notice = Es handelt sich um eine Inland-Lieferung an ein Unternehmen.<br />Ihre USt.-ID: %1$s
}
europeanUnion {
# Parameter %1$s ist die USt-IdNr. des Kunden
notice = Es handelt sich um eine steuerbefreite innergemeinschaftliche Lieferung gem. §4 Nr. 1b UstG.<br />Unsere USt.-ID: DE 123 456 789<br />Ihre USt.-ID: %1$s
}
thirdCountry {
notice = Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG.
}
}
b2c {
inland {
notice = Es handelt sich um eine Inland-Lieferung an eine Privatperson.
}
europeanUnion {
notice = Es handelt sich um eine innergemeinschaftliche Lieferung an eine Privatperson.
}
thirdCountry {
notice = Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG.
}
}
vatUnion {
CH_LI.notice = Es handelt sich um eine Inlandslieferung innerhalb der Schweizer Mehrwertsteuerunion. Die Schweizer Mehrwertsteuer wird ausgewiesen.
LI_CH.notice = Es handelt sich um eine Inlandslieferung innerhalb der Schweizer Mehrwertsteuerunion. Die Schweizer Mehrwertsteuer wird ausgewiesen.
FR_MC.notice = Es handelt sich um eine Inlandslieferung, da Monaco umsatzsteuerlich zu Frankreich gehört. Die französische Mehrwertsteuer wird ausgewiesen.
MC_FR.notice = Es handelt sich um eine Inlandslieferung, da Monaco umsatzsteuerlich zu Frankreich gehört. Die französische Mehrwertsteuer wird ausgewiesen.
GB_IM.notice = Es handelt sich um eine Inlandslieferung innerhalb des gemeinsamen Mehrwertsteuergebiets. Die britische Mehrwertsteuer wird ausgewiesen.
IM_GB.notice = Es handelt sich um eine Inlandslieferung innerhalb des gemeinsamen Mehrwertsteuergebiets. Die britische Mehrwertsteuer wird ausgewiesen.
}
}
Date in invoice numbers
| Date Field | Intern | Description |
|---|---|---|
| Invoice Date | basketOrder.orderedDate |
Date of invoice document (before version 6.1.0) |
| Invoice Date | basketOrder.invoiceDate |
Date of invoice document (from version 6.1.0) |
| Credit Note Date | basketOrder.creditedDate |
Date of credit/return document |
| Cancellation Date | basketOrder.refundedDate |
Date of cancellation document |
Persisting Invoices Locally
You can save generated invoices to the local file system at the time the order is placed, ensuring you have a copy should the order record be modified later. This feature must be enabled for the payment method using storeOrderPdfInFolder. The storeOrderPdfInFolderName setting allows you to specify the file storage location—including the directory—where the invoice PDF will be saved.
Attention:
If the PDF directory is located within your web root, you must ensure that unauthorized parties cannot access it. Although the shop extension places an
.htaccessfile with appropriate restrictions in the directory, this mechanism does not work with all web server configurations!
E-Invoice settings
For generating e-invoices (ZUGFeRD / Factur-X), the following settings are available. A complete list of all TypoScript constants including types and default values can be found on the TypoScript constant settings page.
| Label | Constant | Description |
|---|---|---|
| Seller name | themes.configuration.extension.shop.eInvoice.seller.name |
The legal name of the seller (BT-27). |
| Seller company | themes.configuration.extension.shop.eInvoice.seller.company |
Optional company addition (e.g. department). |
| Seller street | themes.configuration.extension.shop.eInvoice.seller.street |
Street and house number of the seller (BT-35). |
| Seller city | themes.configuration.extension.shop.eInvoice.seller.city |
City of the seller (BT-37). |
| Seller postal code | themes.configuration.extension.shop.eInvoice.seller.postalCode |
Postal code of the seller (BT-38). |
| Seller country | themes.configuration.extension.shop.eInvoice.seller.country |
Two-letter ISO country code of the seller (BT-40), e.g. "DE". |
| Seller email | themes.configuration.extension.shop.eInvoice.seller.email |
Email address of the seller (BT-43 / BT-34 fallback). |
| Seller phone | themes.configuration.extension.shop.eInvoice.seller.phone |
Phone number of the seller contact (BT-42). |
| Seller VAT ID | themes.configuration.extension.shop.eInvoice.seller.vatId |
VAT identifier of the seller, e.g. "DE123456789" (BT-31). At least one of VAT ID or tax number must be set. |
| Seller tax number | themes.configuration.extension.shop.eInvoice.seller.taxNumber |
Tax registration number of the seller, e.g. "123/456/78901" (BT-32). At least one of VAT ID or tax number must be set. |
| Seller contact name | themes.configuration.extension.shop.eInvoice.seller.contactName |
Name of the seller contact person (BT-41). |
| Seller endpoint ID | themes.configuration.extension.shop.eInvoice.seller.endpointId |
Electronic address of the seller, e.g. email address (BT-34). |
| Seller endpoint scheme | themes.configuration.extension.shop.eInvoice.seller.endpointScheme |
Scheme identifier for the electronic address, e.g. "EM" for email (BT-34-1). |
