• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Plugins / Cómo usar la REST API de WooCommerce

Cómo usar la REST API de WooCommerce

REST API Woocommerce

[ 28 marzo 2017 ] [ Actualizado: 11 junio 2020 ]
[ Autor: Jhon Marreros Guzmán ][ Plugins - Avanzado] [ ]

librería optimización woocommerce

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Anteriormente habíamos visto cómo usar la REST API de WordPress, sin embargo también hay plugins que tienen funcionalidad de REST API integrada, en este caso veremos cómo usar la REST API de Woocommerce.
 

1- Activando la REST API de Woocommerce

Para activar la REST API de Woocommerce puedes hacerlo desde el dashboard de WordPress: Woocommerce > Ajustes> Avanzados > REST API.

Activar REST API Woocommerce

 

2- Generando las Claves

En la misma pantalla de activación, verás una opción de Claves/Aplicaciones, desde aquí puedes agregar nuevas claves.

En versiones recientes de WooCommerce esta distribución de enlaces ha cambiado, ahora todo aparece como REST API y no como Claves/Aplicaciones
Agregar Clave REST API

 

Al añadir clave verás la siguiente pantalla, en donde puedes llenar datos de la nueva clave, para este ejemplo usaremos una clave con permiso de lectura para el usuario administrador.

Agregar datos nueva clave

 

Tras guardar los cambios verás la generación de las claves, la clave de usuario, la clave secreta y también en código QR. Guarda los textos de las claves generadas ya que lo usaremos posteriormente.

Claves generadas

 

3- Usando la REST API desde una aplicación externa

Hay disponibles algunas librerías preparadas para usar la REST API de Woocommerce, en nuestro ejemplo usaremos una librería para trabajar con PHP.

  • Primero, asegúrate de tener composer instalado.
  • Desde tu terminal, crea un nuevo proyecto composer
    composer init
  • Luego instal el paquete de dependencia
    composer require automattic/woocommerce
    
  • Finalmente crea el archivo .php con el siguiente código y reemplaza la url del sitio de origen y las claves anteriormente generadas.
     
    require __DIR__ . '/vendor/autoload.php';
    
    use Automattic\WooCommerce\Client;
    
    $woocommerce = new Client(
        'http://TuSitioWoocommece.com', 
        'ck_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 
        'cs_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
        [
            'version' => 'wc/v3',
        ]
    );
    
    print_r($woocommerce->get('products'));
    
    

    En la parte final del código verás que se recupera todos los productos desde el sitio web con Woocommece, para saber que otros métodos tienes disponibles revisa la documentación oficial de Woocommerce REST API.

 
