Gestionar una tienda online es caro, y los propietarios a menudo tienen que ocuparse de muchos procesos manuales. La API REST de WooCommerce simplifica este flujo de trabajo, permitiéndote controlar plataformas de comercio electrónico y gestionar y escalar tiendas WooCommerce mediante programación.

Realizar integraciones, automatizaciones y ampliar las capacidades de tu tienda online son operaciones fluidas con la API REST de WooCommerce. Ahorras recursos y tiempo, que puedes utilizar para agilizar aún más tus procesos. Esto también te permite personalizar el aspecto de tu tienda con aplicaciones externas flexibles.

Este artículo te ofrece una comprensión completa de la API REST de WooCommerce, que te permite automatizar y mejorar mediante programación tus operaciones de comercio electrónico. Proporciona ideas prácticas, casos de uso y ejemplos de código para facilitar la integración y personalización sin problemas de las tiendas WooCommerce.

Requisitos previos

Para empezar con la API REST de WooCommerce, debes utilizar:

  • WooCommerce versión 3.5 o superior.
  • WordPress versión 4.4 o superior.
  • Postman o Insomnia para pruebas e interacción con la API.

Empezar con la API REST de WooCommerce

Para empezar, necesitas crear un sitio de WordPress y luego generar las credenciales de la API dentro de WooCommerce.

Crear un sitio de WordPress con Kinsta

Si no tienes un sitio de WordPress, puedes crear uno fácilmente desde tu panel MyKinsta.

  1. Accede a tu cuenta MyKinsta y haz clic en Sitios WordPress en la barra lateral izquierda.
  2. En el menú desplegable Añadir sitio, selecciona la opción Crear nuevo sitio y pasa a la página siguiente, donde puedes elegir la opción Instalar WordPress y hacer clic en Continuar.
  3. Introduce el nombre de tu sitio y la ubicación del centro de datos en Opciones del sitio y haz clic en Continuar.
  4. En la siguiente pestaña, introduce el título de tu sitio y las credenciales de administrador. Selecciona un idioma y marca la casilla Instalar WooCommerce para instalar el plugin WooCommerce.

    Crea un sitio con MyKinsta e instala WooCommerce
    Crear un sitio WordPress e instalar WooCommerce.

  5. Haz clic en Continuar. Esto inicia la creación de tu sitio y envía una notificación a tu correo electrónico de administrador de WordPress una vez que se haya completado. Asegúrate de guardar tu nombre de usuario y contraseña de administrador de WordPress en algún lugar seguro.

Generar credenciales API en WooCommerce

Para generar tus credenciales API de WooCommerce, sigue estos pasos:

  1. Accede a tu panel de control de WordPress, selecciona Plugins > Plugins instalados en la barra lateral y activa el plugin WooCommerce.
  2. Tras activar el plugin, selecciona WooCommerce > Configuración. A continuación, haz clic en la pestaña Avanzado para acceder a la página de configuración avanzada de WooCommerce.
  3. A continuación, haz clic en API REST.

    La ventana de configuración de WooCommerce
    Página de credenciales de la clave API.

  4. Haz clic en Crear una Clave API o en Añadir Clave para generar una clave API.
  5. A continuación, se te pedirá que introduzcas los detalles de la Clave. Estos son la descripción, el usuario y los permisos. Introduce la descripción de tu clave, cambia el usuario si es necesario y selecciona Lectura/Escritura para los permisos.

    La ventana Detalles de la Clave. Se añaden la Descripción, el usuario y los Permisos
    Generar credenciales de clave API.

  6. Haz clic en Generar Clave API. Con las claves API generadas, podrás acceder y gestionar los datos de tu tienda mediante programación. Toma nota de tu clave de cliente y la secreta, ya que los utilizarás en la siguiente sección para hacer peticiones a la API.

    La ventana de detalles de la Clave muestra un mensaje: Clave API generada correctamente. Asegúrate de copiar ahora tus nuevas claves, ya que la clave secreta se ocultará cuando abandones esta página.
    Credenciales de la clave API generada.

Comprender la arquitectura de la API REST de WooCommerce

La API de WooCommerce se basa en la arquitectura REST. Esto te permite leer y realizar operaciones de escritura en los datos de WooCommerce, como pedidos, productos y clientes, enviando solicitudes a través de los métodos apropiados (GET, POST, PUT, DELETE) al endpoint.

Un endpoint consta de los métodos de solicitud junto con una URL estándar. Con un endpoint, puedes utilizar la herramienta que elijas (Postman o Insomnia) para acceder a diferentes datos almacenados.

