{"id":24660,"date":"2021-05-19T11:54:00","date_gmt":"2021-05-19T08:54:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24660"},"modified":"2021-10-18T03:12:18","modified_gmt":"2021-10-18T00:12:18","slug":"una-guida-rapida-sull-api-rest-di-woocommerce","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/it\/una-guida-rapida-sull-api-rest-di-woocommerce\/","title":{"rendered":"Una guida rapida sull&#8217;API REST di WooCommerce"},"content":{"rendered":"<p>Stai cercando di interagire con l&#8217;API REST di WooCommerce? WooCommerce fornisce un&#8217;API REST che ti fornir\u00e0 dati in tempo reale dal back-end che possono essere posizionati ovunque sulla tua applicazione esterna. Attraverso la sua API REST, \u00e8 possibile gestire i propri dati WooCommerce colpendo gli endpoint. In questo articolo, studiamo come utilizzare l&#8217;API REST di WooCommerce e inviare richieste HTTP a WooCommerce.<\/p>\n<p>Se vuoi creare il tuo negozio, puoi utilizzare WooCommerce come back-end per gestire i tuoi prodotti, immagini dei prodotti, galleria, ecc. E quindi utilizzando l&#8217;API REST, recupera i dati del prodotto e visualizzali sulla tua applicazione esterna. WooCommerce fornisce una <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentazione API REST<\/a> per interagire con il backend. Qui otterrai i dettagli su tutto come prodotti, clienti, ordini, tasse, ecc. In questo articolo, interagiremo con gli endpoint del prodotto. In modo simile, puoi integrare altre opzioni come clienti, ordini, ecc.<\/p>\n<h3>Ottieni la tua chiave del consumatore e il segreto del consumatore<\/h3>\n<p>Per iniziare con l&#8217;API REST di WooCommerce devi prima ottenere la chiave del consumatore e il segreto del consumatore. Queste chiavi sono l&#8217;identificazione per il negozio e sono necessarie mentre si effettua una chiamata API a WooCommerce.<\/p>\n<p>Devi installare WooCommerce sul tuo backend WordPress. Quindi <strong>vai alla<\/strong> pagina <strong>WooCommerce-&gt;Impostazioni<\/strong>. Fare clic sulla scheda Avanzate e quindi sul collegamento API REST.<\/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=\"Una guida rapida sull&#039;API REST di WooCommerce\" ><\/a><\/p>\n<p>In questa pagina fai clic sul pulsante &quot;Crea una chiave API&quot;.<\/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=\"Una guida rapida sull&#039;API REST di WooCommerce\" ><\/a><\/p>\n<p>Inserisci la descrizione, scegli le autorizzazioni &quot;Lettura\/Scrittura&quot; e premi il pulsante Genera chiave API. Puoi anche scegliere il permesso di lettura. Dipende dalla tua esigenza. Se hai solo bisogno di leggere i dati da WooCommerce, scegli l&#8217;opzione &quot;Leggi&quot;. E se vuoi eseguire sia operazioni di lettura che di scrittura, la tua opzione sarebbe &quot;Lettura\/Scrittura&quot;.<\/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=\"Una guida rapida sull&#039;API REST di WooCommerce\" ><\/a><\/p>\n<p>Copia la chiave del consumatore e il segreto del consumatore che saranno richiesti durante le chiamate API.<\/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=\"Una guida rapida sull&#039;API REST di WooCommerce\" ><\/a><\/p>\n<h3>Interagisci con l&#8217;API REST di WooCommerce<\/h3>\n<p>Una volta che sei pronto con la chiave del consumatore e il segreto del consumatore, possiamo iniziare con il codice che interagisce con WooCommerce. Poich\u00e9 abbiamo bisogno di inviare richieste HTTP, installa la libreria Guzzle usando il comando seguente.<\/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 \u00e8 un client HTTP PHP che semplifica l&#8217;invio di richieste HTTP e banale l&#8217;integrazione con i servizi web.<\/p>\n<p>Ora prendiamo alcuni endpoint come ottenere tutti i prodotti, ottenere un singolo prodotto, aggiornare un prodotto e integrarlo.<\/p>\n<h4>Ottieni prodotti<\/h4>\n<p>Durante la chiamata agli endpoint dell&#8217;API WooCommerce, \u00e8 necessario impostare l&#8217;intestazione di autorizzazione che \u00e8 una stringa codificata base64 della chiave del consumatore e del segreto del consumatore.<\/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>Nel codice sopra, ho chiamato l&#8217;endpoint che fornisce un elenco di prodotti. Qui, ho passato 18 come valore &#8216;per_page&#8217; che dar\u00e0 18 dati di prodotto in risposta. Puoi passare questo valore secondo le tue esigenze. Assicurati di sostituire i segnaposto con i valori effettivi prima di raggiungere l&#8217;endpoint.<\/p>\n<h4>Ottieni un singolo prodotto<\/h4>\n<p>Se desideri recuperare i dati di un singolo prodotto, il tuo endpoint sar\u00e0 il seguente.<\/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>Aggiorna un prodotto<\/h4>\n<p>Puoi aggiornare un prodotto inviando una richiesta PUT all&#8217;endpoint API. Supponiamo che tu voglia aggiornare un regular_price del tuo prodotto.<\/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>Queste sono alcune chiamate di base. Allo stesso modo, l&#8217;utente pu\u00f2 inviare richieste HTTP per Clienti, Ordini, Coupon, ecc. Puoi leggere di pi\u00f9 a riguardo sulla loro <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentazione ufficiale<\/a>.<\/p>\n<h3>Interagisci con l&#8217;API REST di WooCommerce usando JavaScript<\/h3>\n<p>WooCommerce rilascia la propria <a href=\"https:\/\/www.npmjs.com\/package\/@woocommerce\/woocommerce-rest-api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">libreria JavaScript<\/a> che \u00e8 utile per inviare chiamate API a WooCommerce dal framework JavaScript. Supponiamo che tu voglia interagire con l&#8217;API REST dalla tua applicazione basata su React.<\/p>\n<p>In tal caso, installa la libreria &#8216;@woocommerce\/woocommerce-rest-api&#8217; con il comando:<\/p>\n<pre><code>npm install --save @woocommerce\/woocommerce-rest-api<\/code><\/pre>\n<p>Successivamente nel tuo componente React, puoi ottenere l&#8217;elenco dei prodotti utilizzando il codice seguente.<\/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>Qui, sto stampando l&#8217;elenco dei nomi dei prodotti e il prezzo del prodotto. L&#8217;utente pu\u00f2 stampare anche altri dati. Se vuoi vedere tutti i dati nella console, registra response.data nel metodo success. Proprio come nell&#8217;esempio sopra, puoi inviare altre richieste HTTP dalla tua applicazione React.<\/p>\n<h3>Conclusione<\/h3>\n<p>In questo tutorial, studiamo come chiamare l&#8217;API REST di WooCommerce utilizzando PHP e JavaScript. Abbiamo esaminato i pochi endpoint API di WooCommerce. L&#8217;utente pu\u00f2 giocare con l&#8217;altro endpoint seguendo la documentazione e inviando le richieste HTTP richieste.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Se stai cercando di costruire un negozio online, WooCommerce \u00e8 una delle scelte migliori. Possiamo utilizzare l&#8217;API REST di WooCommerce e creare negozi in qualsiasi lingua.<\/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":[315,500,276,611],"tags":[846],"class_list":["post-24660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-banca-dati","category-laravel","category-php-7","category-uncategorized-7","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/comments?post=24660"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/posts\/24660\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media\/22224"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/media?parent=24660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/categories?post=24660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/it\/wp-json\/wp\/v2\/tags?post=24660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}