¿Aún con dudas?, en el siguiente video se explica en detalle cada uno de los puntos tratados anteriormente.

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Actualizar el stock de productos usando la API de WooCommerceActualizar el stock de productos usando la API de WooCommerce
  • Agregar datos a los  endpoints de la API de WooCommerceAgregar datos a los endpoints de la API de WooCommerce
  • Agregar endpoints a la API REST de WordPressAgregar endpoints a la API REST de WordPress
  • REST API en WordPressCómo usar la REST API de WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (4 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Renato

    28 marzo, 2017

    Excelente post e vídeo postado, mas há outros exemplos, tutos mais simples, e prático para leigos?

  2. Ignacio

    13 mayo, 2017

    Hola quiero conectarme con la app desde un iPhone y me sale el siguiente mensaje no valid woocommerce API found check your URL, me podrían indicar cuál podria ser el inconveniente?

    • jonhyleo

      5 octubre, 2017

      Revisa la estructura de los enlaces permanentes o Permalinks. No debe estar seleccionada la opción por defecto.

    • Juan Carlos Yepes

      13 marzo, 2022

      Como poner esto con credibanco

  3. Telmo

    31 octubre, 2017

    Hola quiero conectarme con la app desde un iPhone y me sale el siguiente mensaje no valid woocommerce API found check your URL, me podrían indicar cuál podria ser el inconveniente? He revisado, las opciones de los enlaces permanentes están bien

    • Jhon Marreros Guzmán

      31 octubre, 2017

      Hola, has probado primero con el código PHP de ejemplo en este artículo?, esto para descartar si hay algún problema con la API de origen.

  4. Rodolfo

    23 noviembre, 2017

    Hola amigo necesito hacer ese trabajo de transferir un catalogo de mi provedor a,mi tienda,online necesito que se comunique con migo att,rodolfo

    • Jhon Marreros Guzmán

      23 noviembre, 2017

      Hola Rodolfo, he eliminado tu correo, no deberías dejar tus datos públicos en comentarios, escríbeme a través del formulario de contacto: https://decodecms.com/contacto/

  5. christian

    8 marzo, 2018

    Necesito recorrer todos los productos y actualizar segun SKU con el xml que me otorgan. Sugerencias?

    1000 gracias por este magnifico tutorial.

    • Jhon Marreros Guzmán

      8 marzo, 2018

      Hola, de manera general puedes usar la API de Woocommerce para ir actualizando los productos de acuerdo al bucle que crees para leer el XML, entenderás que sólo puede darte generalidades ya que es un tema de programación.

    • Victor Silva

      20 julio, 2018

      @Cristão, ¿Tengo que hacer lo mismo que usted, ha conseguido alguna solución?

  6. erick

    30 abril, 2018

    Hola amigo, estoy intentando conectar mi API con un proyecto en angular e Ionic, pero realmente no puedo, ya he intentado de todo, hice lo de los links permanentes, y no obtengo nada, puedo conseguir un array pero de otras cosas, como de los post de WP, pero de los productos de WC no.

    • Jhon Marreros Guzmán

      30 abril, 2018

      Hola, prueba primero tu API, usa el código de ejemplo en PHP que uso en este artículo, con eso descartas si es un problema con la API o con tu código cliente.

  7. Francisco

    6 noviembre, 2018

    Hola necesito integrar un metodo de pago por medio de una api a mi woocommerce como podria hacerlo?

    • Jhon Marreros Guzmán

      6 noviembre, 2018

      Hola, en el caso que comentas la API sería por parte de tu método de pago, sin embargo existen ya muchos plugins para WooCommerce de métodos de pago, asegúrate primero de buscar si ya hay algún plugin que use el método de pago que estas tratando de usar.

  8. Jorge Godoy

    29 noviembre, 2018

    Hola, necesito integrar un HTML enviado por un proveedor con el objetivo de actualizar el inventario de los productos en tiempo real, como lo hago?

    • Jhon Marreros Guzmán

      1 diciembre, 2018

      Hola Jorge te he respondido a través del formulario de contacto.

  9. Bea

    6 enero, 2019

    Hola, necesito conectarme pero por Node.js, y me sale un error en una de las dependencias de requeri, por que será?

  10. Oscar Mejia

    27 febrero, 2019

    Excelente tutorial .. quiero agradecerte por tanto amigo..
    Tengo una consulta, espero me puedas ayudar.. tengo que sincronizar el stock de mi tienda woocommerce con el stock de sistema de facturación en la tienda física.. crees que comparar el stock de productos por el SKU y modificar su valor es posible con el API o cual sería la mejor práctica a realizar?

    • Jhon Marreros Guzmán

      3 marzo, 2019

      Hola, si claro, puedes usar la API de WooCommerce, sin embargo usa el ID, revisa este código de ejemplo: https://stackoverflow.com/questions/29258405/updating-stock-via-woocommerce-api-v2

  11. beto

    23 julio, 2019

    Hola ! como hago para activar la pestaña de API, no me aparece … es hace por plugin ?

    Gracias !

    • Jhon Marreros Guzmán

      25 julio, 2019

      Hola, en versiones recientes encuentras esa opción en: Ajustes > Avanzados > REST API. He actualizado la imagen de la entrada recientemente. Saludos.

  12. Elias Guillermo

    18 agosto, 2019

    hola Jhon soy de Colombia aca se maneja un ERP llamado Siigo no se sibes como consumir su API en woocommerce

    • Jhon Marreros Guzmán

      20 agosto, 2019

      Hola, lamentablemente no he escuchado de ese ERP, tendrías que revisar la documentación para desarrolladores.

  13. Elias Guillermo

    9 septiembre, 2019

    buenas tardes Jhon como estas un favor como asigno esa información JSON a un arregla Array en PHP toca decodificarla la información o ya viene decodificada o como trato los datos por favor alguna guía o tienes algún vídeo?

    gracias muy buen sitio y excelente tus explicaciones

    • Jhon Marreros Guzmán

      10 septiembre, 2019

      Puedes trabajarlo como JSON ya esta codificada así, revisa el siguiente enlace: https://linuxhint.com/how-to-parse-json-in-php/

  14. Jesus Chavez Bastias

    17 enero, 2020

    Máster, sabes si existe alguna página web de woocommerce online para poder hacer pruebas con las APIs para probar los resultados?

    • Jhon Marreros Guzmán

      17 enero, 2020

      Hola, no he visto un servicio de ese tipo, igual no es necesario, si tienes WooCommerce en un servidor podrías realizar las pruebas que quieras. Hay servidores freemium, por ejemplo https://demoswp.dev/

  15. Mauro

    25 enero, 2020

    Hola estimado qué tal? Tengo instalado en local un WordPress corriendo con laragon y php7. Sigo todos los pasos, género la ck y sk y leyendo la documentación de woocommerce puedo hacer una prueba con postman por método get al dominio y agregándole /wp-json/wc/v2/orders?sk=xxxx xxxx&ck=xxxxxx

    Pero siempre me retorna 401, creo haber configurado todo, y leí por ahí que en enlaces permanente hay que modificar algo? Yo lo tengo por defecto con URL amigable que antepone producto/nombre

    • Jhon Marreros Guzmán

      25 enero, 2020

      Hola, el error 401 es de autorización, entiendo que todas las claves que usas son correctas, prueba subir tu WordPress a un servidor, usa un servidor que este configurado para WordPress y prueba allí ya que podría ser alguna configuración a nivel de servidor.

      Saludos.

  16. Silvio

    20 marzo, 2020

    Muy buen día desde Argentina Jhon, Como puedo hacer a extender el API de wooocommerce para agregar tanto los metodos post y get mis campos personalizados de productos, estuve tratando con el hook woocommerce_api_loaded pero por lo que entiendo esta deprecado en las nuevas versiones y no me funciono, no se como inicializar de forma correcta una clase para extender WC_API_Resource.
    Muchas gracias Silvio.

    • Jhon Marreros Guzmán

      21 marzo, 2020

      Hola, tendrías que agregar nuevos endpoints, por ejemplo revisa este artículo de referencia en donde se agrega endpoints a la api de WordPress: https://decodecms.com/agregar-endpoints-a-la-api-rest-de-wordpress/ , espero hacer pronto un artículo explicando lo mismo para WooCommerce.

  17. BOLIVAR ANDRES ANDRADE SOLORZANO

    18 junio, 2020

    Hola. estoy usando el plugin de wcvendors para crear multiples vendedores como puedo acceder a estos datos ya que estoy haciendo una aplicación movil y necesito listar las tiendas que tienen woocommerce

    • Jhon Marreros Guzmán

      19 junio, 2020

      Hola, consulta con los desarrolladores del plugin, es posible que ya tengan lo que comentas, o pueden darte alguna idea de cómo hacerlo.

  18. Andrey Zamora

    2 julio, 2020

    Hola, ¿cómo puedo hacer ese mismo request sin instalar el paquete auttomatic/woocommerce? Es decir, lo más “php nativo” posible. Gracias por el tutorial

    • Jhon Marreros Guzmán

      2 julio, 2020

      Hola, no he revisado eso, sin embargo revisa los archivos que te descarga el paquete auttomatic/woocommerce y realiza tu propio código en base a esa lógica.

  19. Claudio Saavedra

    11 julio, 2020

    Estimado, estoy haciendo la prueba y tengo un error 500 he copiado exactamete igual el codigo y no resulta, lo probe en otro sitio y no tengo problemas

    • Jhon Marreros Guzmán

      11 julio, 2020

      Hola, si se genera un error 500 debería quedar un registro en tu hosting de ese error, posiblemente en algún archivo error_log, allí deberías tener más detalle para tener una pista de que esta fallando. Saludos.

  20. Luis

    1 agosto, 2020

    Hola, excelente aporte, gracias. Todo funciona ok. Sin embargo, tengo una API que contiene 6000 productos, tengo entendido que la api solo procesa de a 100 en batch, tardando aprox. 5mins.. los 6mil productos tardaría demasiado, hay alguna configuracion o otro metodo que no demorte tanto?

    • Jhon Marreros Guzmán

      3 agosto, 2020

      Hola,
      En el soporte de WooCommerce no comentan nada sobre un límite, salvo sea un límite a nivel de servidor, https://wordpress.org/support/topic/rest-api-max-limit-of-products-in-update-call/ (aunque si que es posible que exista el límite pero que no este documentado)

      Sin embargo, siempre es preferible, efectivamente limitar el envío de productos a actualizar, podrías evaluar tener un control de los productos actualizados y luego programar un cron de manera que se pueda ejecutar la tarea de actualización sin que tu estes pendiente.

  21. Miguel

    7 agosto, 2020

    El conector MWSConnect, que se conecta a cualquier origen de datos (excel, csv, oracle, sql server, xml, etc), usa las API de WooCommerce para la creación de productos, categorías y marcas y para la sincronización de stocks y precios de forma masiva. Por si alguien le pudiera interesar conocerlo con más detalles.
    Saludos

  22. Luis Rivas

    1 septiembre, 2020

    Muchas gracias por tu aporte, realmente excelente.

    estoy teniendo el siguiente problema:

    ➜ Obteniendo datos origen …
    ➜ Obteniendo los ids de los productos…
    PHP Fatal error: Uncaught Automattic\WooCommerce\HttpClient\HttpClientException: JSON ERROR: Syntax error in /home/nic/Desarrollo/lrivas/detodito/stock/vendor/automattic/woocommerce/src/WooCommerce/HttpClient/HttpClient.php:378
    Stack trace:

    • Jhon Marreros Guzmán

      2 septiembre, 2020

      Hola, según el mensaje indica un error de sintaxis, prueba con otras versiones de PHP, prueba a partir de las 7.2 por ejemplo. Es posible también que la implementación de tu código tenga errores, revisa bien el video y el código para descartar esto.

  23. Ronald

    29 septiembre, 2020

    Hola amigo, tengo este problema y no he hallado la solución, podrías ayudarme. Un saludo!!

    Fatal error: Uncaught Automattic\WooCommerce\HttpClient\HttpClientException: cURL Error: Couldn’t resolve host.

    • Jhon Marreros Guzmán

      2 octubre, 2020

      Hola, puede que sea un problema de configuración del servidor. De ser posible prueba con otro server.

  24. Geomar

    29 octubre, 2020

    Hola una pregunta o una información como haría para integrar una API de venta de recargas telefónicas a mi web y con que plugin se puede hacer

    • Jhon Marreros Guzmán

      30 octubre, 2020

      Hola, creo que lo que planteas es algo personalizado, no hay un plugin genérico para esto.

  25. Mike

    27 noviembre, 2020

    Como puedo hacer si la aplicación externa tiene contraseña?
    En que parte del código se la debo poner?

    • Jhon Marreros Guzmán

      3 diciembre, 2020

      Si es una API de origen debería estar en su documentación

  26. christian

    21 diciembre, 2020

    hola tengo una consulta, resulta que quiero realizar esta consulta pero a la inversa, primero que nada obtener todos los productos que tengo en woocommerce lo cual puedo realizar con esta linea = “print_r($woocommerce->get(‘products’));” pero no necesito todos los atributos, solo me interesa el sku, nombre, precio, y stock.
    como podria hacerlo?

    • Jhon Marreros Guzmán

      22 diciembre, 2020

      Hola, tal como lo planteas, posiblemente tengas que hacer un endpoint personalizado con sólo los datos que requieres, revisa: https://decodecms.com/agregar-datos-a-los-endpoints-de-la-api-de-woocommerce/

  27. Walter

    14 marzo, 2023

    Buenas,

    Necesito conectar mi Woocommerce con un ‘Web Services’ de una aplicación externa. Serviría para enviar datos desde el Woocommerce a esta aplicación externa.
    Entiendo que primero debo activar la API Rest de Woocommerce. ¿Cierto?

    Mi pregunta es si luego de activar la API puedo realizar la conexión con el «web service» usando los hooks disponibles de woocommerce. Me refiero a hooks que podrían poner, por ejemplo, en functions.php

    ¿Conoces algún tutorial (puede ser inglés también) para todo lo que se debe hacer luego de la creación del API?
    Muchas gracias.

    • Jhon Marreros Guzmán

      16 marzo, 2023

      Hola, si quieres enviar datos desde WooCommerce a un servicio remoto no necesitas activar la API; si quieres leer desde un servicio remoto los datos de WooCommerce, en ese caso si necesitas activar su API. Lo usual es lo segundo, es decir que desde un servicio externo se lea los datos de WooCommerce cada X tiempo. Si tienes dudas sobre esto mejor escríbeme a través del formulario de contacto. https://decodecms.com/contacto

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad SEO social woocommerce

Populares

Mostrar la fecha de actualización en las entradas de WordPress

Agregar super administrador a multisitio de WordPress

URL para agregar varios productos al carrito de WooCommerce

CRUD en WordPress sin plugins

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados