Aktuell laufen die letzten Vorbereitungen für die kommenden Updates auf WooCommerce 9.0 – hier sollte man bei Bedarf die Legacy REST-API beachten
Zuerst die kurze Vorgeschichte: die Version WooCommerce 2.6 aus 2016 enthielt eine neue REST-API, die auf der WordPress JSON-API basiert. Dadurch wurde die alte (jetzt als „Legacy“ bezeichnete) REST-API veraltet. Die alte REST API muss seitdem explizit aktiviert werden, damit sie verwendet werden kann. Wenn ein Shop allerdings schon länger (vor 2016) besteht, wird die nun als Legacy REST-API benannte API automatisch verwendet, wenn dies nicht umgestellt wurde. Hier besteht nun Handlungsbedarf und man sollte tätig werden.
Denn die Legacy-REST-API ab der Version WooCommerce 9.0 wird aus WooCommerce entfernt. Um Shops zu unterstützen, die diese Legacy-REST-API noch verwenden, wird eine separate WooCommerce-Erweiterung angeboten, die den gesamten entfernten Code für Websites enthält, die ihn noch benötigen.
Die Installation und Aktivierung der neuen Erweiterung in WooCommerce 9.0 und neueren Versionen funktionell der Aktivierung der Legacy REST API in WooCommerce 8.9 und älteren Versionen. Das bedeutet, dass sich für Clients der API nichts ändert.
Webhooks, die so konfiguriert wurden, dass sie die Legacy REST API zum Zusammenstellen ihrer Nutzdaten verwenden (in diesem Beitrag als „Legacy-Webhooks“ bezeichnet), werden ab WooCommerce 9.0 nicht mehr funktionieren, es sei denn, die entsprechende Erweiterung wird installiert.
Durch die Entfernung der Legacy REST API wird das WooCommerce-Versionspaket leichter und die WooCommerce REST API hoffentlich auch verständlicher.
Diese Änderung betrifft Websitebetreiber mit folgenden Konfigurationen:
Die Legacy REST-API in Ihrer WooCommerce-Installation aktiviert. Das betrifft i.d.R. eher Shops, die schon länger laufen und bei der entsprechend die Legacy REST-API noch läuft. Um das zu prüfen, ob dies der Fall ist, kann man unter WooCommerce > Einstellungen > Erweitert > Legacy-API nachschauen. Ist das Kästchen „Enable the legacy REST API“ (Legacy REST API aktivieren) markiert, ist die Legacy REST API aktiviert und es besteht Handlungsbedarf.
Bezüglich weiterer Webhooks kann man unter WooCommerce > Einstellungen > Erweitert > Webhooks – Legacy sehen, ob und wie viele solcher Webhooks auf Ihrer Website vorhanden sind.
Wenn einer dieser Punkte auf Sie zutrifft, sollte 1. zuerst die neue Erweiterung installiert werden, damit Anwendungen, die über die Legacy-REST-API mit Ihrer Website kommunizieren, nicht beeinträchtigt werden und Legacy-Webhooks weiterhin funktionieren, so lange bis man diese umgestellt hat… Idealerweise sollte dies geschehen, bevor der Server auf WooCommerce 9.0 aktualisiert wird, um Unterbrechungen zu vermeiden.
WooCommerce 8.3 gibt aktuell Warnhinweise in Websites aus, die entweder die Legacy REST API aktiviert haben oder über Legacy-Webhooks verfügen, von daher gibt es hier Infos von WooCommerce, die man beachten sollte.
Handlungsbedarf
Wenn man die Legacy-REST-API nach Prüfung noch benötigt ab WooCommerce 9.0, sollte man daher
1. vorab die neue Erweiterung installieren
2. den Shop umstellen auf die neue REST-API
Je nachdem wie viele und welche Webhooks vorhanden sind, sollte man sich hier im Detail die Anpassungserfordernisse ansehen, da jeder Webhook einzeln geprüft und gegebenenfalls neu konfiguriert werden muss. Auf der anderen Seite ergeben sich derzeit viele Fragen, was gemacht werden muss, wenn 1. die alte Legacy REST-API aktiviert ist, aber keine Webhooks vorhanden.
Einen interessanten Artikel hierzu gibt es von WooCommerce inklusive der aufschlussreichen Kommentare: https://developer.woocommerce.com/2023/10/03/the-legacy-rest-api-will-move-to-a-dedicated-extension-in-woocommerce-9-0/