Obtener una lista de productos

Antes de obtener la lista de productos, asegúrate de que has añadido algunos a tu tienda. Debes cambiar la estructura del permalink por otra que no sea Simple.

Haz clic en Ajustes > Enlaces permanentes en la barra lateral y cambia la estructura del enlace permanente. Si no realizas este cambio, tu endpoint de URL estándar no funcionará como debería. Haz clic en Guardar cambios.

A continuación, abre Postman y añade una nueva solicitud. En la sección URL, utiliza https://<yourdomain>/wp-json/wc/v3/products. Asegúrate de sustituir <yourdomain> por el dominio de tu sitio de WooCommerce.

En la pestaña de autorización, selecciona Autenticación Básica e introduce tu clave de consumidor como Nombre de Usuario y tu clave secreta de cliente como Contraseña. Debes añadir esta autorización a cada solicitud que hagas a tu API REST de WooCommerce. Envía la solicitud, y deberías recibir una lista de todos los productos de tu tienda.

Enviar una solicitud GET en postman con autenticación básica resaltada
Obteniendo una lista de productos en Postman.

Gestionar productos a través de la API REST

El objeto producto tiene una lista de atributos que facilitan la agrupación de productos, la gestión de existencias y la fijación de precios, todo mediante programación.

Supongamos que quieres añadir un nuevo producto a un grupo de productos que has creado — todo lo que necesitas es el ID del grupo de productos en el atributo grouped_products.

Para gestionar las existencias, utiliza los atributos manage_stock y stock_status, que se establecen en true o false y instock, onbackorder y outofstock respectivamente.

Veamos cómo puedes añadir y actualizar un detalle de producto existente.

Añadir producto con la API de WooCommerce

  1. En Postman, añade una nueva solicitud y cambia el método de solicitud a POST. Reutiliza la URL del endpoint utilizada en la sección anterior. Haz clic en la pestaña Body (Cuerpo) , selecciona raw (sin procesar) y elige JSON como formato del cuerpo. El payload JSON incluye el nombre del producto, el tipo (simple, variable o agrupado), la descripción y la descripción breve. También tiene categorías, etiquetas e imágenes que puedes añadir según necesites.
    {
     "name": "iPhone 15 Pro Max",
     "type": "simple",
     "description": "",
     "short_description": "",
     "categories": [
     ],
     "tags": [],
     "images": []
    }
  2. Ejecuta la solicitud. Si el producto se crea correctamente, deberías recibir un objeto producto como respuesta. Toma nota del ID del producto, ya que lo necesitarás en la siguiente sección.

    Envía una petición POST en postman para crear un nuevo producto
    Crear un producto.

Editar un producto con la API de WooCommerce

Vamos a editar el registro que acabas de crear.

  1. En la pestaña Body (cuerpo) , añade este cuerpo JSON:
    {
      "name": "iPhone 15 Pro"
    }

    Como sólo estás actualizando el campo name, no necesitas incluir otros atributos. En este caso, cámbialo por «iPhone 15 Pro». La URL del endpoint debe ser https://yourdomain/wp-json/wc/v3/products/<id>.

  2. Sustituye id por el ID del producto que has creado en el apartado anterior. No olvides cambiar el método de solicitud a PUT. Ejecuta la solicitud, y deberías recibir un objeto producto como respuesta. Puedes comprobar el nombre del producto en la respuesta para confirmar que se ha actualizado correctamente.

    Enviar una solicitud PUT para editar la información de un producto
    Editar un producto.

Gestión de pedidos con la API REST

La API REST de WooCommerce facilita la automatización del procesamiento de pedidos al permitir la recuperación de pedidos y la actualización de estados de pedidos sin problemas. Te permite recuperar pedidos mediante programación, filtrarlos en función de varios criterios como la fecha, el estado o el cliente y, a continuación, procesarlos eficazmente.

Esto incluye la actualización de los estados de los pedidos para reflejar las distintas fases de cumplimiento o procesamiento. A continuación, la API REST de WooCommerce garantiza un seguimiento y una comunicación precisos con los clientes. Además, puedes gestionar los reembolsos a través de la API, lo que incluye gestionar las solicitudes de reembolso, procesar los reembolsos automáticamente y actualizar los estados de los pedidos (después de los reembolsos).

Veamos cómo puedes obtener pedidos recientes y actualizar el estado de un pedido a «completado»

