WP Manifestindependent plugin directory
manifest / ecommerce / fgr-wc-order-export

FGR WC Order Export

Exportiert WooCommerce-Bestellungen automatisch als CSV – in einen Ordner auf dem Server und/oder per E-Mail, mit Exportprofilen, Zeitplan und Spaltenauswahl

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/freiegestalterischerepublik/fgr-wc-order-export/archive/refs/heads/main.zip
Updates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.

Ein Plugin der Freien Gestalterischen Republik. Exportiert WooCommerce-Bestellungen automatisch als CSV-Datei – in einen Ordner auf dem Server, per E-Mail oder beides.

  • Exportprofile mit eigenem Zeitplan, eigener Ausgabe und eigener Spaltenauswahl
  • 97 Standardspalten, Format kompatibel zu Advanced Order Export 4.1.1: eine Zeile pro Artikel, Bestelldaten in jeder Zeile, Gutschein in jeder Artikelzeile, CSV mit Komma, " und Windows-Zeilenumbrüchen, UTF-8 ohne BOM
  • Start per System-Cronjob über WP-CLI, damit die Dateien außerhalb der Website liegen können

Backend

FGR Plugins → Order Export zeigt alle Exportprofile, ob sich der Server-Cronjob meldet, und die allgemeinen Einstellungen. Jedes Profil hat:

  • Name, aktiv/inaktiv
  • Zeitplan, Uhrzeiten im 5-Minuten-Raster, mehrere pro Tag möglich:
    • täglich / wöchentlich (Wochentage wählbar): exportiert alle Bestellungen seit dem vorigen Lauf. Der erste Lauf setzt nur den Startpunkt
    • monatlich, quartalsweise, halbjährlich, jährlich: läuft am 1. Tag nach Ende des Zeitraums (1. des Monats; 1.1./1.4./1.7./1.10.; 1.1./1.7.; 1.1.) und exportiert genau den abgelaufenen Zeitraum, z. B. 01.10.–31.10. Bestellungen vom Exporttag selbst gehören zum nächsten Zeitraum. Der erste Lauf exportiert den ganzen abgelaufenen Zeitraum
  • Ausgabe: in einen Ordner, per E-Mail oder beides
    • Ordner: vollständiger Pfad außerhalb des Website-Ordners, pro Profil verschieden. Die Seite zeigt, wo die Website liegt, und ob der Ordner vorhanden und beschreibbar ist (prüft der Cronjob)
    • E-Mail: Empfänger (mehrere mit Komma), Betreff mit Platzhaltern {profil} {datum} {anzahl} {datei}, CSV als Anhang. Versand über wp_mail(), also WordPress-Standard oder ein eingerichtetes SMTP-Plugin. „Speichern und Test-Mail senden“ schickt die neuesten 3 Bestellungen
    • Klappt nur einer von zwei Wegen, gilt der Lauf als erledigt (Fehler im Protokoll), damit keine Bestellungen doppelt im Ordner landen. Schlagen alle Wege fehl, holt der nächste Lauf die Bestellungen nach
  • Spalten: ein-/ausschalten, per Ziehen umsortieren, Beispielwerte aus der neuesten Bestellung. „Spalten zurücksetzen“ stellt die Standardspalten wieder her
  • eigene Bezeichnung je Spalte – nur fürs Backend, gilt für alle Profile. Die Kopfzeile der Datei bleibt unverändert
  • Protokoll der letzten 30 Läufe, Startpunkt setzen, CSV für einen Zeitraum herunterladen

Allgemeine Einstellung: Meta-Feld Versand-Artikelnummer – optionales Meta-Feld der Versandposition, dessen Wert in der Spalte Versand ArtikelNr. steht (sonst Name der Versandart).

Dateiname: orders-JJJJ-MM-TT-HH-MM-SS.csv. Keine Bestellungen → keine Datei, keine E-Mail.

Cronjob

Der Cronjob ruft alle 5 Minuten wp fgr-order-export cron auf; jedes aktive Profil, dessen Termin erreicht ist, läuft einmal (ein verpasster Termin wird einmal nachgeholt). Die passende Zeile für die Website steht im Backend, z. B. /etc/cron.d/<benutzer>_order-export:

*/5 * * * * <benutzer> /usr/bin/flock -n /tmp/<benutzer>_order-export.lock /usr/bin/php8.5 /usr/local/bin/wp --path=/pfad/zur/website fgr-order-export cron >> /var/log/<benutzer>_order-export.log 2>&1

Bewusst über die Kommandozeile: PHP über den Webserver darf wegen open_basedir meist nicht außerhalb des Website-Ordners schreiben.

WP-CLI

Befehl Zweck
wp fgr-order-export cron für den Cronjob: fällige Profile starten
wp fgr-order-export export [--profile=<id>] [--dry-run] sofort exportieren (ohne --profile: alle aktiven)
wp fgr-order-export since "2026-10-20 00:00" [--profile=<id>] Startpunkt setzen
wp fgr-order-export csv 5401,5402 [--profile=<id>] > datei.csv CSV für bestimmte Bestellungen ausgeben
wp fgr-order-export profiles Profile mit Zeitplan, Ausgabe, letztem und nächstem Lauf

Zusätzliche Datenquellen

Spalte Quelle
_billing_kind / _shipping_kind Meta gleichen Namens, sonst Kassenfeld fgr/address-type der FGR-Block-Kasse (institution → institutionsadresse, privat → privatadresse); Versand nur, wenn die Lieferadresse abweicht
Geburtsdatum Meta order_geburtsdatum, sonst Kassenfeld fgr/birthdate
Versand ArtikelNr. Meta der Versandposition laut Einstellung, sonst Name der Versandart

Dateien

fgr-wc-order-export/
├── fgr-wc-order-export.php             # Header, Update-Checker
├── includes/
│   ├── class-fgr-wcoe-exporter.php     # Spalten + Werte, CSV
│   ├── class-fgr-wcoe-profiles.php     # Exportprofile, Zustand, Zeitplan, Bezeichnungen, Einstellungen
│   ├── class-fgr-wcoe-runner.php       # fällige Profile, ein Lauf, Ordner/E-Mail
│   ├── class-fgr-wcoe-cli.php          # WP-CLI-Befehle
│   └── class-fgr-wcoe-settings.php     # Backend
├── lib/plugin-update-checker/
└── uninstall.php                        # löscht alle fgr_wcoe_*-Optionen
  • DB-Optionen: fgr_wcoe_profiles (Profile), fgr_wcoe_state_<id> (letzter Lauf, letzter Termin, Ordnerstatus, Protokoll), fgr_wcoe_labels (Backend-Bezeichnungen), fgr_wcoe_settings, fgr_wcoe_cron_seen
  • Updates: zentrale FGR-Update-API https://fgr-plugins-api.fgr.design/fgr-wc-order-export.json. Bewusst kein Auto-Update: neue Versionen erscheinen unter Plugins als Update und werden von Hand eingespielt