{"id":24472,"date":"2021-05-19T12:44:00","date_gmt":"2021-05-19T09:44:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24472"},"modified":"2021-10-18T02:40:57","modified_gmt":"2021-10-17T23:40:57","slug":"eine-kurzanleitung-zur-woocommerce-rest-api","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/de\/eine-kurzanleitung-zur-woocommerce-rest-api\/","title":{"rendered":"Eine Kurzanleitung zur WooCommerce REST API"},"content":{"rendered":"<p>M\u00f6chten Sie mit der WooCommerce REST API interagieren? WooCommerce bietet eine REST-API, die Ihnen Echtzeitdaten aus dem Backend liefert, die Sie \u00fcberall in Ihrer externen Anwendung platzieren k\u00f6nnen. \u00dcber seine REST-API kann man seine WooCommerce-Daten verwalten, indem man die Endpunkte erreicht. In diesem Artikel untersuchen wir, wie Sie die WooCommerce REST API verwenden und HTTP-Anfragen an WooCommerce senden.<\/p>\n<p>Wenn Sie Ihren eigenen Shop aufbauen m\u00f6chten, k\u00f6nnen Sie WooCommerce als Backend verwenden, um Ihre Produkte, Produktbilder, Galerie usw. zu verwalten. Und dann mit der REST-API die Produktdaten abrufen und in Ihrer externen Anwendung anzeigen. WooCommerce bietet eine <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">REST-API-Dokumentation<\/a> f\u00fcr die Interaktion mit dem Backend. Hier erhalten Sie die Details zu Produkten, Kunden, Bestellungen, Steuern usw. In diesem Artikel werden wir mit den Produktendpunkten interagieren. Auf \u00e4hnliche Weise k\u00f6nnen Sie weitere Optionen wie Kunden, Bestellungen usw. integrieren.<\/p>\n<h3>Holen Sie sich Ihren Verbraucherschl\u00fcssel und Ihr Verbrauchergeheimnis<\/h3>\n<p>Um mit der WooCommerce REST API zu beginnen, m\u00fcssen Sie zuerst Ihren Verbraucherschl\u00fcssel und Ihr Verbrauchergeheimnis abrufen. Diese Schl\u00fcssel sind die Identifikation f\u00fcr den Shop und sind notwendig, w\u00e4hrend ein API-Aufruf an WooCommerce gesendet wird.<\/p>\n<p>Sie m\u00fcssen WooCommerce auf Ihrem WordPress-Backend installieren. <strong>Gehen Sie<\/strong> dann zur <strong>WooCommerce-&gt;Settings-<\/strong> Seite. Klicken Sie auf die Registerkarte Erweitert und dann auf den REST-API-Link.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-6082042fde2a8.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-6082042fde2a8.png\" alt=\"Eine Kurzanleitung zur WooCommerce REST API\" ><\/a><\/p>\n<p>Klicken Sie auf dieser Seite auf die Schaltfl\u00e4che &#8218;API-Schl\u00fcssel erstellen&#8216;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-60820430658a2.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-60820430658a2.png\" alt=\"Eine Kurzanleitung zur WooCommerce REST API\" ><\/a><\/p>\n<p>Geben Sie die Beschreibung ein, w\u00e4hlen Sie die Berechtigungen &quot;Lesen\/Schreiben&quot; und klicken Sie auf die Schaltfl\u00e4che API-Schl\u00fcssel generieren. Sie k\u00f6nnen auch die Leseberechtigung ausw\u00e4hlen. Es h\u00e4ngt von Ihrer Anforderung ab. Wenn Sie nur Daten aus WooCommerce lesen m\u00fcssen, w\u00e4hlen Sie die Option &quot;Lesen&quot;. Und wenn Sie sowohl Lese- als auch Schreiboperationen durchf\u00fchren m\u00f6chten, dann w\u00e4re Ihre Option &#8218;Lesen\/Schreiben&#8216;.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-60820430e1fa8.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-60820430e1fa8.png\" alt=\"Eine Kurzanleitung zur WooCommerce REST API\" ><\/a><\/p>\n<p>Kopieren Sie Ihren Consumer-Key und das Consumer-Secret, das beim Ausf\u00fchren von API-Aufrufen erforderlich ist.<\/p>\n<p><a href=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-60820430e1fa8.png\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/themewp.inform.click\/wp-content\/uploads\/2021\/04\/post-20552-60820430e1fa8.png\" alt=\"Eine Kurzanleitung zur WooCommerce REST API\" ><\/a><\/p>\n<h3>Interagieren Sie mit der WooCommerce REST API<\/h3>\n<p>Sobald Sie mit Ihrem Verbraucherschl\u00fcssel und Verbrauchergeheimnis fertig sind, k\u00f6nnen wir mit dem Code beginnen, der mit WooCommerce interagiert. Da wir HTTP-Anfragen senden m\u00fcssen, installieren Sie die Guzzle-Bibliothek mit dem folgenden Befehl.<\/p>\n<pre><code>composer require guzzlehttp\/guzzle<\/code><\/pre>\n<p><a href=\"https:\/\/artisansweb.net\/use-guzzle-php-http-client-sending-http-requests\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external\"><\/a>Guzzle ist ein PHP-HTTP-Client, der das Senden von HTTP-Anforderungen und die Integration in Webdienste einfach macht.<\/p>\n<p>Nehmen wir nun einige Endpunkte wie alle Produkte abrufen, ein einzelnes Produkt abrufen, ein Produkt aktualisieren und integrieren.<\/p>\n<h4>Produkte erhalten<\/h4>\n<p>Beim Aufrufen der WooCommerce-API-Endpunkte m\u00fcssen Sie den Authorization-Header festlegen, der eine Base64-codierte Zeichenfolge Ihres Verbraucherschl\u00fcssels und Verbrauchergeheimnisses ist.<\/p>\n<pre><code>&lt;?php\nrequire_once \"vendor\/autoload.php\";\n\u00a0\u00a0\nuse GuzzleHttpClient;\n\u00a0\ndefine('WC_CONSUMER_KEY', 'PASTE_CONSUMER_KEY');\ndefine('WC_CONSUMER_SECRET', 'PASTE_CONSUMER_SECRET');\n\u00a0\u00a0\n$client = new Client([\n\u00a0\u00a0\u00a0\u00a0\/\/ Base URI is used with relative requests\n\u00a0\u00a0\u00a0\u00a0'base_uri' =&gt; 'YOUR_DOMAIN_BASE_URL',\n]);\n\u00a0\ntry {\n\u00a0\u00a0\u00a0\u00a0$response = $client-&gt;request('GET', '\/wp-json\/wc\/v3\/products', [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'headers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Basic \". base64_encode(WC_CONSUMER_KEY.':'.WC_CONSUMER_SECRET)\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'query' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'per_page' =&gt; 18,\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'verify' =&gt; false, \/\/only needed if you are facing SSL certificate issue\n\u00a0\u00a0\u00a0\u00a0]);\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0$body = $response-&gt;getBody();\n\u00a0\u00a0\u00a0\u00a0$arr_body = json_decode($body);\n\u00a0\u00a0\u00a0\u00a0print_r($arr_body);\n} catch (Exception $e) {\n\u00a0\u00a0\u00a0\u00a0echo $e-&gt;getMessage();\n}<\/code><\/pre>\n<p>Im obigen Code habe ich den Endpunkt aufgerufen, der eine Liste von Produkten angibt. Hier habe ich 18 als &#8218;per_page&#8216;-Wert \u00fcbergeben, der als Antwort 18 Produktdaten liefert. Sie k\u00f6nnen diesen Wert gem\u00e4\u00df Ihren Anforderungen \u00fcbergeben. Stellen Sie sicher, dass Sie die Platzhalter durch die tats\u00e4chlichen Werte ersetzen, bevor Sie den Endpunkt erreichen.<\/p>\n<h4>Holen Sie sich ein einzelnes Produkt<\/h4>\n<p>Wenn Sie die Daten eines einzelnen Produkts abrufen m\u00f6chten, sieht Ihr Endpunkt wie folgt aus.<\/p>\n<pre><code>$response = $client-&gt;request('GET', '\/wp-json\/wc\/v3\/products\/PRODUCT_ID_HERE', [\n\u00a0\u00a0\u00a0\u00a0'headers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Basic \". base64_encode(WC_CONSUMER_KEY.':'.WC_CONSUMER_SECRET)\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0'verify' =&gt; false,\n]);<\/code><\/pre>\n<h4>Aktualisieren eines Produkts<\/h4>\n<p>Sie k\u00f6nnen ein Produkt aktualisieren, indem Sie eine PUT-Anfrage an den API-Endpunkt senden. Angenommen, Sie m\u00f6chten einen regul\u00e4ren_Preis Ihres Produkts aktualisieren.<\/p>\n<pre><code>$response = $client-&gt;request('PUT', '\/wp-json\/wc\/v3\/products\/PRODUCT_ID_HERE', [\n\u00a0\u00a0\u00a0\u00a0'headers' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\"Authorization\" =&gt; \"Basic \". base64_encode(WC_CONSUMER_KEY.':'.WC_CONSUMER_SECRET)\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0'json' =&gt; [\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0'regular_price' =&gt; '12.20',\n\u00a0\u00a0\u00a0\u00a0],\n\u00a0\u00a0\u00a0\u00a0'verify' =&gt; false,\n]);<\/code><\/pre>\n<p>Dies sind einige grundlegende Anrufe. Auf die gleiche Weise kann der Benutzer HTTP-Anfragen f\u00fcr Kunden, Bestellungen, Coupons usw. senden. Weitere Informationen dazu finden Sie in der <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">offiziellen Dokumentation<\/a>.<\/p>\n<h3>Interagieren Sie mit der WooCommerce REST API mit JavaScript using<\/h3>\n<p>WooCommerce ver\u00f6ffentlicht eine eigene <a href=\"https:\/\/www.npmjs.com\/package\/@woocommerce\/woocommerce-rest-api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">JavaScript-Bibliothek,<\/a> die n\u00fctzlich ist, um API-Aufrufe aus dem JavaScript-Framework an WooCommerce zu senden. Angenommen, Sie m\u00f6chten von Ihrer React-basierten Anwendung aus mit der REST-API interagieren.<\/p>\n<p>Installieren Sie in diesem Fall die Bibliothek &#8218;@woocommerce\/woocommerce-rest-api&#8216; mit dem Befehl:<\/p>\n<pre><code>npm install --save @woocommerce\/woocommerce-rest-api<\/code><\/pre>\n<p>Als n\u00e4chstes k\u00f6nnen Sie in Ihrer React-Komponente die Liste der Produkte mit dem folgenden Code abrufen.<\/p>\n<pre><code>import React from 'react';\nimport ReactDOM from 'react-dom';\nimport WooCommerceRestApi from \"@woocommerce\/woocommerce-rest-api\";\n\u00a0\nclass ProductsComponent extends React.Component {\n\u00a0\u00a0constructor(props) {\n\u00a0\u00a0\u00a0\u00a0super(props);\n\u00a0\u00a0\u00a0\u00a0this.state = {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0products: []\n\u00a0\u00a0\u00a0\u00a0};\n\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0componentDidMount() {\n\u00a0\u00a0\u00a0\u00a0const api = new WooCommerceRestApi({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0url: \"YOUR_DOMAIN_BASE_URL\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0consumerKey: \"PASTE_CONSUMER_KEY\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0consumerSecret: \"PASTE_CONSUMER_SECRET\",\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0version: \"wc\/v3\"\n\u00a0\u00a0\u00a0\u00a0});\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\/\/ List products\n\u00a0\u00a0\u00a0\u00a0api.get(\"products\", {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0per_page: 18, \/\/ 18 products per page\n\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.then((response) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Successful request\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0this.setState({\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0products: response.data\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.catch((error) =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Invalid request, for 4xx and 5xx statuses\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0})\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0.finally(() =&gt; {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ Always executed.\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0});\n\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0render() {\n\u00a0\u00a0\u00a0\u00a0return (\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;div&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;h2&gt;Products&lt;\/h2&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;ul&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{this.state.products.map(product =&gt; (\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;li key={product.id}&gt;{product.name} - ${product.regular_price}&lt;\/li&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0))}\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/ul&gt;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&lt;\/div&gt;\n\u00a0\u00a0\u00a0\u00a0);\n\u00a0\u00a0}\n}\n\u00a0\nconst element = &lt;ProductsComponent&gt;&lt;\/ProductsComponent&gt;\n\u00a0\nReactDOM.render(element, document.getElementById(\"root\"));<\/code><\/pre>\n<p>Hier drucke ich die Liste der Produktnamen und des Produktpreises. Der Benutzer kann auch andere Daten drucken. Wenn Sie alle Daten in der Konsole sehen m\u00f6chten, protokollieren Sie die response.data in der Erfolgsmethode. Genau wie im obigen Beispiel k\u00f6nnen Sie andere HTTP-Anfragen von Ihrer React-Anwendung senden.<\/p>\n<h3>Fazit<\/h3>\n<p>In diesem Tutorial lernen wir das Aufrufen der WooCommerce REST API mit PHP und JavaScript. Wir sind die wenigen API-Endpunkte von WooCommerce durchgegangen. Der Benutzer kann mit dem anderen Endpunkt spielen, indem er der Dokumentation folgt und die erforderlichen HTTP-Anforderungen sendet.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Aufnahmequelle:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wenn Sie einen Online-Shop aufbauen m\u00f6chten, ist WooCommerce eine der besten Wahl. Wir k\u00f6nnen die WooCommerce REST API verwenden und einen Shop in jeder Sprache erstellen.<\/p>\n","protected":false},"author":1,"featured_media":22224,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[311,496,272,607],"tags":[845],"class_list":["post-24472","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-datenbank","category-laravel","category-php-3","category-uncategorized-3","tag-affiai-de"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/comments?post=24472"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/posts\/24472\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media\/22224"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/media?parent=24472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/categories?post=24472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/de\/wp-json\/wp\/v2\/tags?post=24472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}