WooCommerce-Produkt mit PHP über die REST-API hinzufügen

WooCommerce bringt eine REST-API mit, über die beispielsweise Produkte angelegt werden können. Hier zeige ich, wie genau das funktioniert.

PHP-Bibliothek für die REST-API von WooCommerce installieren und initialisieren

Es gibt offizielle Bibliotheken für die WooCommerce-REST-API, wodurch sie sich neben cURL mit Node.js, PHP, Python und Ruby nutzen lässt. Hier zeige ich die Verwendung mit der PHP-Bibliothek von Automattic. Dazu müssen wir diese erst mal installieren, was über Composer recht schnell erledigt ist (ich setze hier voraus, dass Composer für das Projekt bereits installiert ist):

composer require automattic/woocommerce

Anschließend binden wir sie ein, damit wir sie nutzen können:

// Load Composer autoloader.
// @link https://github.com/brightnucleus/jasper-client/blob/master/tests/bootstrap.php#L55-L59
$autoloader = dirname( __FILE__ ) . '/vendor/autoload.php';
if ( is_readable( $autoloader ) ) {
	require_once $autoloader;
}

use Automattic\WooCommerce\Client;

$woocommerce = new Client(
	'https://shop.local',
	'the_consumer_key',
	'the_consumer_secret',
	[
		'wp_api'  => true,
		'version' => 'wc/v2',
	]
);

Dazu laden wir zunächst den Autoloader von Composer, falls er vorhanden ist (wenn das Plugin oder ähnliches Teil eines größeren über Composer verwalteten Projekts wäre, würde für dieses Unterprojekt kein eigener Autoloader erstellt, sondern alles in den Autoloader des Oberprojekts gepackt), und nutzen das use-Statement um einfacher auf die Client-Klasse zugreifen zu können. Danach erstellen wir ein Objekt von Client und speichern es in der $woocommerce-Variable. Als Parameter übergeben wir:

  • die URL des Shops.
  • den Consumer-Key.
  • den Consumer-Secret.
  • ein Array mit weiteren Optionen, in unserem Fall:
    • die Erlaubnis, Requests an die neue WP-REST-API-Integration zu machen, die es ab WooCommerce 2.6 gibt.
    • die Version der API.

Consumer-Secret und -Key könnt ihr euch im WordPress-Backend unter WooCommerceEinstellungenAPISchlüssel/Apps generieren lassen.

Produkt über die REST-API erstellen

Kommen wir nun zum Anlegen eines Produkts:

$prod_data = [
	'name'          => 'Ein tolles Produkt',
	'type'          => 'simple',
	'regular_price' => '15.00',
	'description'   => 'Eine sehr vielsagende Produkt-Beschreibung.',
	'images'        => [
		[
			'src'      => 'https://shop.local/pfad/zum/bild.jpg',
			'position' => 0,
		],
	],
	'categories'    => [
		[
			'id' => 1,
		],
	],
];

$woocommerce->post( 'products', $prod_data );

Mit diesem Code wird ein einfaches Produkt mit dem Titel Ein tolles Produkt, einer vielsagenden Beschreibung und einem Bild zum Preis von 15,00 Euro (oder was als Währung des Shops anderes eingestellt ist) in der Kategorie mit der ID 1 angelegt.

Alle für ein Produkt verfügbaren Optionen findet ihr in der Dokumentation.

In meinem Beispiel mit fest reingeschriebenen Daten ist das natürlich etwas witzlos, aber in der Art ließen sich beispielsweise Produkte, die ihr als Export von irgendwoher in einem brauchbaren Format vorliegen habt, relativ problemlos durchlaufen und in den Shop einfügen.

Das könnte auch interessant sein

Schreib einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.