# Custom Checkout Fields: Dokumentation

> Überblick DataFirefly Custom Checkout Fields fügt dem Bestellprozess und dem Registrierungsformular von PrestaShop 8 und 9 Zusatzfelder hinzu: Bestellnummer, Wunschliefertermin, SIRET, Branche, Anhang oder jedes andere Feld, das Sie anlegen.…

- Seite: <https://www.datafirefly.com/de/documentation/dfcheckoutfields/>
- Sprache: de
- Aktualisiert am: 2026-09-30
- Weitere Sprachen: [fr](https://www.datafirefly.com/documentation/dfcheckoutfields/index.md), [en](https://www.datafirefly.com/en/documentation/dfcheckoutfields/index.md), [es](https://www.datafirefly.com/es/documentation/dfcheckoutfields/index.md), [it](https://www.datafirefly.com/it/documentation/dfcheckoutfields/index.md), [pl](https://www.datafirefly.com/pl/documentation/dfcheckoutfields/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfcheckoutfields/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfcheckoutfields/index.md)
- Index: <https://www.datafirefly.com/de/documentation/llms.txt>

## Überblick

DataFirefly Custom Checkout Fields fügt dem Bestellprozess und dem Registrierungsformular von PrestaShop 8 und 9 Zusatzfelder hinzu: Bestellnummer, Wunschliefertermin, SIRET, Branche, Anhang oder jedes andere Feld, das Sie anlegen. Die Werte werden vor dem Abschluss der Bestellung geprüft und erscheinen danach auf der Bestellseite, der PDF-Rechnung, dem Lieferschein, in E-Mails, den Back-Office-Listen, CSV-Exporten und im Webservice.

## Installation

1. Öffnen Sie im Back-Office Module > Modulverwaltung und klicken Sie auf Modul hochladen.
2. Wählen Sie die Datei dfcheckoutfields.zip.
3. Die Installation legt drei Tabellen, den geschützten Ordner upload/dfcheckoutfields, die Menüs Bestellungen > Zusatzfelder und Bestellungen > Zusatzfelder exportieren sowie fünf vorbereitete Felder an.
4. Klicken Sie auf Konfigurieren, um die allgemeinen Optionen einzustellen.

Für ein Update laden Sie die neue ZIP-Datei über die alte: Die Update-Skripte ergänzen neue Spalten, ohne Ihre Felder oder gespeicherten Werte zu verändern.

## Bei der Installation angelegte Felder

- **Bestellnummer (Ihre Referenz)** (po_number): Text bis 50 Zeichen, an der Bestellung gespeichert, auf Rechnung, Lieferschein und als Spalte der Bestellliste.
- **Gewünschtes Lieferdatum** (desired_date): frühestens heute + 2 Tage, nur Werktage.
- **SIRET-Nummer** (siret): per Luhn-Schlüssel geprüft, im Kundenkonto gespeichert, bei Registrierung und Kasse abgefragt, auf Kunden aus Frankreich beschränkt.
- **Branche** (sector): Liste mit acht Branchen, im Kundenkonto gespeichert, bei der Registrierung abgefragt.
- **Anhang** (attachment): PDF, Bilder und Office-Dokumente, max. 8 MB.

Keines dieser Felder ist standardmäßig Pflicht. Passen Sie sie an, deaktivieren oder löschen Sie sie nach Bedarf.

## Allgemeine Einstellungen

Module > Modulverwaltung > Zusatzfelder für Bestellung und Registrierung > Konfigurieren.

- **Position des Blocks im Bestellprozess**: Zahlungsschritt über den Zahlungsarten (Standard) oder Versandschritt unter den Versandarten. Warenkörbe nur mit virtuellen Produkten nutzen immer den Zahlungsschritt.
- **Titel des Blocks**: an der Kasse, auf den Bestellseiten, in PDFs und E-Mails, pro Sprache.
- **Position auf der PDF-Rechnung**: Kopfbereich unter der Rechnungsnummer oder unten auf der Rechnung. Siehe Rechnung und Lieferschein.
- **Private Notiz, wenn ein Pflichtfeld fehlt**: ergänzt die private Notiz der Bestellung um die fehlenden Felder, wenn ein Zahlungsmodul die Prüfung an der Kasse umgeht.
- **SIRET-Felder in die native SIRET des Kunden kopieren**: hält das SIRET-Feld des Kundendatensatzes, das der B2B-Modus nutzt, aktuell.

## Feld anlegen oder bearbeiten

Bestellungen > Zusatzfelder, dann Feld hinzufügen oder das Stiftsymbol einer Zeile. Das Formular zeigt nur die Optionen, die zum gewählten Typ und Speicherort passen.

### Feld

- **Bezeichnung**, **Platzhalter** und **Hilfetext**: pro Sprache. Eine leere Sprache übernimmt die Bezeichnung der Standardsprache.
- **Code**: technischer Bezeichner aus Kleinbuchstaben, Ziffern und Unterstrichen. Dient auch als E-Mail-Variable {dfcf_CODE} und im Webservice.
- **Typ**: Text, mehrzeiliger Text, Zahl, E-Mail, Datum, Auswahlliste, Kontrollkästchen, SIRET oder Datei.
- **Gespeichert in**: Bestellung (ein Wert pro Bestellung) oder Kundenkonto (Wert im Kundendatensatz, an der Kasse vorausgefüllt und in jede Bestellung kopiert).
- **Listenoptionen**: eine Option pro Zeile im Format Schlüssel|Bezeichnung, zum Beispiel `industry|Industrie`. Verwenden Sie in allen Sprachen dieselben Schlüssel.

### Wo und wann

- **Bei der Registrierung anzeigen** und **Pflichtfeld bei der Registrierung**: nur Kundenkontofelder, ohne Dateityp. Sie erscheinen auch im Formular Persönliche Daten des Kundenkontos.
- **An der Kasse anzeigen** und **Pflichtfeld an der Kasse**.
- **Nur anzeigen, wenn**: siehe Bedingte Anzeige.
- **Länder**: Land der Rechnungsadresse an der Kasse, des Besuchers bei der Registrierung. Leer für alle Länder.
- **Kundengruppen**: alles deaktiviert für alle Gruppen.

### Validierung

- **Maximale Länge**: 0 für den Standard (255 Zeichen, 2000 bei mehrzeiligem Text).
- **Validierungsmuster**: regulärer Ausdruck ohne Begrenzer, zum Beispiel `^[A-Z]{2}[0-9]{6}$`.
- **Mindestvorlauf** und **maximaler Zeitraum** in Tagen für ein an der Bestellung gespeichertes Datum.
- **Nur Werktage**: lehnt Samstag und Sonntag ab.
- **Schließtage**: einer pro Zeile, `2026-12-24` für einen Tag, `2026-08-01:2026-08-21` für einen Zeitraum, `12-25` für jedes Jahr.
- **Erlaubte Dateiendungen** und **maximale Dateigröße** für eine Datei. Skripte und ausführbare Dateien werden immer abgelehnt.

### Dokumente und Exporte

Dem Kunden anzeigen (Bestätigung, Kundenkonto, Kunden-E-Mails), auf der PDF-Rechnung, auf dem Lieferschein, als filterbare Spalte der Back-Office-Listen, in CSV-Exporten.

### Feldliste

Die Symbole der Liste schalten eine Einstellung mit einem Klick um. Ziehen Sie Zeilen, um die Reihenfolge zu ändern. Die Aktion Duplizieren legt eine deaktivierte Kopie mit dem Code `code_copy` an. Ein Feld mit Werten in Bestellungen kann nicht gelöscht werden: Deaktivieren Sie es, um die Historie zu erhalten.

## Bedingte Anzeige

Beispiel: die SIRET nur Unternehmen anzeigen.

1. Legen Sie ein Kontrollkästchen im Kundenkonto an, Code `is_company`, Bezeichnung Ich bin ein Unternehmen.
2. Bearbeiten Sie das Feld SIRET, Abschnitt Wo und wann, und wählen Sie Nur anzeigen, wenn: Ich bin ein Unternehmen. Lassen Sie „einen dieser Werte hat“ leer: Bei einem Kontrollkästchen bedeutet das angehakt.

Bei einer Auswahlliste geben Sie die erwarteten Schlüssel durch Kommas getrennt an, zum Beispiel `health,public`. Bedingungen lassen sich verketten: Ist das übergeordnete Feld ausgeblendet, ist es das abhängige auch. Ein ausgeblendetes Feld ist nie Pflicht und sein Wert wird nicht gespeichert. Das übergeordnete Feld muss an derselben Stelle angezeigt werden (Registrierung oder Kasse) oder im Kundenkonto bereits ausgefüllt sein.

## Kundenseite

### An der Kasse

Der Block erscheint im gewählten Schritt. Jeder Wert wird während der Eingabe gespeichert. Solange ein Pflichtfeld leer oder ungültig ist, ist der Klick auf Bestellen (oder Weiter im Versandschritt) gesperrt, der Hinweis erscheint unter dem Feld und die Seite scrollt dorthin. Der Anhang wird per Drag-and-drop oder Klick mit Fortschrittsbalken gesendet. Der Kunde kann ihn entfernen und einen anderen senden.

### Bei der Registrierung und unter Persönliche Daten

Kundenkontofelder mit Bei der Registrierung anzeigen werden dem nativen Registrierungsformular, dem Gastformular an der Kasse und dem Formular Persönliche Daten hinzugefügt. Fehler werden wie bei den PrestaShop-Feldern angezeigt.

### Nach der Bestellung

Werte mit Dem Kunden anzeigen erscheinen auf der Bestätigungsseite und in den Bestelldetails des Kundenkontos. Der Kunde, dem die Bestellung gehört, kann dort den Anhang herunterladen.

## Rechnung und Lieferschein

**Unten auf der Rechnung**: Das Modul nutzt den Hook displayPDFInvoice und druckt eine Tabelle nach den Summen. Es wird keine Datei geändert.

**Kopfbereich, unter der Rechnungsnummer**: PrestaShop hat dort keinen Hook. Beim Speichern dieser Einstellung fügt das Modul am Ende von `themes/IHR_THEME/pdf/invoice.summary-tab.tpl` einen durch `{* dfcf:start *}` und `{* dfcf:end *}` abgegrenzten Block ein. Fehlt die Datei, wird sie aus der PrestaShop-Vorlage angelegt. Existiert sie bereits, ergänzt das Modul sie und legt eine Kopie `.dfcf-backup` an. Zurück auf Unten auf der Rechnung oder die Deinstallation entfernt den Block. Ist die Datei nicht beschreibbar, nennt eine Meldung ihren Pfad.

Mit DataFirefly Invoice Editor, der die Darstellung der Rechnung ersetzt, verwenden Sie Unten auf der Rechnung: Der Editor übernimmt Modulinhalte an der von Ihnen gewählten Stelle.

Der Lieferschein nutzt den Hook displayPDFDeliverySlip, Feld für Feld.

## E-Mails

In E-Mails mit der Bestell-ID, darunter order_conf und new_order, stehen zwei Arten von Variablen zur Verfügung:

- `{dfcf_fields}`: alle Werte in einer Tabelle. In order_conf nur Felder mit Dem Kunden anzeigen, in new_order für den Händler alle Felder.
- `{dfcf_CODE}`: ein einzelner Wert, zum Beispiel `{dfcf_po_number}` oder `{dfcf_desired_date}`.

Fügen Sie sie unter Design > E-Mail-Theme oder in den Mail-Dateien Ihres Themes ein.

## Back-Office

- **Bestellseite**: Karte Zusatzfelder mit allen Werten. Mit Bearbeiten korrigieren Sie einen Wert oder ersetzen den Anhang.
- **Kundenseite**: Karte mit den Kundenkontofeldern, auf dieselbe Weise bearbeitbar.
- **Listen**: Jedes als filterbare Spalte markierte Feld erscheint in der Bestellliste mit Textfilter. Kundenkontofelder erscheinen zusätzlich in der Kundenliste.

## CSV-Export

Bestellungen > Zusatzfelder exportieren. Wählen Sie Bestellungen oder Kunden, den Zeitraum, die Bestellstatus (alles deaktiviert für alle), das Trennzeichen und ob nur Zeilen mit mindestens einem Wert exportiert werden. Die Datei ist UTF-8 mit BOM und öffnet sich direkt in Excel. Bestellungen werden mit Referenz, Datum, Status, Kunde, Netto- und Bruttosumme und Währung exportiert, gefolgt von den Feldern mit In CSV-Exporte aufnehmen.

## Webservice

1. Erweiterte Einstellungen > Webservice: Webservice aktivieren und einen Schlüssel anlegen oder bearbeiten.
2. GET für die Ressource dfcf_values ankreuzen.
3. `/api/dfcf_values?filter[id_order]=[123]&display=full` aufrufen.

Jeder Wert wird mit id_dfcf_field, id_order, id_customer, id_cart, value, value_display, field_code, field_label und has_file geliefert. Werte des Kundenprofils haben id_order und id_cart gleich 0.

## Anhänge und Sicherheit

Jede Datei wird nach Endung (Liste des Feldes) und nach tatsächlichem Inhalt geprüft: Ein in .pdf umbenanntes Skript wird abgelehnt. Sie wird in upload/dfcheckoutfields mit zufälligem Namen und ohne Endung gespeichert, in einem Ordner, dessen Direktzugriff eine .htaccess-Datei sperrt. Unter Nginx ergänzen Sie die Regel `location ^~ /upload/dfcheckoutfields/ { deny all; }`. Downloads laufen immer über das Modul, das prüft, ob der Besucher der Kunde der Bestellung oder ein Mitarbeiter ist.

## DSGVO

Im Kundenkonto gespeicherte Werte werden mit dem Kunden gelöscht. Das Modul beantwortet Export- und Löschanfragen des offiziellen DSGVO-Moduls von PrestaShop. In Bestellungen kopierte Werte bleiben mit der Bestellung erhalten.

## Fehlerbehebung

### Der Block erscheint nicht an der Kasse

Prüfen Sie, ob das Feld aktiv und mit An der Kasse anzeigen markiert ist und ob Gruppe und Land des Kunden zu seinen Einschränkungen passen. Bei Wahl des Versandschritts prüfen Sie, ob Ihr Theme den Hook displayAfterCarrier aufruft.

### Die Schaltfläche Bestellen wird nicht gesperrt

Das Modul erkennt die Schaltfläche der Themes Classic und Hummingbird. Ein Theme, das sie durch ein anderes Element ersetzt, oder eine Express-Zahlung von der Produktseite sind nicht abgedeckt: Aktivieren Sie die private Notiz, um über unvollständige Bestellungen informiert zu werden.

### Die Felder erscheinen nicht im Rechnungskopf

Prüfen Sie, ob die Theme-Datei pdf/invoice.summary-tab.tpl beschreibbar ist, speichern Sie die Einstellungen erneut und leeren Sie den Cache unter Erweiterte Einstellungen > Leistung.

### Eine E-Mail-Variable erscheint unverändert

Sie wird nur in E-Mails mit Bestell-ID gefüllt. Prüfen Sie auch, ob der Code genau dem Code des Feldes entspricht.
