Für Entwickler

WP-CLI: Feeds per Befehl

Feeds von der Kommandozeile erzeugen und prüfen, mit Exit-Codes für Skripte.

Gilt ab Tarvexa 1.3 · WooCommerce

Auf einen Blick

Mit WP-CLI erzeugst und prüfst du Feeds von der Kommandozeile, für Deployments, Cron-Jobs und Monitoring. Die Befehle rufen denselben Code auf wie die Schaltfläche „Jetzt neu erzeugen“ im Backend, ein Feed sieht also aus wie sonst auch.

BefehlWas er tut
wp tarvexa feed listListet die Profile
wp tarvexa feed generateErzeugt Feeds jetzt, im laufenden Prozess
wp tarvexa feed statusZeigt den letzten Lauf und prüft ihn
wp tarvexa feed logZeigt das Protokoll der Läufe (ab Tarvexa 1.4.0)

list und status laufen immer. generate braucht eine gültige Lizenz: Ist sie gesperrt, nennt der Befehl den Grund und ändert nichts.

Profile auflisten

Beispiel
wp tarvexa feed list
wp tarvexa feed list --format=ids
wp tarvexa feed list --format=json --fields=id,name,url

Die Felder: id, name, portal, format, delivery (file oder download), status, rows, last_run, next_run, url und problem. Als Format gehen table, json, csv, ids und count.

Feeds erzeugen

Beispiel
wp tarvexa feed generate --all
wp tarvexa feed generate 42
wp tarvexa feed generate "idealo Hauptfeed" "Google Shopping"

Ein Profil nennst du mit seiner ID oder seinem Namen. Stimmt ein Name auf mehrere Profile, bricht der Befehl ab und verlangt die ID. --all nimmt jedes Profil, das eine Datei schreibt.

  • Synchron. Der Befehl wartet, bis die Datei geschrieben ist, und gibt je Profil die Zahl der Zeilen aus. Ein gleichzeitig laufender Lauf desselben Profils (zum Beispiel vom Zeitplan) wird nicht gestört: Der Befehl meldet „läuft bereits“ und ändert nichts.
  • Zeilen-Schutz. Hätte die neue Datei weniger als die Hälfte der bisherigen Zeilen, bleibt die alte Datei und der Befehl endet mit einem Fehler. Ist die Verkleinerung Absicht, hängst du --accept-drop an, so wie „Trotzdem veröffentlichen“ im Backend.
  • Exporte mit Kundendaten. Profile, die nur zum Herunterladen da sind (Bestellungen, Kunden), schreiben nie eine Datei. --all überspringt sie, nennst du eines ausdrücklich, ist das ein Fehler. Diese Exporte holst du im Backend.

Feeds prüfen

Beispiel
wp tarvexa feed status
wp tarvexa feed status 42

Für jedes Profil siehst du Status, Zeilen, letzten und nächsten Lauf. Bei einem einzelnen Profil folgen darunter die Hinweise des Validators mit ihrer Häufigkeit, in denselben Worten wie im Backend.

Protokoll lesen

Beispiel
wp tarvexa feed log
wp tarvexa feed log 42 --limit=5
wp tarvexa feed log --format=json --fields=time,name,result,rows

Das sind dieselben Einträge wie unter Tarvexa → Protokoll, neueste zuerst. Die Felder: time (UTC), id, name, result, rows, seconds, trigger und note. Ohne Profil siehst du alle Feeds, ohne --limit die letzten 20 Einträge. Der Befehl ändert nichts und endet immer mit Code 0. Siehe Feed-Protokoll.

Exit-Codes

Die Befehle sind für Skripte gebaut:

CodeBedeutung
0Alles in Ordnung. Hinweise des Validators allein sind kein Problem.
1generate: mindestens ein Lauf ist gescheitert, oder die Lizenz ist gesperrt, oder ein Profil existiert nicht. status: mindestens ein Feed braucht einen Blick (Fehler, vom Zeilen-Schutz angehalten, Lizenz).

Ein Cron-Job, der jede Nacht alle Feeds erneuert und bei einem Fehler Alarm schlägt:

Beispiel
wp tarvexa feed generate --all --path=/var/www/shop || mail -s "Feed-Fehler" admin@example.com < /dev/null

Multisite

In einem Netzwerk wählst du die Seite mit --url: Lizenz, Profile und Dateien gehören zu einer Seite.

Beispiel
wp tarvexa feed generate --all --url=https://shop.example.com/de/