Professioneller PDF-Rechnungsgenerator für OXID eShop 7.x mit automatischem E-Mail-Anhang.
Fügen Sie das private Composer-Repository zur composer.json Ihres Shops hinzu:
{
"repositories": [
{
"type": "composer",
"url": "https://packeton.markus-michalski.net"
}
]
}
Hinweis: Die Zugangsdaten zum Repository werden nach Erwerb einer Lizenz zugestellt. Die Verwaltung der privaten Repositories läuft über Packeton.
composer require mmd/oxid7-pdf-invoice
Bei der Authentifizierungsabfrage geben Sie die Zugangsdaten ein, die Sie mit Ihrer Lizenz erhalten haben.
vendor/bin/oe-console oe:module:activate mmd_pdfinvoice
vendor/bin/oe-console oe:cache:clear
Auf die neueste Version aktualisieren:
composer update mmd/oxid7-pdf-invoice
vendor/bin/oe-console oe:cache:clear
Modul-Konfiguration im OXID Admin unter:
Erweiterungen > Module > PDF-Rechnungen > Einstell.
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Rechnungspräfix | RE- |
Präfix für Rechnungsnummern (z.B. "RE-", "INV-") |
| Jährlicher Reset | Ja | Rechnungszähler am Jahresanfang zurücksetzen |
| Speicherpfad | export/invoices |
Verzeichnis für PDF-Dateien (relativ zum Shop) |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Anhang-Modus | Kunde | Rechnung anhängen an: Keine / Kunde / Betreiber / Beide |
| Auto-Generierung | Ja | Rechnung automatisch bei Bestellbestätigung erstellen |
| Einstellung | Beschreibung |
|---|---|
| Logo-Pfad | Pfad zum Logo (relativ zu out/pictures/). Wenn leer, wird das Shop-Logo verwendet. |
| SEPA Gläubiger-ID | Gläubiger-ID für SEPA-Lastschrift-Rechnungen |
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Debug-Logging | Aus | Detaillierte Logs in source/log/ schreiben |
Zugriff auf die Rechnungsverwaltung im OXID Admin:
Bestellungen verwalten > Bestellung öffnen > Tab "Rechnung"
Das Modul enthält zwei anpassbare Templates:
Pfad: views/twig/pdf/invoice.html.twig
Das Haupt-PDF-Template für Rechnungen enthält:
Um das Template anzupassen, kopieren Sie es in Ihr Theme:
source/Application/views/[IHR_THEME]/twig/modules/mmd_pdfinvoice/pdf/invoice.html.twig
Oder erstellen Sie ein eigenes Modul, das das Template überschreibt.
shop.)| Variable | Beschreibung |
|---|---|
shop.name |
Shop-Name |
shop.company |
Firmenname |
shop.street |
Straße |
shop.zip |
PLZ |
shop.city |
Stadt |
shop.country |
Land |
shop.phone |
Telefon |
shop.fax |
Fax |
shop.email |
|
shop.vatid |
USt-IdNr. |
shop.taxnumber |
Steuernummer |
shop.hrb |
Handelsregisternummer |
shop.court |
Registergericht |
shop.bank_name |
Bankname |
shop.iban |
IBAN |
shop.bic |
BIC |
shop.creditor_id |
SEPA Gläubiger-ID |
invoice.)| Variable | Beschreibung |
|---|---|
invoice.number |
Rechnungsnummer |
invoice.date |
Rechnungsdatum (formatiert) |
invoice.debit_date |
Einzugsdatum für SEPA |
order.)| Variable | Beschreibung |
|---|---|
order.number |
Bestellnummer |
order.date |
Bestelldatum (formatiert) |
order.currency |
Währung (z.B. "EUR") |
billing.)| Variable | Beschreibung |
|---|---|
billing.company |
Firma |
billing.salutation |
Anrede |
billing.firstname |
Vorname |
billing.lastname |
Nachname |
billing.street |
Straße |
billing.streetnr |
Hausnummer |
billing.addinfo |
Adresszusatz |
billing.zip |
PLZ |
billing.city |
Stadt |
billing.country |
Land |
billing.vatid |
USt-IdNr. des Kunden |
payment.)| Variable | Beschreibung |
|---|---|
payment.name |
Zahlungsart-Name |
payment.type |
Zahlungsart-ID (z.B. oxidpayadvance) |
payment.debit.iban |
IBAN des Kunden (bei Lastschrift) |
payment.debit.owner |
Kontoinhaber (bei Lastschrift) |
payment.mandate_ref |
Mandatsreferenz (bei Lastschrift) |
items)Array mit allen Bestellpositionen:
| Variable | Beschreibung |
|---|---|
item.artnum |
Artikelnummer |
item.title |
Artikelbezeichnung |
item.selvariant |
Ausgewählte Variante |
item.amount |
Menge |
item.nprice |
Einzelpreis (netto) |
item.netprice |
Gesamtpreis Position (netto) |
item.vatpercent |
MwSt.-Satz |
totals.)| Variable | Beschreibung |
|---|---|
totals.netsum |
Nettosumme |
totals.totalsum |
Gesamtsumme (brutto) |
totals.delcost |
Versandkosten |
totals.paycost |
Zahlungsartkosten |
totals.discount |
Rabatt |
totals.vat_breakdown |
Array mit MwSt.-Aufschlüsselung |
Das Template zeigt automatisch unterschiedliche Zahlungsinformationen basierend auf der Zahlungsart:
oxidpayadvance)Bitte überweisen Sie den Rechnungsbetrag innerhalb von 7 Tagen auf folgendes Konto:
[Bankdaten + Verwendungszweck]
oxidinvoice)Bitte überweisen Sie den Rechnungsbetrag innerhalb von 14 Tagen auf folgendes Konto:
[Bankdaten + Verwendungszweck]
oxiddebitnote)Der Rechnungsbetrag wird am [Datum] per SEPA-Lastschrift eingezogen.
Gläubiger-ID: [ID]
Mandatsreferenz: [Referenz]
Um eine eigene Zahlungsart zu unterstützen, erweitern Sie das Template:
{% elseif payment.type == 'ihre_zahlungsart_id' %}
<div class="payment-info">
<h4>Zahlungsinformationen</h4>
<p>Ihre spezifischen Zahlungsinformationen hier...</p>
</div>
Wichtig: Die Zahlungsart-ID (payment.type) entspricht der OXID-Payment-ID aus oxpayments.OXID.
Bei der Rechnungserstellung wird ein Snapshot aller relevanten Daten gespeichert:
Vorteil: Auch wenn sich Shop-Daten (z.B. Adresse, Bankverbindung) oder Artikeldaten später ändern, bleibt die Rechnung konsistent und kann jederzeit identisch regeneriert werden.
Rechnungsnummern werden im Format [Präfix][Jahr][Zähler] generiert:
RE-2025-00001RE-)Wenn aktiviert, wird der Zähler am 1. Januar automatisch zurückgesetzt:
RE-2025-00001, RE-2025-00002, ...RE-2026-00001, RE-2026-00002, ...Fortlaufende Nummerierung über Jahre hinweg:
RE-2025-00001, ..., RE-2025-00500RE-2026-00501, RE-2026-00502, ...Bei aktivierter Auto-Generierung wird die Rechnung automatisch an Bestellbestätigungs-E-Mails angehängt:
Über das Admin-Dashboard kann jederzeit eine separate Rechnungs-E-Mail versendet werden. Diese enthält:
Das Modul erstellt folgende Tabellen:
Speichert Rechnungsdaten:
| Feld | Beschreibung |
|---|---|
OXID |
Eindeutige ID |
OXORDERID |
Referenz zur Bestellung |
OXSHOPID |
Shop-ID |
INVOICENUMBER |
Rechnungsnummer |
INVOICEDATE |
Rechnungsdatum |
DATASNAPSHOT |
JSON-Snapshot aller Daten |
PDFGENERATED |
PDF erstellt (Ja/Nein) |
SENTTOCUSTOMER |
An Kunden gesendet |
SENTATCUSTOMER |
Zeitstempel Kundenversand |
SENTTOOWNER |
An Betreiber gesendet |
SENTATOWNER |
Zeitstempel Betreiberversand |
OXTIMESTAMP |
Erstellungszeitpunkt |
Verwaltet Rechnungszähler:
| Feld | Beschreibung |
|---|---|
OXSHOPID |
Shop-ID |
YEAR |
Jahr |
COUNTER |
Aktueller Zählerstand |
source/log/ prüfenout/pictures/ seinShop-Stammdaten im OXID Admin prüfen:
Stammdaten > Grundeinstellungen > Stammdaten
Die Bankverbindung wird aus den Shop-Einstellungen gelesen.
Kommerzielle Lizenz - Einzelinstallations-Lizenz:
Entwicklungs- und Staging-Umgebungen inklusive. 12 Monate kostenlose Updates.
Siehe LICENSE-Datei für vollständige Bedingungen.
Bei Fragen und Support:
Markus Michalski
E-Mail: support@markus-michalski.net