CSV-Export für Bestellungen¶
Das Plugin ermöglicht den flexiblen Export von Shopware 6-Bestellungen als CSV-Datei – wahlweise vollständig oder gefiltert nach Zeitraum, Status, Zahlungsart und mehr. Mithilfe individueller Profile können Felder frei definiert und Exporte auf spezifische Anforderungen zugeschnitten werden.
Highlights
- ✅ Bestellungen als CSV exportieren – flexibel, filterbar, automatisierbar
- 🔁 Vollautomatischer Export via Zeitplan (Scheduled Task / Cronjob)
- ✉️ Versand per E-Mail oder Upload per FTP
- 🧩 Frei definierbare Exportfelder mit Sortierung und Filtern
- 🛠️ CSV-Format vollständig konfigurierbar (Trennzeichen, Datum, Encoding etc.)
- 🗂️ Weitere Exportformate: XLSX, JSON, XML zusätzlich zu CSV (In-App-Kauf)
- 🏢 ERP-Vorlagen für DATEV, JTL-Wawi, Billbee, Xentral & Lexware (In-App-Kauf)
- 🔄 Delta-/Inkrementeller Export – nur neue oder geänderte Bestellungen (In-App-Kauf)
❓ FAQ¶
Kann ich den Export automatisieren?
Ja, das Plugin unterstützt den automatischen Export über Shopware Scheduled Tasks (Cronjobs).
Die CSV-Datei kann automatisch erstellt und per E-Mail oder FTP versendet werden.
Kann ich eigene Exportprofile erstellen?
Ja, Sie können individuelle Exportprofile anlegen und bestimmen, welche Felder exportiert werden sollen und in welcher Reihenfolge.
Werden auch Zusatzfelder (Custom Fields) unterstützt?
Ja, das Plugin unterstützt Zusatzfelder für Bestellungen, Kunden, Produkte und Bestellpositionen.
Wie viele Bestellungen kann ich gleichzeitig exportieren?
Die maximale Anzahl an Bestellungen ist in der Plugin-Konfiguration einstellbar.
Über CLI lassen sich auch sehr große Datenmengen exportieren.
In welchen Formaten kann ich exportieren?
Standardmäßig als CSV. Mit dem In-App-Kauf „Pro-Formate & ERP-Vorlagen" zusätzlich als Excel (XLSX), JSON oder XML – einstellbar pro Profil.
Werden ERP-/Warenwirtschaftssysteme unterstützt?
Ja. Mit dem In-App-Kauf „Pro-Formate & ERP-Vorlagen" stehen Ein-Klick-Vorlagen für DATEV, JTL-Wawi, Billbee, Xentral und Lexware bereit, die Feldauswahl und Formateinstellungen automatisch vorbelegen.
Kann ich nur neue oder geänderte Bestellungen exportieren?
Ja, mit dem In-App-Kauf „Delta-Export". Dabei werden nur Bestellungen exportiert, die seit dem letzten erfolgreichen Lauf erstellt oder geändert wurden – ideal für die Synchronisation mit einer Warenwirtschaft ohne Duplikate.
Warum laufen meine automatischen Exporte nur, wenn die Administration geöffnet ist?
Geplante Exporte benötigen einen aktiven Hintergrund-Worker (Shopware Message Queue / geplante Aufgaben). Bei Shopware Cloud und den meisten Managed-Hostings ist dieser bereits aktiv. Andernfalls bitten Sie Ihren Hosting-Anbieter, den Worker zu aktivieren. Manuelle Exporte funktionieren auch ohne Worker.

🔧 Installation¶
- Voraussetzungen (CNK Foundation)
- Installation via Store oder ZIP
- Aktivierung & Sichtbarkeit im Backend

🧩 Profile verwalten¶
Exportprofile definieren, welche Daten in der CSV-Datei enthalten sind und in welcher Reihenfolge sie erscheinen.
Die Profile befinden sich im Shopware-Adminbereich unter Bestellungen > CSV-Export > Profile.

