Loading...
Skip navigation
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 .htaccess file 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).
Last change: 2026-08-25
Documentation
TYPO3 Shop Extension

TYPO3 Shop by coding.ms

An extensive shop for TYPO3 for realizing Webshops, Online-Shops or Payment-Subscriptions, comparable with tt_products, Cart or Aimeos. It includes PayPal, PayPal-Checkout, Klarna, Stripe, Bookmarks, UPS-API, invoice generation, a backend module, compare feature, graduated prices, plus product variants, filters, and tax and shipping logic for practical shop operations.

Menu

Contact request

You can contact us at any time

Stop! Playing in the meantime?
Stop! Playing in the meantime?
Stop! Playing in the meantime?

Stop! Playing in the meantime?

Break the highscore

Press Start
Contact request
Screenreader label
Security question
K5X_________56Y______
__S____Z____2_____B4T
WQO___9PW___EAL______
2______6____4_8___R6D
KFN_________L69______