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.

Custom Invoice Numbering — Admin invoice format builder

Compatibility

Kompatibel mit PrestaShop 1.6 bis 9.0 (latest) und PHP 7.1+. Wir unterstützen auch kommende PrestaShop-Versionen weiterhin.

Custom Invoice Numbering — Admin counter dashboard

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
Custom Invoice Numbering — Admin number log

Installation

  1. Gehen Sie in Ihrem Back Office zu Modules → Module Manager
  2. Klicken Sie auf Upload a module und wählen Sie die ZIP-Datei aus
  3. Klicken Sie nach der Installation auf Configure
  4. Öffnen Sie Improve → Invoice Numbering
Custom Invoice Numbering — Admin numbering health

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.

Custom Invoice Numbering — Mprinvoicenumber counter settings

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}
Custom Invoice Numbering — Mprinvoicenumber dashboard counters

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
Custom Invoice Numbering — Mprinvoicenumber generated numbers log

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.

Custom Invoice Numbering — Mprinvoicenumber integrity checks

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.

Custom Invoice Numbering — Mprinvoicenumber invoice format builder

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
Custom Invoice Numbering — Mprinvoicenumber override status

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, DN und CN.
  • 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.

Lade ...
Nach oben