Innerhalb eines Profils kannst du gezielt festlegen, welche Felder in die exportierte CSV-Datei aufgenommen werden sollen.
Über die Schaltfläche „Feld hinzufügen“ lassen sich Bestell-, Kunden-, Produkt- und Adressfelder individuell auswählen und anordnen.
Die Reihenfolge der Felder im Profil entspricht der Spaltenreihenfolge in der CSV-Datei.

🗂️ Exportformate & ERP-Vorlagen¶
In-App-Kauf „Pro-Formate & ERP-Vorlagen"
Diese Funktionen sind über einen In-App-Kauf direkt im Shopware-Adminbereich freischaltbar.
Zusätzlich zum Standardformat CSV können Sie Ihre Exportprofile auch als Excel (XLSX), JSON oder XML ausgeben.
Das Exportformat wird pro Profil im Reiter Konfiguration über das Feld „Dateiformat" festgelegt und serverseitig für alle Exportwege (manuell, Schnell-Export, Zeitplan, Flow Builder und CLI) durchgesetzt. Ist der In-App-Kauf nicht aktiv, fällt der Export automatisch auf CSV zurück.
Ein Pro-Format freischalten¶
- Öffnen Sie ein Profil unter Bestellungen > CSV-Export > Profile und wechseln Sie in den Reiter Konfiguration.
- Wählen Sie unter Dateiformat ein Pro-Format (XLSX, JSON oder XML). Ist der Kauf noch nicht aktiv, erscheint ein Hinweis mit der Schaltfläche „Freischalten".
- Nach dem Kauf steht das Format sofort zur Verfügung und wird beim Speichern übernommen.
ERP-Vorlagen anwenden¶
ERP-Vorlagen belegen mit einem Klick die passende Feldauswahl sowie die Trennzeichen-, Zahlen-, Datums- und Encoding-Einstellungen für das jeweilige Zielsystem vor:
| Vorlage | Zielsystem |
|---|---|
| DATEV | DATEV / Buchhaltung |
| JTL-Wawi | JTL Warenwirtschaft |
| Billbee | Billbee |
| Xentral | Xentral ERP |
| Lexware | Lexware |
So wenden Sie eine Vorlage an:
- Stellen Sie sicher, dass der In-App-Kauf „Pro-Formate & ERP-Vorlagen" aktiv ist.
- Wählen Sie im Profil unter ERP-Vorlage das gewünschte System und klicken Sie auf „Vorlage anwenden".
- Die Feldauswahl und die Formateinstellungen werden übernommen. Das gewählte Dateiformat bleibt dabei erhalten – Sie können also z. B. eine DATEV-Feldauswahl auch als XLSX ausgeben.
💡 Das Anwenden einer Vorlage überschreibt die aktuelle Feldauswahl des Profils. Passen Sie die Felder anschließend bei Bedarf an und speichern Sie das Profil.
🔄 Inkrementeller / Delta-Export¶
In-App-Kauf „Delta-Export"
Diese Funktion ist über einen separaten In-App-Kauf direkt im Shopware-Adminbereich freischaltbar.
Mit dem Delta-Export werden bei jedem Lauf nur die Bestellungen exportiert, die seit dem letzten erfolgreichen Export erstellt oder geändert wurden. Das hält eine Warenwirtschaft oder Buchhaltung ohne Duplikate synchron und spart – besonders bei großen Bestellmengen – Zeit und Datenvolumen.
- Pro Profil aktivierbar über den Schalter „Delta-/Inkrementeller Export" im Reiter Konfiguration.
- Berücksichtigt Bestellungen anhand von Erstellungs- oder Änderungsdatum (
createdAt/updatedAt), sodass auch nachträglich geänderte Bestellungen erneut exportiert werden. - Der Delta-Stand (Wasserzeichen) wird nur nach einem erfolgreichen Export fortgeschrieben – schlägt ein Lauf fehl, gehen keine Bestellungen verloren.
- Funktioniert über alle Exportwege: Zeitplan, Flow Builder und CLI (Config-Profil).
Delta-Export einrichten¶
- Öffnen Sie ein Profil und wechseln Sie in den Reiter Konfiguration.
- Aktivieren Sie den Schalter „Delta-/Inkrementeller Export". Ist der Kauf noch nicht aktiv, erscheint ein Hinweis mit der Schaltfläche „Freischalten".
- Speichern Sie das Profil. Ab dem nächsten Lauf werden nur noch neue oder geänderte Bestellungen exportiert.
Delta-Stand zurücksetzen¶
Möchten Sie erneut alle Bestellungen exportieren (z. B. für einen vollständigen Erst-Abgleich), setzen Sie das Wasserzeichen zurück:
- Öffnen Sie das Profil im Reiter Konfiguration.
- Klicken Sie im Delta-Hinweis auf „Zurücksetzen" und speichern Sie das Profil.
- Der nächste Lauf exportiert wieder alle passenden Bestellungen und setzt anschließend ein neues Wasserzeichen.
💡 Der Delta-Export nutzt den Startzeitpunkt des Exports als Wasserzeichen. Dadurch werden im Grenzfall lieber wenige Bestellungen doppelt exportiert als übersprungen – ideal für idempotente Importe (Upserts) in der Warenwirtschaft.
Variablen¶
💡 Die Feldnamen müssen exakt so übernommen werden, wie sie in der linken Spalte angegeben sind.
Die folgende Übersicht zeigt alle verfügbaren Variablen, die in einem Exportprofil verwendet werden können.
Diese bestimmen, welche Daten in der CSV-Datei erscheinen – zum Beispiel allgemeine Bestelldaten, Kundeninformationen, Adressfelder oder Produktdetails.
Die Feldnamen in der linken Spalte werden im Profil konfiguriert, die rechte Spalte beschreibt den Inhalt.
🧾 Allgemeine Bestelldaten¶
| Feldname | Beschreibung |
|---|---|
id | Bestell-ID |
order_number | Bestellnummer |
order_date | Bestelldatum |
order_date_time | Bestelldatum und Uhrzeit |
sales_channel | Verkaufskanal |
payment_method | Zahlart |
shipping_method | Liefermethode |
amount_total | Gesamtbetrag |
amount_net | Netto-Betrag |
position_price | Bruttopreis der Position |
currency_name | Währung |
currency_short_name | Währung (kurz) |
shipping_total | Lieferkosten |
affiliate_code | Affiliate-Code |
customer_comment | Kundenkommentar |
internal_comment | Interner Kommentar |
transactions_state_machine_state | Zahlungsstatus |
deliveries_state_machine_state | Versandstatus |
order_state | Bestellstatus |
tags | Tags |
currency_factor | Währungsfaktor |
tax_status | Steuerstatus |
tax_calculation_type | Steuerberechnungsart |
deep_link_code | Deep-Link-Code |
auto_increment | Fortlaufende Nummer |
campaign_code | Kampagnen-Code |
source | Quelle |
created_at | Erstellt am |
updated_at | Geändert am |
order_language | Bestellsprache |
sales_channel_id | Verkaufskanal-ID |
currency_id | Währungs-ID |
language_id | Sprach-ID |
state_id | Status-ID |
billing_address_id | Rechnungsadresse-ID |
📦 Bestellpositionen¶
| Feldname | Beschreibung |
|---|---|
line_items_id | Positions-ID |
line_items_order_number | Bestellnummer (Position) |
line_items_label | Name |
line_items_description | Beschreibung |
line_items_quantity | Menge |
line_items_unit_price | Einzelpreis |
line_items_total_price | Gesamtpreis |
👤 Kundendaten¶
| Feldname | Beschreibung |
|---|---|
company | Firma |
salutation | Anrede |
first_name | Vorname |
last_name | Name |
email | E-Mail-Adresse |
birthday | Geburtsdatum |
order_count | Anzahl Bestellungen |
customer_number | Kundennummer |
customer_id | Kunden-ID |
customer_group | Kundengruppe |
customer_language | Kundensprache |
customer_register_date | Registrierungsdatum |
customer_remote_address | IP-Adresse |
vat_ids | USt-IdNrn. |
customer_first_login | Erste Anmeldung |
customer_last_login | Letzte Anmeldung |
customer_last_order_date | Letztes Bestelldatum |
customer_order_total_amount | Gesamter Bestellwert |
customer_review_count | Anzahl Bewertungen |
customer_tags | Kunden-Tags |
customer_account_type | Kontotyp |
customer_last_payment_method | Letzte Zahlart |
order_customer_number | Bestell-Kundennummer |
customer_company | Firma (Kunde) |
customer_title | Titel |
customer_active | Aktiv |
customer_guest | Gastkonto |
🚚 Lieferadresse¶
| Feldname | Beschreibung |
|---|---|
shipping_address_company | Firma |
shipping_address_department | Abteilung |
shipping_address_salutation | Anrede |
shipping_address_title | Titel |
shipping_address_first_name | Vorname |
shipping_address_last_name | Nachname |
shipping_address_street | Straße |
shipping_address_street_name | Straßenname |
shipping_address_street_number | Hausnummer |
shipping_address_zipcode | PLZ |
shipping_address_city | Stadt |
shipping_address_phone_number | Telefonnummer |
shipping_address_additional_address_line1 | Adresszusatz 1 |
shipping_address_additional_address_line2 | Adresszusatz 2 |
shipping_address_country_name | Land |
shipping_address_country_iso | Land (ISO) |
shipping_address_country_iso3 | Land (ISO3) |
🧾 Rechnungsadresse¶
| Feldname | Beschreibung |
|---|---|
billing_address_company | Firma |
billing_address_department | Abteilung |
billing_address_salutation | Anrede |
billing_address_title | Titel |
billing_address_first_name | Vorname |
billing_address_last_name | Nachname |
billing_address_street | Straße |
billing_address_street_name | Straßenname |
billing_address_street_number | Hausnummer |
billing_address_zipcode | PLZ |
billing_address_city | Stadt |
billing_address_additional_address_line1 | Adresszusatz 1 |
billing_address_additional_address_line2 | Adresszusatz 2 |
billing_address_country_name | Land |
billing_address_country_iso | Land (ISO) |
billing_address_country_iso3 | Land (ISO3) |
🛒 Produkt-Daten¶
| Feldname | Beschreibung |
|---|---|
line_items_product_id | Produkt-ID |
line_items_product_number | Produktnummer |
line_items_product_name | Produktname |
line_items_product_description | Beschreibung |
line_items_product_manufacturer_number | Herstellernummer |
line_items_product_ean | EAN |
line_items_product_stock | Bestand |
line_items_product_available_stock | Verfügbarer Bestand |
line_items_product_max_purchase | Max. Menge |
line_items_product_min_purchase | Min. Menge |
line_items_product_purchase_prices | Kaufpreis |
line_items_product_shipping_free | Gratis Lieferung |
line_items_product_weight | Gewicht |
line_items_product_width | Breite |
line_items_product_height | Höhe |
line_items_product_length | Länge |
line_items_product_category_ids | Kategorie-IDs |
line_items_product_category_names | Kategorie-Namen |
line_items_product_release_date | Veröffentlichungsdatum |
line_items_product_manufacturer_name | Herstellername |
line_items_product_tags_names | Produkt-Tags |
line_items_product_tax_name | Steuersatz-Name |
line_items_product_tax_rate | Steuersatz (%) |
line_items_product_properties | Eigenschaften |
🧬 Positionsdetails (Payload)¶
Snapshot-Daten, die zum Kaufzeitpunkt an der Bestellposition gespeichert werden.
| Feldname | Beschreibung |
|---|---|
line_items_payload_mark_as_topseller | Als Topseller markiert |
line_items_payload_product_type | Produkttyp |
line_items_payload_product_number | Produktnummer (Payload) |
line_items_payload_manufacturer_name | Herstellername |
line_items_payload_category_names | Kategorienamen |
line_items_payload_is_new | Als neu markiert |
📄 Dokumente¶
Felder aus erzeugten Dokumenten (Rechnung, Lieferschein und – sofern das Pickware-Plugin installiert ist – Pickware Pickliste / POS-Beleg). Die Werte sind erst gefüllt, sobald das jeweilige Dokument zur Bestellung erstellt wurde.
Rechnung¶
| Feldname | Beschreibung |
|---|---|
documents_invoice_date | Datum |
documents_invoice_datetime | Datum & Uhrzeit |
documents_invoice_document_number | Belegnummer |
documents_invoice_company_name | Firmenname |
documents_invoice_company_street | Firma Straße |
documents_invoice_company_zipcode | Firma PLZ |
documents_invoice_company_city | Firma Stadt |
documents_invoice_company_country | Firma Land |
documents_invoice_company_email | Firma E-Mail |
documents_invoice_company_phone | Firma Telefon |
documents_invoice_company_url | Firma URL |
documents_invoice_payment_due_date | Zahlungsziel |
documents_invoice_tax_number | Steuernummer |
documents_invoice_vat_id | USt-IdNr. |
documents_invoice_bank_name | Bankname |
documents_invoice_bank_iban | IBAN |
documents_invoice_bank_bic | BIC |
documents_invoice_place_of_jurisdiction | Gerichtsstand |
documents_invoice_place_of_fulfillment | Erfüllungsort |
documents_invoice_executive_director | Geschäftsführer |
documents_invoice_company_address | Firmenadresse |
documents_invoice_document_comment | Belegkommentar |
Lieferschein¶
| Feldname | Beschreibung |
|---|---|
documents_delivery_note_date | Datum |
documents_delivery_note_datetime | Datum & Uhrzeit |
documents_delivery_note_document_number | Belegnummer |
documents_delivery_note_company_name | Firmenname |
documents_delivery_note_company_street | Firma Straße |
documents_delivery_note_company_zipcode | Firma PLZ |
documents_delivery_note_company_city | Firma Stadt |
documents_delivery_note_company_country | Firma Land |
documents_delivery_note_company_email | Firma E-Mail |
documents_delivery_note_company_phone | Firma Telefon |
documents_delivery_note_company_url | Firma URL |
documents_delivery_note_payment_due_date | Zahlungsziel |
documents_delivery_note_tax_number | Steuernummer |
documents_delivery_note_vat_id | USt-IdNr. |
documents_delivery_note_bank_name | Bankname |
documents_delivery_note_bank_iban | IBAN |
documents_delivery_note_bank_bic | BIC |
documents_delivery_note_place_of_jurisdiction | Gerichtsstand |
documents_delivery_note_place_of_fulfillment | Erfüllungsort |
documents_delivery_note_executive_director | Geschäftsführer |
documents_delivery_note_company_address | Firmenadresse |
documents_delivery_note_document_comment | Belegkommentar |
Pickware ERP-Pickliste¶
| Feldname | Beschreibung |
|---|---|
documents_pickware_erp_picklist_document_date | Belegdatum |
documents_pickware_erp_picklist_document_datetime | Belegdatum & Uhrzeit |
documents_pickware_erp_picklist_document_number | Belegnummer |
documents_pickware_erp_picklist_company_name | Firmenname |
documents_pickware_erp_picklist_company_street | Firma Straße |
documents_pickware_erp_picklist_company_zipcode | Firma PLZ |
documents_pickware_erp_picklist_company_city | Firma Stadt |
documents_pickware_erp_picklist_company_country | Firma Land |
documents_pickware_erp_picklist_company_email | Firma E-Mail |
documents_pickware_erp_picklist_company_phone | Firma Telefon |
documents_pickware_erp_picklist_company_url | Firma URL |
documents_pickware_erp_picklist_payment_due_date | Zahlungsziel |
documents_pickware_erp_picklist_tax_number | Steuernummer |
documents_pickware_erp_picklist_vat_id | USt-IdNr. |
documents_pickware_erp_picklist_bank_name | Bankname |
documents_pickware_erp_picklist_bank_iban | IBAN |
documents_pickware_erp_picklist_bank_bic | BIC |
documents_pickware_erp_picklist_place_of_jurisdiction | Gerichtsstand |
documents_pickware_erp_picklist_place_of_fulfillment | Erfüllungsort |
documents_pickware_erp_picklist_executive_director | Geschäftsführer |
documents_pickware_erp_picklist_company_address | Firmenadresse |
documents_pickware_erp_picklist_document_comment | Belegkommentar |
Pickware POS-Beleg¶
| Feldname | Beschreibung |
|---|---|
documents_pickware_pos_receipt_document_number | Belegnummer |
documents_pickware_pos_receipt_document_date | Belegdatum |
documents_pickware_pos_receipt_invoice_number | Rechnungsnummer |
Zusatzfelder (Custom Fields)
Zusätzlich zu den oben gelisteten Feldern erscheinen im Feld-Auswahldialog automatisch die in Ihrem Shop definierten Zusatzfelder für Bestellungen, Kunden, Produkte und Bestellpositionen.
⚡ Schnell-Export über die Bestellübersicht¶
- Direkt-Export von selektierten Bestellungen
- Direkt-Export von gefilterten Bestellungen