Obtener pedidos recientes con la API de WooCommerce

  1. En Postman, añade una nueva solicitud para obtener pedidos mediante una solicitud GET. La URL del endpoint debe ser la siguiente
    https:///wp-json/wc/v3/orders
  2. En la pestaña Parámetros , introduce como clave after y como valor la fecha a partir de la cual se crearon tus pedidos. En este caso, utiliza 2024-03-08T00:00:00. Si lo deseas, puedes modificar esta fecha. Esto te permite filtrar tus pedidos a sólo aquellos posteriores a una fecha determinada. Deja los demás ajustes de Postman por defecto.
  3. Asegúrate de que has realizado algunos pedidos en tu tienda WooCommerce para evitar que te devuelva una lista vacía. Ejecuta la solicitud, y deberías obtener una lista de todos los pedidos realizados en tu tienda que coincidan con los criterios especificados.

    La ventana de Postman muestra la solicitud GET. En la parte superior aparece GET con el endpoint URL. Debajo está activa la pestaña Parámetros con las entradas after y 2024-03-08T00:00:00 marcadas y resaltadas. Debajo está la pestaña Cuerpo activa devolviendo un array de JSONs.
    Obtención de pedidos recientes a partir de una fecha determinada.

Actualizar el estado de los pedidos

Para actualizar el estado de tu pedido, toma el ID de un pedido que ya hayas realizado. Añade una nueva solicitud en Postman y cambia su solicitud a PUT. Utiliza este endpoint para una actualización: https://yourdomain/wp-json/wc/v3/orders/<existing-order-id>. En la pestaña Cuerpo , añade este cuerpo JSON:

{
  "status": "completed"
}

Ejecuta la solicitud, y deberías recibir una respuesta con el pedido marcado como completado.

La ventana de Postman muestra la solicitud PUT. En la parte resaltada hay un PUT con el endpoint URL. Debajo está activa la pestaña Cuerpo con la opción raw marcada y el desplegable JSON seleccionado
Actualizar el estado del pedido.

Gestión y engagement de clientes

A través de la API REST de WooCommerce, las empresas pueden crear eficientemente nuevos perfiles de cliente, editar los detalles de los clientes existentes y recuperar información completa, como historiales de compra y preferencias.

Analizando esta información, pueden adaptar estrategias de marketing personalizadas, ofreciendo promociones específicas, recomendaciones de productos y recompensas de fidelidad basadas en comportamientos de compra individuales.

Este nivel de gestión de los datos de los clientes permite a las empresas establecer relaciones más sólidas con los clientes, aumentar su satisfacción e impulsar la repetición de las compras.

Añadir un cliente con la API de WooCommerce

  1. Envía una solicitud POST a esta URL de endpoint: https://<yourdomain>/wp-json/wc/v3/customers. No olvides incluir la autorización como hiciste anteriormente.
  2. En la pestaña Cuerpo , utiliza este objeto JSON para crear un cliente:
    {
      "email": "[email protected]",
      "first_name": "Brian",
      "last_name": "Abraham",
      "role": "customer",
      "username": "briann.abraham",
      "billing": {
        "first_name": "Brian",
        "last_name": "Abraham",
        "company": "",
        "address_1": "969 Market",
        "address_2": "",
        "city": "San Francisco",
        "state": "CA",
        "postcode": "94103",
        "country": "US",
        "email": "[email protected]",
        "phone": "(555) 555-5555"
      },
      "shipping": {
        "first_name": "Brian",
        "last_name": "Abraham",
        "company": "",
        "address_1": "969 Market",
        "address_2": "",
        "city": "San Francisco",
        "state": "CA",
        "postcode": "94103",
        "country": "US"
      }
    }

    El objeto JSON contiene detalles básicos del cliente, como correo electrónico, nombre, rol y nombre de usuario. También proporciona información de facturación y envío, como la dirección, la ubicación y el número de teléfono del cliente.

  3. Ejecuta la solicitud, y deberías recibir una respuesta que contenga el objeto cliente. Recuerda el ID de cliente, que utilizarás en la siguiente sección para recuperar un cliente.

Recuperar un cliente por ID con la API de WooCommerce

Vamos a recuperar ese usuario que acabas de crear a través de su ID.

  1. Crea una nueva solicitud con el método de solicitud GET .
  2. Utiliza la misma URL del endpoint, https://<yourdomain>/wp-json/wc/v3/customers/<existing-customer-id> y añade el ID del cliente que quieres recuperar.

Casos de uso avanzados de la API REST de WooCommerce

Aparte de gestionar los recursos de la tienda, puedes utilizar la API REST de WooCommerce para otras tareas complejas, como la integración con CRM, la automatización de la gestión de inventarios y las analíticas e informes personalizados.

