{"id":24483,"date":"2021-05-19T12:14:00","date_gmt":"2021-05-19T09:14:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=24483"},"modified":"2021-10-18T02:15:28","modified_gmt":"2021-10-17T23:15:28","slug":"un-guide-rapide-sur-l-api-rest-de-woocommerce","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/fr\/un-guide-rapide-sur-l-api-rest-de-woocommerce\/","title":{"rendered":"Un guide rapide sur l&rsquo;API REST de WooCommerce"},"content":{"rendered":"<p>Cherchez-vous \u00e0 interagir avec l&rsquo;API REST de WooCommerce\u00a0? WooCommerce fournit une API REST qui vous fournira des donn\u00e9es en temps r\u00e9el \u00e0 partir du backend pouvant \u00eatre plac\u00e9es n&rsquo;importe o\u00f9 sur votre application externe. Gr\u00e2ce \u00e0 son API REST, on peut g\u00e9rer ses donn\u00e9es WooCommerce en frappant les points de terminaison. Dans cet article, nous \u00e9tudions comment utiliser l&rsquo;API REST de WooCommerce et envoyer des requ\u00eates HTTP \u00e0 WooCommerce.<\/p>\n<p>Si vous souhaitez cr\u00e9er votre propre boutique, vous pouvez utiliser WooCommerce comme backend pour g\u00e9rer vos produits, images de produits, galerie, etc. Ensuite, en utilisant l&rsquo;API REST, r\u00e9cup\u00e9rez les donn\u00e9es du produit et affichez-les sur votre application externe. WooCommerce fournit une <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation API REST<\/a> pour interagir avec le backend. Ici, vous obtiendrez des d\u00e9tails sur tout, comme les produits, les clients, les commandes, les taxes, etc. Dans cet article, nous allons interagir avec les points de terminaison du produit. De la m\u00eame mani\u00e8re, vous pouvez int\u00e9grer d&rsquo;autres options comme les clients, les commandes, etc.<\/p>\n<h3>Obtenez votre cl\u00e9 client et votre secret client<\/h3>\n<p>Pour commencer avec l&rsquo;API REST WooCommerce, vous devez d&rsquo;abord obtenir votre cl\u00e9 client et votre secret client. Ces cl\u00e9s sont l&rsquo;identification pour le magasin et n\u00e9cessaires lors de l&rsquo;appel d&rsquo;API \u00e0 WooCommerce.<\/p>\n<p>Vous devez installer WooCommerce sur votre backend WordPress. Rendez-vous ensuite sur la page <strong>WooCommerce-&gt; Param\u00e8tres<\/strong>. Cliquez sur l&rsquo;onglet Avanc\u00e9 puis sur le lien 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=\"Un guide rapide sur l&#039;API REST de WooCommerce\" ><\/a><\/p>\n<p>Sur cette page, cliquez sur le bouton &lsquo;Cr\u00e9er une cl\u00e9 API&rsquo;.<\/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=\"Un guide rapide sur l&#039;API REST de WooCommerce\" ><\/a><\/p>\n<p>Saisissez la description, choisissez les autorisations \u00ab\u00a0Lecture\/\u00e9criture\u00a0\u00bb \u200b\u200bet appuyez sur le bouton G\u00e9n\u00e9rer une cl\u00e9 API. Vous pouvez \u00e9galement choisir l&rsquo;autorisation de lecture. Cela d\u00e9pend de votre exigence. Si vous avez juste besoin de lire les donn\u00e9es de WooCommerce, choisissez l&rsquo;option &quot;Lire&quot;. Et si vous souhaitez effectuer \u00e0 la fois des op\u00e9rations de lecture et d&rsquo;\u00e9criture, votre option serait &quot;Lecture\/\u00e9criture&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=\"Un guide rapide sur l&#039;API REST de WooCommerce\" ><\/a><\/p>\n<p>Copiez votre cl\u00e9 client et votre secret client qui seront requis lors des appels d&rsquo;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=\"Un guide rapide sur l&#039;API REST de WooCommerce\" ><\/a><\/p>\n<h3>Interagir avec l&rsquo;API REST WooCommerce<\/h3>\n<p>Une fois que vous \u00eates pr\u00eat avec votre cl\u00e9 client et votre secret client, nous pouvons commencer par le code qui interagit avec le WooCommerce. Comme nous devons envoyer des requ\u00eates HTTP, installez la biblioth\u00e8que Guzzle \u00e0 l&rsquo;aide de la commande ci-dessous.<\/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 est un client HTTP PHP qui facilite l&rsquo;envoi de requ\u00eates HTTP et l&rsquo;int\u00e9gration aux services Web.<\/p>\n<p>Prenons maintenant quelques points de terminaison comme obtenir tous les produits, obtenir un seul produit, mettre \u00e0 jour un produit et l&rsquo;int\u00e9grer.<\/p>\n<h4>Obtenir des produits<\/h4>\n<p>Lors de l&rsquo;appel des points de terminaison de l&rsquo;API WooCommerce, vous devez d\u00e9finir l&rsquo;en-t\u00eate d&rsquo;autorisation qui est une cha\u00eene encod\u00e9e en base64 de votre cl\u00e9 client et de votre secret client.<\/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>Dans le code ci-dessus, j&rsquo;ai appel\u00e9 le point de terminaison qui donne une liste de produits. Ici, j&rsquo;ai pass\u00e9 18 en tant que valeur &lsquo;par_page&rsquo; qui donnera 18 donn\u00e9es de produit en r\u00e9ponse. Vous pouvez transmettre cette valeur selon vos besoins. Assurez-vous de remplacer les espaces r\u00e9serv\u00e9s par les valeurs r\u00e9elles avant d&rsquo;atteindre le point de terminaison.<\/p>\n<h4>Obtenez un seul produit<\/h4>\n<p>Si vous souhaitez r\u00e9cup\u00e9rer les donn\u00e9es d&rsquo;un seul produit, votre point de terminaison sera le suivant.<\/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>Mettre \u00e0 jour un produit<\/h4>\n<p>Vous pouvez mettre \u00e0 jour un produit en envoyant une demande PUT au point de terminaison de l&rsquo;API. Supposons que vous souhaitiez mettre \u00e0 jour un prix_r\u00e9gulier de votre produit.<\/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>Ce sont quelques appels de base. De la m\u00eame mani\u00e8re, l&rsquo;utilisateur peut envoyer une requ\u00eate HTTP pour les clients, les commandes, les coupons, etc. Vous pouvez en savoir plus \u00e0 ce sujet sur leur <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentation officielle<\/a>.<\/p>\n<h3>Interagir avec l&rsquo;API REST WooCommerce \u00e0 l&rsquo;aide de JavaScript<\/h3>\n<p>WooCommerce publie sa propre <a href=\"https:\/\/www.npmjs.com\/package\/@woocommerce\/woocommerce-rest-api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioth\u00e8que JavaScript<\/a> qui est utile pour envoyer un appel API \u00e0 WooCommerce \u00e0 partir du framework JavaScript. Supposons que vous souhaitiez interagir avec l&rsquo;API REST \u00e0 partir de votre application bas\u00e9e sur React.<\/p>\n<p>Dans ce cas, installez la librairie &lsquo;@woocommerce\/woocommerce-rest-api&rsquo; par la commande :<\/p>\n<pre><code>npm install --save @woocommerce\/woocommerce-rest-api<\/code><\/pre>\n<p>Ensuite, dans votre composant React, vous pouvez obtenir la liste des produits en utilisant le code ci-dessous.<\/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>Ici, j&rsquo;imprime la liste des noms de produits et le prix des produits. L&rsquo;utilisateur peut \u00e9galement imprimer d&rsquo;autres donn\u00e9es. Si vous souhaitez voir toutes les donn\u00e9es dans la console, enregistrez le fichier response.data dans la m\u00e9thode success. Tout comme l&rsquo;exemple ci-dessus, vous pouvez envoyer d&rsquo;autres requ\u00eates HTTP depuis votre application React.<\/p>\n<h3>Conclusion<\/h3>\n<p>Dans ce tutoriel, nous \u00e9tudions l&rsquo;appel de l&rsquo;API REST WooCommerce \u00e0 l&rsquo;aide de PHP et JavaScript. Nous avons parcouru les quelques points de terminaison d&rsquo;API de WooCommerce. L&rsquo;utilisateur peut jouer avec l&rsquo;autre point de terminaison en suivant la documentation et en envoyant les requ\u00eates HTTP requises.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si vous cherchez \u00e0 cr\u00e9er une boutique en ligne, WooCommerce est l&rsquo;un des meilleurs choix. Nous pouvons utiliser l&rsquo;API REST WooCommerce et cr\u00e9er un magasin dans n&rsquo;importe quelle langue.<\/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":[312,497,273,608],"tags":[844],"class_list":["post-24483","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-base-de-donnees","category-laravel2-4","category-php-4","category-uncategorized-4","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24483","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/comments?post=24483"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/posts\/24483\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media\/22224"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/media?parent=24483"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/categories?post=24483"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/fr\/wp-json\/wp\/v2\/tags?post=24483"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}