- Auswahl eines Profils im Dropdown

🔁 Jobs (Automatisierung)¶
- Erklärung: Scheduled Task / Cronjob
- Konfigurierbare Optionen:
- Zeitintervall oder feste Wochentage + Uhrzeit
- FTP / E-Mail-Ziel
- Profilwahl (inkl. Format, ERP-Vorlage und Delta-Export des gewählten Profils)
Voraussetzung: aktiver Hintergrund-Worker
Geplante Exporte werden über den Hintergrund-Worker Ihres Shops ausgeführt (Shopware Message Queue & geplante Aufgaben). Bei Shopware Cloud und den meisten Managed-Hostings ist dieser standardmäßig aktiv – Sie müssen nichts weiter einrichten.
Werden Exporte nur ausgeführt, während die Administration geöffnet ist, läuft in Ihrem Shop kein Hintergrund-Worker. Bitten Sie in diesem Fall Ihren Hosting-Anbieter, den Worker zu aktivieren (technisch: den „Admin-Worker" deaktivieren und bin/console messenger:consume sowie bin/console scheduled-task:run als Dienst bzw. Cron betreiben – siehe Shopware Message Queue). Manuelle Exporte funktionieren auch ohne Worker.

📊 Aktivität & Protokollierung¶
- Exporthistorie & Status (Success/Error)
- CSV-Log: Empfänger, FTP-Pfad, Zeitstempel
-
Die Logs sind unter Bestellungen > CSV-Export > Aktivität zu finden

-
Das Ergebnis sieht wie folgt aus

🖥️ Kommandozeilen-Export (CLI)¶
Schneller Export laufender Aktivitäten¶
Der Export großer Datenmengen – auch über 10.000 Bestellungen – ist möglich.
Ein integrierter Fortschrittsbalken zeigt dabei den Exportfortschritt an.
Um nicht auf die Queue zu warten, kann man den Export manuell anstoßen – z.B. für sofortigen CSV-Download nach dem Erstellen eines Exports:
#[AsCommand(
name: 'cnk:csv-order-log:consume',
description: 'Export all the activities in progress',
)]
Der Export kann anschließend direkt über die Konsole gestartet werden:
Dieser Befehl startet alle laufenden Exporte direkt über die Konsole.
Export mit Shopware Profil¶
bin/console cnk:csv-orders:export --fromDate 2023-05-15 --toDate 2025-02-01 --exportType sw_profile --mode order --profileName "Default orders" --limit 500
Export mit eigenem Profil¶
bin/console cnk:csv-orders:export --fromDate 2023-05-15 --toDate 2025-02-01 --exportType config --mode line_items --profileName "WAWI" --limit 500
- fromDate: Bestellungen von, format Y-m-d
- toDate: Bestellungen bis, format Y-m-d
- exportType: Auswahl zwischen sw_profile und config
- mode: Auswahl zwischen order und line_items
- profileName: Standardprofil oder vom Benutzer angelegtes Profil
- limit: Limit der zu exportierenden Bestellungen (Standardwert: 100)