Custom Invoice Numbering — Dokumentation
Übernehmen Sie die Kontrolle über die Nummerierung Ihrer Rechnungen, Lieferscheine und Gutschriften mit einem tagbasierten Format-Builder. Legen Sie Ihre eigene Dokumentabkürzung fest, verwenden Sie Tags für Jahr/Monat/Tag, wählen Sie Zähler mit führenden Nullen und bestimmen Sie, ob Zähler nie, jährlich, monatlich oder täglich zurückgesetzt werden. Bestehende Dokumentnummern werden nicht überschrieben; das Modul wendet Ihr Format auf neue Dokumente an, die nach der Konfiguration erstellt werden.
Invoice Number
Die Standard-Rechnungsnummerierung von PrestaShop ist eine einfache numerische Reihenfolge. Wenn Ihre Buchhaltung Nummern wie INV/2026/000001, DN/2026/0001 oder CN/2026/0001 benötigt, können Sie mit diesem Modul das Format für Rechnungen, Lieferscheine und Gutschriften separat definieren.
Das Modul führt ein Protokoll der generierten Nummern, speichert das für jedes Dokument verwendete Muster und verhindert, dass dieselbe formatierte Nummer für denselben Dokumenttyp erneut verwendet wird.
Compatibility
Kompatibel mit PrestaShop 1.6 bis 9.0 (latest) und PHP 7.1+. Wir unterstützen auch kommende PrestaShop-Versionen weiterhin.
How It Works
Sie erstellen jede Dokumentnummer aus Tags. Wenn ein Dokument erstellt wird, ersetzt das Modul die Tags durch echte Werte, erhöht den passenden Zähler und speichert das generierte Ergebnis in seinem Protokoll.
Standardformate nach der Installation:
invoice_format = {DOC_TYPE}/{YYYY}/{NNNNNN}
delivery_format = {DOC_TYPE}/{YYYY}/{NNNN}
credit_slip_format = {DOC_TYPE}/{YYYY}/{NNNN}
invoice_doc_type_abbrev = INV
delivery_doc_type_abbrev = DN
credit_slip_doc_type_abbrev = CN
invoice_reset_mode = yearly
delivery_reset_mode = yearly
credit_slip_reset_mode = yearly
Diese Standardwerte erzeugen Beispiele wie:
INV/2026/000001
DN/2026/0001
CN/2026/0001
Installation
- Gehen Sie in Ihrem Back Office zu Modules → Module Manager
- Klicken Sie auf Upload a module und wählen Sie die ZIP-Datei aus
- Klicken Sie nach der Installation auf Configure
- Öffnen Sie Improve → Invoice Numbering
Configuration
Das Modul fügt diese Bereiche im Back Office hinzu:
- Dashboard — aktueller Status, Zähler, zuletzt generierte Nummern
- Invoice Format — Muster und Zählereinstellungen für Rechnungen
- Delivery Format — Muster und Zählereinstellungen für Lieferscheine
- Credit Slip Format — Muster und Zählereinstellungen für Gutschriften
- Generated Numbers — schreibgeschütztes Prüfprotokoll
- Settings — benutzerdefinierte Nummerierung aktivieren oder deaktivieren und Override-Status prüfen
Format Pattern
Verwenden Sie ein Muster aus statischem Text und Tags:
{DOC_TYPE}/{YYYY}/{NNNNNN}
Beispiele:
INV/{YYYY}/{NNNNNN}
INV-{YY}-{MM}-{NNNN}
{DOC_TYPE}/{YYYY}/{MM}/{NNNNN}
{DOC_TYPE}-{ORDER_ID}-{NNNN}
Available Tags
Datums-Tags:
{YYYY} Full year, example: 2026
{YY} 2-digit year, example: 26
{MM} Month, example: 02
{DD} Day, example: 15
{QUARTER} Quarter, example: Q1
{WEEK} ISO week, example: 09
Zähler-Tags:
{N} Counter with no padding
{NN} 2-digit counter
{NNN} 3-digit counter
{NNNN} 4-digit counter
{NNNNN} 5-digit counter
{NNNNNN} 6-digit counter
{NNNNNNN} 7-digit counter
{NNNNNNNN} 8-digit counter
Globale Zähler-Aliasse werden ebenfalls unterstützt:
{GLOBAL_N}
{GLOBAL_NNNN}
{GLOBAL_NNNNNN}
Kontext-Tags:
{DOC_TYPE} Document abbreviation, such as INV, DN, CN
{ORDER_ID} Order ID
{ORDER_REF} PrestaShop order reference
{INVOICE_ID} Order invoice ID
{SHOP_ID} Shop ID
{SHOP_NAME} Shop name
{CART_ID} Cart ID
{PAYMENT} Payment method
{COUNTRY} Invoice address country ISO code
{CUSTOMER_ID} Customer ID
{CUSTOMER_EMAIL} Customer email prefix
{CUSTOMER_REF} Stable random customer reference
Produkt- und Zufalls-Tags:
{PRODUCT_ID} Dominant product ID from the cart
{PRODUCT_REF} Dominant product reference from the cart
{RAND4} Random 4 digits
{RAND2} Random 2 letters
{RAND6} Random 6 letters
{RAND7} Random 7 letters
{RAND8} Random 8 letters
{RAND9} Random 9 letters
Vom Formatter unterstützte Aliasse in Kleinbuchstaben:
{year} Same as {YYYY}
{month} Same as {MM}
{day} Same as {DD}
{number} Same as {N}
{counter} Same as {N}
{reference} Same as {CUSTOMER_REF}
{customer_reference} Same as {CUSTOMER_REF}
{order_reference} Same as {ORDER_REF}
{invoice_number} Same as {N}
Wichtig: Legen Sie die Auffüllung über das passende N-Tag fest. Verwenden Sie zum Beispiel {NNNNN} für fünf Stellen. Das Format {number:5} ist keine unterstützte Syntax.
Counter Reset Options
Jeder Dokumenttyp hat eine eigene Zurücksetzen-Einstellung:
never
yearly
monthly
daily
Validierungsregeln schützen Sie vor widersprüchlichen Mustern:
yearly requires {YYYY} or {YY}
monthly requires a year tag and {MM}
daily requires a year tag, {MM}, and {DD}
Gute Beispiele:
Yearly: {DOC_TYPE}/{YYYY}/{NNNNNN}
Monthly: {DOC_TYPE}/{YYYY}/{MM}/{NNNN}
Daily: {DOC_TYPE}/{YYYY}/{MM}/{DD}/{NNN}
Starting Number
Jeder Dokumenttyp hat ein Feld Set Next Number:
invoice_start_number
delivery_start_number
credit_slip_start_number
Verwenden Sie es, wenn das nächste generierte Dokument eine bestehende Buchhaltungssequenz fortsetzen soll. Der Wert muss eine positive ganze Zahl sein und wird einmalig verbraucht. Nachdem die nächste Nummer generiert wurde, leert das Modul die Startnummer-Einstellung und zählt von dort weiter.
Beispiel:
Set Next Number: 1000
Pattern: {DOC_TYPE}/{YYYY}/{NNNNNN}
Next invoice: INV/2026/001000
Following invoice: INV/2026/001001
Multi-Shop Behavior
Zähler werden pro Shop-ID gespeichert. In einer Multi-Shop-Installation hat jeder Shop eigene Zählerzeilen für Rechnungen, Lieferscheine und Gutschriften.
Die Zählertabelle verwendet intern diese Struktur:
doc_type
id_shop
scope_type
scope_id
current_value
period_key
reset_mode
Für die normale Nummerierung von Rechnungen, Lieferscheinen und Gutschriften verwendet das Modul globale Zähler pro Dokumenttyp und Shop.
Generated Numbers Log
Jede generierte Dokumentnummer wird mit Dokumenttyp, Bestellung, Zählerwert, Muster, formatierter Nummer und Datum gespeichert.
Die Protokolltabelle erfasst:
doc_type
id_order
id_order_invoice
id_order_slip
id_shop
counter_value
format_pattern
formatted_number
date_add
Das ist hilfreich, wenn Sie prüfen müssen, welches Muster aktiv war, als eine bestimmte Rechnung, ein Lieferschein oder eine Gutschrift ausgestellt wurde.
PDF and Document Display
Rechnungen werden über den PrestaShop-Hook zur Formatierung von Rechnungsnummern formatiert. Lieferscheine und Gutschriften verwenden Modul-Overrides, damit ihre PDF-Titel die formatierte Nummer anzeigen können.
Das Modul registriert diese Hooks:
actionSetInvoice
actionInvoiceNumberFormatted
actionObjectOrderSlipAddAfter
actionFrontControllerInitAfter
actionAdminControllerInitAfter
Außerdem prüft es diese Override-Dateien im Einstellungsbereich:
override/classes/order/Order.php
override/classes/pdf/HTMLTemplateDeliverySlip.php
override/classes/pdf/HTMLTemplateOrderSlip.php
PDF-Dateinamen von Rechnungen basieren auf der formatierten Rechnungsnummer und werden für das Dateisystem bereinigt. Zum Beispiel:
INV/2026/000001
wird zu:
INV-2026-000001.pdf
Tips
- Stimmen Sie das Rechnungsformat mit Ihrer Buchhaltung ab, bevor Sie live gehen.
- Verwenden Sie
{YYYY}in Formaten mit jährlichem Reset, damit das Jahr in der Nummer sichtbar ist. - Verwenden Sie
{YYYY}und{MM}in Formaten mit monatlichem Reset. - Verwenden Sie aufgefüllte Zähler wie
{NNNN}oder{NNNNNN}, damit exportierte Listen sauber sortiert werden. - Halten Sie die Abkürzungen für Rechnung, Lieferschein und Gutschrift eindeutig, zum Beispiel
INV,DNundCN. - Setzen Sie Set Next Number, bevor Sie das erste echte Dokument ausstellen, wenn Sie von einem anderen System migrieren.
- Prüfen Sie Generated Numbers nach Ihrer ersten Testbestellung, um sicherzustellen, dass Muster, Zähler und formatierte Nummer genau Ihren Erwartungen entsprechen.
- Wenn die Formatierung von Lieferscheinen oder Gutschriften in PDFs nicht erscheint, prüfen Sie den Bereich Override Status in den Moduleinstellungen.
Frequently Asked Questions
Ändert dieses Modul die Nummern auf Rechnungen, die ich bereits ausgestellt habe?
Nein. Bestehende Dokumente behalten ihre bisherigen Nummern. Das Modul generiert formatierte Nummern für neue Dokumente nach der Konfiguration.
Kann der Zähler jedes Jahr automatisch zurückgesetzt werden?
Ja. Setzen Sie den Reset-Modus auf yearly und fügen Sie {YYYY} oder {YY} in das Muster ein.
Kann ich monatlich zurücksetzen?
Ja. Setzen Sie den Reset-Modus auf monthly und verwenden Sie ein Muster, das sowohl Jahr als auch Monat enthält, zum Beispiel:
{DOC_TYPE}/{YYYY}/{MM}/{NNNN}
Kann ich täglich zurücksetzen?
Ja. Setzen Sie den Reset-Modus auf daily und fügen Sie Jahr, Monat und Tag ein:
{DOC_TYPE}/{YYYY}/{MM}/{DD}/{NNN}
Können Rechnungen, Lieferscheine und Gutschriften unterschiedliche Formate verwenden?
Ja. Jeder Dokumenttyp hat sein eigenes Format, seine eigene Abkürzung, seinen eigenen Reset-Modus und seine eigene Einstellung für die nächste Nummer.
Können Lieferscheine und Rechnungen denselben Sequenzzähler verwenden?
Nein. Das Modul hält separate Zähler für invoice, delivery und credit_slip.
Was passiert, wenn die benutzerdefinierte Nummerierung deaktiviert ist?
Wenn die Haupteinstellung enabled ausgeschaltet ist, wird die native Nummerierung von PrestaShop verwendet.
Was passiert, wenn ich ein ungültiges Format eingebe?
Das Modul validiert das Muster vor dem Speichern und vor der Generierung einer Nummer. Ein gültiges Format muss mindestens ein Zähler-Tag wie {N}, {NNNN} oder {NNNNNN} enthalten.