Bitte beachte, dass sich diese Dokumentation auf die neuste Version dieser Erweiterung bezieht. Wenn eine ältere Version eingesetzt wird, kann diese abweichen. Die jeweils passende Dokumentation befindet sich im Dokumentation-Verzeichnis der Erweiterung.
Automatische Rechnungsgenerierung
Mit der automatischen Rechnungsgenerierung in Deinem TYPO3 Shop sparst Du wertvolle Zeit und automatisierst Deine E-Commerce-Prozesse von der Bestellung bis zum fertigen PDF-Beleg. Egal ob B2B oder B2C, national im DACH-Raum (Deutschland, Österreich, Schweiz) oder international im EU- und Drittland-Handel: Dein Shop erstellt rechtssichere, individuell anpassbare Rechnungen vollautomatisch.
Die wichtigsten Vorteile und Features im Überblick:
- Lückenlose Rechnungsnummern: Bestellungen erhalten je Container bzw. Shop-Instanz eine fortlaufende und transparente Nummerierung.
- Maximale Flexibilität durch Services: Die Rechnungsnummer wird über einen dedizierten Service generiert. Mittels Dependency-Injection (DI) kannst Du diesen Service bei Bedarf nahtlos austauschen und an unternehmenseigene Nummernkreise oder ERP-Vorgaben anpassen.
- Individuelles Rechnungsdesign mit Fluid: Das Layout Deiner PDF-Rechnung erstellst Du flexibel mit TYPO3 Fluid (
EXT:fluid_fpdf) und steuerst es passgenau über TypoScript für einzelne Seiten, Mandanten oder Markenauftritte. - Zukunftssichere E-Rechnungen (ZUGFeRD & Factur-X): Erfülle alle gesetzlichen Anforderungen an elektronische Rechnungsformate im B2B- und B2G-Bereich. Mehr Details und Beispiele findest Du in der Fluid-FPDF Dokumentation.
Ausweisung der Mehrwertsteuer/Umsatzsteuer
| Ziel-Land | B2B (Firma) | B2C (Privat) |
|---|---|---|
| Inland | MwSt. ausweisen | MwSt. ausweisen |
| EU | Keine MwSt. ausweisen | MwSt. ausweisen |
| Drittland | Keine MwSt. ausweisen | Keine MwSt. ausweisen |
| Mehrwertsteuerunion | MwSt. ausweisen | MwSt. ausweisen |
Hinweise zur Mehrwertsteuer/Umsatzsteuer
Je nach Zielland und Kundentyp (B2B / B2C) oder Mehrwertsteuerunion können auf der Rechnung entsprechende Hinweise zur Besteuerung ausgegeben werden.
| Ziel-Land / Fall | B2B (Firma) | B2C (Privat) |
|---|---|---|
| Inland | 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. |
| Drittland | Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG. | Es handelt sich um eine steuerbefreite Ausfuhrlieferung gem. §4 Nr. 1a UstG. |
Mehrwertsteuerunion
Für Länderkombinationen mit Mehrwertsteuerunion (z. B. Schweiz/Liechtenstein, Frankreich/Monaco, Großbritannien/Isle of Man) greifen gesonderte Hinweistexte:
| Kombination | Standard-Hinweistext |
|---|---|
| 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. |
Konfiguration im TypoScript Setup
Die Hinweistexte werden im TypoScript Setup unter plugin.tx_shop.settings.basketOrder.vat konfiguriert. Der Platzhalter %1$s wird dabei durch die vom Kunden angegebene USt-IdNr. ersetzt:
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.
}
}
Datum Rechnungsnummern
| Datumsfeld | Intern | Beschreibung |
|---|---|---|
| Rechnungsdatum | basketOrder.orderedDate |
Datum des Rechnungsbelegs (vor Version 6.1.0) |
| Rechnungsdatum | basketOrder.invoiceDate |
Datum des Rechnungsbelegs (ab Version 6.1.0) |
| Gutschriftsdatum | basketOrder.creditedDate |
Datum des Gutschrift-/Retourenbelegs |
| Stornodatum | basketOrder.refundedDate |
Datum des Stornobelegs |
Rechnungen lokal persistieren
Du kannst die generierten Rechnungen im Moment der Bestellung lokal im Dateisystem ablegen, so dass Du eine Kopie hast falls der Bestelldatensatz noch einmal verändert wird. Diese Funktion muss mit storeOrderPdfInFolder an der Bezahlmethode aktiviert werden. Mit dem Setting storeOrderPdfInFolderName kann dann ein File-Storage inkl. Verzeichnis definiert werden, worin die Rechnungs-PDF abgelegt wird.
Achtung:
Wenn das PDF-Verzeichnis innerhalb Deines Webroots ist muss unbedingt sichergestellt werden, dass dort Fremde keinen Zugriff haben. Die Shop-Erweiterung legt dort zwar immer eine
.htaccessmit entsprechenden Restriktionen ab, diese greift aber nicht bei allen Webserver-Konfigurationen!
E-Rechnung Einstellungen
Für die Generierung von E-Rechnungen (ZUGFeRD / Factur-X) stehen die folgenden Einstellungen zur Verfügung. Eine vollständige Auflistung aller TypoScript-Konstanten inklusive Typen und Standardwerten findest Du auf der Seite TypoScript-Konstanten Einstellungen.
| Label | Konstante | Beschreibung |
|---|---|---|
| Verkäufername | themes.configuration.extension.shop.eInvoice.seller.name |
Der rechtliche Name des Verkäufers (BT-27). |
| Verkäufer Unternehmen | themes.configuration.extension.shop.eInvoice.seller.company |
Optionaler Unternehmenszusatz (z. B. Abteilung). |
| Verkäufer Straße | themes.configuration.extension.shop.eInvoice.seller.street |
Straße und Hausnummer des Verkäufers (BT-35). |
| Verkäufer Stadt | themes.configuration.extension.shop.eInvoice.seller.city |
Stadt des Verkäufers (BT-37). |
| Verkäufer Postleitzahl | themes.configuration.extension.shop.eInvoice.seller.postalCode |
Postleitzahl des Verkäufers (BT-38). |
| Verkäufer Land | themes.configuration.extension.shop.eInvoice.seller.country |
Zweistelliger ISO-Ländercode des Verkäufers (BT-40), z. B. „DE". |
| Verkäufer E-Mail | themes.configuration.extension.shop.eInvoice.seller.email |
E-Mail-Adresse des Verkäufers (BT-43 / BT-34 Fallback). |
| Verkäufer Telefon | themes.configuration.extension.shop.eInvoice.seller.phone |
Telefonnummer des Verkäufer-Ansprechpartners (BT-42). |
| Verkäufer USt-IdNr. | themes.configuration.extension.shop.eInvoice.seller.vatId |
Umsatzsteuer-Identifikationsnummer des Verkäufers, z. B. „DE123456789" (BT-31). Mindestens eine von USt-IdNr. oder Steuernummer muss angegeben sein. |
| Verkäufer Steuernummer | themes.configuration.extension.shop.eInvoice.seller.taxNumber |
Steuernummer des Verkäufers, z. B. „123/456/78901" (BT-32). Mindestens eine von USt-IdNr. oder Steuernummer muss angegeben sein. |
| Verkäufer Ansprechpartner | themes.configuration.extension.shop.eInvoice.seller.contactName |
Name des Ansprechpartners beim Verkäufer (BT-41). |
| Verkäufer Endpunkt-ID | themes.configuration.extension.shop.eInvoice.seller.endpointId |
Elektronische Adresse des Verkäufers, z. B. E-Mail-Adresse (BT-34). |
| Verkäufer Endpunkt-Schema | themes.configuration.extension.shop.eInvoice.seller.endpointScheme |
Schema-Kennung für die elektronische Adresse, z. B. „EM" für E-Mail (BT-34-1). |