La integración de tu tienda WooCommerce en el CRM de tu elección mediante la API REST garantiza que cada vez que se añada un cliente, se refleje instantáneamente en tu panel de CRM como un cliente potencial. Esto facilita la gestión de la sincronización de la información de los clientes y los historiales de pedidos.

Las API REST también permiten una gestión automatizada del inventario. Al integrar la gestión de tu inventario externo, puedes obtener visibilidad en tiempo real de las existencias y la disponibilidad de los productos. Esto también se aplica a los informes y análisis personalizados.

Con la API REST de WooCommerce, puedes crear funciones de elaboración de informes que te proporcionen una visión general, ayudándote en la toma de decisiones, la identificación de tendencias y las previsiones.

Aquí tienes un fragmento de código para sincronizar los datos de clientes de WooCommerce con una plataforma CRM:

<?php
require __DIR__ . '/vendor/autoload.php';

use Automattic\WooCommerce\Client;

$woocommerce = new Client(
  'https://', // Your store URL
  'consumer_key', // Your consumer key
  'consumer_secret', // Your consumer secret
    [
      'version' => 'wc/v3' // WooCommerce WP REST API version
    ]
);

// CRM API endpoint and key
$crm_api_url = 'https://your-crm-api-url/api';
$crm_api_key = 'YOUR_CRM_API_KEY';

try {
// fetch customers from woocommerce store
  $customers = $woocommerce->get('customers');

  // Initialize cURL
  $ch = curl_init();

  // Check if cURL initialization succeeded
  if ($ch === false) {
    throw new Exception('Failed to initialize cURL');
  }

  foreach ($customers as $customer) {
    $crm_customer_data = array(
      'first_name' => $customer->first_name,
      'last_name' => $customer->last_name,
      'email' => $customer->email,
      // Other fields
    );

    // cURL options
    curl_setopt($ch, CURLOPT_URL, $crm_api_url . '/customers');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($crm_customer_data));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Authorization: Bearer ' . $crm_api_key,
      'Content-Type: application/json',
    ));

    // Execute cURL request
    $crm_response = curl_exec($ch);

    // Check for cURL errors
    if ($crm_response === false) {
      throw new Exception('cURL error: ' . curl_error($ch));
    }

    // Check HTTP status code
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($http_code !== 200) {
      throw new Exception('Failed to sync customer data with CRM: ' . $http_code);
    }

    echo 'Customer data synced with CRM successfully.';
  }

  curl_close($ch);

} catch (Exception $e) {
  echo 'Error: ' . $e->getMessage();
}

Se trata de un fragmento de código PHP que, en primer lugar, establece una conexión con la API REST de WooCommerce y, a continuación, recupera los clientes de la tienda WooCommerce. Finalmente, los envía al CRM utilizando cURL. El código incorpora la gestión de errores para gestionar los fallos de flujo. Utiliza una biblioteca PHP llamada automattic/woocommerce, que puedes instalar utilizando Composer.

El CRM utilizado aquí es a efectos de demostración para mostrarte un enfoque general para sincronizar los datos de tus clientes con cualquier CRM.

Resumen

La API REST de WooCommerce te permite gestionar mediante programación los datos de la tienda, mejorar la experiencia de comercio electrónico y ampliar la funcionalidad de tu tienda online. Esta potente herramienta transforma una configuración básica de WordPress en una plataforma más sofisticada.

Para empezar, instala el plugin de WooCommerce en tu aplicación de WordPress y explora la API REST utilizando los ejemplos proporcionados en este tutorial. Éstos te servirán de base para tus soluciones personalizadas.

La velocidad es crucial para los sitios de comercio electrónico; los tiempos de carga más rápidos mejoran la experiencia de compra. La API de WooCommerce permite realizar múltiples peticiones desde el frontend al backend de WordPress, lo que pone de manifiesto la importancia de un rendimiento óptimo del backend.

Elegir un proveedor de Alojamiento de WooCommerce de alta calidad, como Kinsta, es vital para el rendimiento de tu sitio web. Aprende a aumentar la velocidad de tu tienda de WooCommerce con nuestra guía completa.

¿Qué opinas de la API de WooCommerce? ¿La has utilizado antes? Compártela con nosotros en la sección de comentarios más abajo.

Jeremy Holcombe Kinsta

Content & Marketing Editor at Kinsta, WordPress Web Developer, and Content Writer. Outside of all things WordPress, I enjoy the beach, golf, and movies. I also have tall people problems ;).