{"id":28039,"date":"2021-05-19T11:53:00","date_gmt":"2021-05-19T08:53:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=28039"},"modified":"2021-10-17T16:58:17","modified_gmt":"2021-10-17T13:58:17","slug":"una-guia-rapida-sobre-la-api-rest-de-woocommerce","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/una-guia-rapida-sobre-la-api-rest-de-woocommerce\/","title":{"rendered":"Una gu\u00eda r\u00e1pida sobre la API REST de WooCommerce"},"content":{"rendered":"<p>\u00bfEst\u00e1 buscando interactuar con la API REST de WooCommerce? WooCommerce proporciona una API REST que le proporcionar\u00e1 datos en tiempo real del backend que puede colocar en cualquier lugar de su aplicaci\u00f3n externa. A trav\u00e9s de su API REST, uno puede administrar sus datos de WooCommerce accediendo a los puntos finales. En este art\u00edculo, estudiamos c\u00f3mo usar la API REST de WooCommerce y enviar solicitudes HTTP a WooCommerce.<\/p>\n<p>Si desea construir su propia tienda, puede usar WooCommerce como backend para administrar sus productos, im\u00e1genes de productos, galer\u00eda, etc. Y luego, usando la API REST, obtenga los datos del producto y mu\u00e9strelos en su aplicaci\u00f3n externa. WooCommerce proporciona una <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentaci\u00f3n de API REST<\/a> para interactuar con el backend. Aqu\u00ed obtendr\u00e1 los detalles sobre todo, como productos, clientes, pedidos, impuestos, etc. En este art\u00edculo, vamos a interactuar con los puntos finales del producto. De forma similar, puedes integrar otras opciones como clientes, pedidos, etc.<\/p>\n<h3>Obtenga su clave de consumidor y su secreto de consumidor<\/h3>\n<p>Para comenzar con la API REST de WooCommerce, primero debe obtener su clave de consumidor y su secreto de consumidor. Estas claves son la identificaci\u00f3n de la tienda y son necesarias al realizar una llamada API a WooCommerce.<\/p>\n<p>Debe instalar WooCommerce en su backend de WordPress. Luego dir\u00edgete a la p\u00e1gina <strong>WooCommerce-&gt; Configuraci\u00f3n<\/strong>. Haga clic en la pesta\u00f1a Avanzado y luego en el enlace 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 gu\u00eda r\u00e1pida sobre la API REST de WooCommerce\" ><\/a><\/p>\n<p>En esta p\u00e1gina, haga clic en el bot\u00f3n &#8216;Crear una clave API&#8217;.<\/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 gu\u00eda r\u00e1pida sobre la API REST de WooCommerce\" ><\/a><\/p>\n<p>Ingrese la descripci\u00f3n, elija los permisos &#8216;Lectura \/ Escritura&#8217; y presione el bot\u00f3n Generar clave API. Tambi\u00e9n puede elegir el permiso de lectura. Depende de su requerimiento. Si solo necesita leer datos de WooCommerce, elija la opci\u00f3n &#8216;Leer&#8217;. Y si desea realizar operaciones de lectura y escritura, su opci\u00f3n ser\u00eda &#8216;Leer \/ Escribir&#8217;.<\/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 gu\u00eda r\u00e1pida sobre la API REST de WooCommerce\" ><\/a><\/p>\n<p>Copie su clave de consumidor y su secreto de consumidor, que ser\u00e1n necesarios al realizar llamadas a la 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 gu\u00eda r\u00e1pida sobre la API REST de WooCommerce\" ><\/a><\/p>\n<h3>Interactuar con la API REST de WooCommerce<\/h3>\n<p>Una vez que est\u00e9 listo con su clave de consumidor y su secreto de consumidor, podemos comenzar con el c\u00f3digo que interact\u00faa con WooCommerce. Como necesitamos enviar solicitudes HTTP, instale la biblioteca Guzzle usando el siguiente comando.<\/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 es un cliente HTTP de PHP que facilita el env\u00edo de solicitudes HTTP y simplifica la integraci\u00f3n con los servicios web.<\/p>\n<p>Ahora tomemos algunos puntos finales como obtener todos los productos, obtener un solo producto, actualizar un producto e integrarlo.<\/p>\n<h4>Obtener productos<\/h4>\n<p>Al llamar a los puntos finales de la API de WooCommerce, debe establecer el encabezado de autorizaci\u00f3n, que es una cadena codificada en base64 de su clave de consumidor y secreto de consumidor.<\/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>En el c\u00f3digo anterior, he llamado al punto final que proporciona una lista de productos. Aqu\u00ed, he pasado 18 como un valor &#8216;per_page&#8217; que dar\u00e1 18 datos de producto en respuesta. Puede pasar este valor seg\u00fan sus requisitos. Aseg\u00farese de reemplazar los marcadores de posici\u00f3n con los valores reales antes de llegar al punto final.<\/p>\n<h4>Obtenga un solo producto<\/h4>\n<p>Si desea obtener los datos de un solo producto, su punto final ser\u00e1 el siguiente.<\/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>Actualizar un producto<\/h4>\n<p>Puede actualizar un producto enviando una solicitud PUT al punto final de la API. Supongamos que desea actualizar un precio_regular de su producto.<\/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>Estas son algunas llamadas b\u00e1sicas. De la misma forma, el usuario puede enviar solicitud HTTP para Clientes, Pedidos, Cupones, etc. Puede leer m\u00e1s al respecto en su <a href=\"https:\/\/woocommerce.github.io\/woocommerce-rest-api-docs\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">documentaci\u00f3n oficial<\/a>.<\/p>\n<h3>Interactuar con la API REST de WooCommerce usando JavaScript<\/h3>\n<p>WooCommerce lanza su propia <a href=\"https:\/\/www.npmjs.com\/package\/@woocommerce\/woocommerce-rest-api\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">biblioteca de JavaScript<\/a> que es \u00fatil para enviar llamadas API a WooCommerce desde el marco de JavaScript. Digamos que desea interactuar con la API REST desde su aplicaci\u00f3n basada en React.<\/p>\n<p>En ese caso, instale la biblioteca &#8216;@ woocommerce \/ woocommerce-rest-api&#8217; con el comando:<\/p>\n<pre><code>npm install --save @woocommerce\/woocommerce-rest-api<\/code><\/pre>\n<p>A continuaci\u00f3n, en su componente React, puede obtener la lista de productos utilizando el siguiente c\u00f3digo.<\/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>Aqu\u00ed, estoy imprimiendo la lista de nombres de productos y el precio del producto. El usuario tambi\u00e9n puede imprimir otros datos. Si desea ver todos los datos en la consola, registre response.data en el m\u00e9todo de \u00e9xito. Al igual que en el ejemplo anterior, puede enviar otras solicitudes HTTP desde su aplicaci\u00f3n React.<\/p>\n<h3>Conclusi\u00f3n<\/h3>\n<p>En este tutorial, estudiamos c\u00f3mo llamar a la API REST de WooCommerce usando PHP y JavaScript. Pasamos por los pocos puntos finales de API de WooCommerce. El usuario puede jugar con el otro extremo siguiendo la documentaci\u00f3n y enviando las solicitudes HTTP requeridas.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <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 est\u00e1 buscando construir una tienda en l\u00ednea, WooCommerce es una de las mejores opciones. Podemos utilizar la API REST de WooCommerce y crear una tienda en cualquier idioma.<\/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":[310,495,271,606],"tags":[849],"class_list":["post-28039","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-base-de-datos","category-laravel","category-php-2","category-uncategorized-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=28039"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/28039\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/22224"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=28039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=28039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=28039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}