Aprovechando una charla que he dado en la meetup de WordPress Zaragoza, voy a contar algunos detalles de la API REST de WooCommerce y algunos casos de uso.
Presente y futuro del comercio electrónico
Vivimos en un momento en constante crecimiento digital y a día de hoy no necesitamos mucho para desarrollar un negocio. En este artículo vamos a profundizar sobre WooCommerce y su arquitectura API REST además de cómo aprovecharnos de ella.
Lo primero que necesitamos es instalar WooCommerce, el plugin de gestión de comercio electrónico.
Además de trabajar con productos, podemos extender WooCommerce para gestionar desde formaciones o cursos, eventos y tickets, reservas, subastas, suscripciones, infoproductos o incluso crear un CRM.
Con WooCommerce crearemos una base da datos con información de calidad que podremos compartir con otros clientes a través de su API REST. En ella vamos a almacenar datos como: información de productos, campos personalizados, atributos, categorías, variaciones, etiquetas, información de pedidos, clientes, proveedores, stocks, pasarelas de pago, métodos de envío, estadísticas, informes, cupones, descuentos, reseñas y más.
API REST
La API REST de WooCommerce es la interfaz que permite la comunicación entre WooCommerce y otras aplicaciones o servicios externos.
Viene activada por defecto aunque también se puede desactivar siempre y cuando el proyecto lo requiera.
Localizaremos la sección de la API REST en WooCommerce/ajustes dentro de la pestaña avanzado. Además de poder crear nuevos clientes API, vamos a tener un listado de todos los clientes con sus respectivos permisos. Clientes como por ejemplo Klaviyo, Mailchimp, CRMS, etc.
Para crear un nuevo cliente hay que añadir una nueva clave API. Sin una clave API NO se puede consultar la información de la base de datos de WooCommerce.
Es importante indicarle los permisos que el cliente va a tener o estas dispuestos a ofrecerle. Hay 3 opciones «Lectura», «Escritura» y «Lectura y Escritura».
Cuando se crea una nueva clave API se obtiene tanto una clave de clientes con su clave secreta de cliente. Son dos códigos que hay que guardarlos porque una vez generados ya no se podrán consultar por seguridad.
¿Necesitas una tienda online a medida y profesional?
Soy experto en desarrollos de tiendas online personalizadas, haciendo funcionalidades a medida, fichas de producto potentes. Creo proyectos ultra rápidos y buenos para el SEO. ¡No dudes en preguntar por mis servicios!
Arquitectura de la API REST
La API REST de WooCommerce permite trabajar con una serie de métodos HTTP estándar como son (GET, POST, PUT, DELETE…). Con los que se van a poder consultar la información, añadir nuevo contenido, actualizar el contenido de la base de datos o incluso eliminarlo.
IMPORTANTE: Antes de realizar peticiones, configura en el WordPress unos enlaces permanentes distintos. Los que vienen predeterminados, NO funcionan.
Cuando se realiza una peticion, WooCommerce devolverá un archivo en formato JSON por defecto, un archivo con toda la información que le hemos solicitado a través de un endpoint (url parametrizada).
Es importante tener conocimientos para manipular la información en este formato JSON. Desde obtener el contenido, iterarlo, manipularlo, filtrarlo e incluso representar su contenido en cualquier parte de la web entre otras cosas. En este blog intento enseñar como hacer todo esto. Puedes consular algunos de mis otros tutoriales.
Otro formato de transferencia de datos que podemos utilizar con WooCommerce seria GraphQL. A diferencia de JSON con GraphQL vamos a realizar peticiones mas específicas, le indicaremos que información queremos que nos devuelva la petición ignorando el resto de información poco útil en algunas situaciones. GraphQL es una alternativa interesante si lo que buscamos es un rendimiento óptimo en las peticiones a la base de datos.
Existe un plugin muy interesante para WooCommerce llamado WooGraphQL el cual nos ayudará a perfeccionar estas peticiones de una forma muy simple gracias a la interfaz que presenta dentro del mismo WordPress. Para usar esta extensión también necesitarás instalar WPGraphQL.
Como hemos comentado antes en imprescindible otorgar a nuestros clientes una forma de autenticación mediante una clave API única. Para incluir las claves en el código podemos hacerlo mediante Autenticación Basic HTTP o Autenticación Oauth.
El siguiente snippet de código puede ayudarte a introducir las claves API y empezar a consumir el contenido.
<?php
// URL de la API de WooCommerce
$url = 'https://tu-sitio.com/wp-json/wc/v3/products';
// Credenciales de la API de WooCommerce
$consumer_key = 'tu-consumer-key';
$consumer_secret = 'tu-consumer-secret';
// Construir la cabecera de autenticación
$headers = array(
'Authorization: Basic ' . base64_encode($consumer_key . ':' . $consumer_secret)
);
// Inicializar cURL
$ch = curl_init();
// Establecer opciones de cURL
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Hacer la solicitud a la API de WooCommerce
$response = curl_exec($ch);
// Comprobar si hay errores
if(curl_errno($ch)) {
echo 'Error: ' . curl_error($ch);
}
// Cerrar la sesión cURL
curl_close($ch);
// Decodificar la respuesta JSON
$products = json_decode($response, true);
// Imprimir los productos
print_r($products);
?>
Ventajas
- Permite la interoperabilidad entre múltiplas plataformas y sistemas. Como puede ser servir contenido a un Prestashop, Magento, Shopify o desarrollo a medida.
- Crea interfaces personalizadas en base a los datos, métricas o comportamientos del usuario.
- Facilidad para escalar un proyecto y para añadir funcionalidades únicas.
- Flexibilidad en cuanto a tecnologías para el desarrollo de aplicaciones.
- Automatización de flujos y sincronización de datos sin esfuerzo.
- Facilidad de acceder a un contenido de terceros.
- Crear informes personalizados en base a los datos.
- Desarrollo ágil de aplicaciones móviles.
Inconvenientes
- Es un error pensar que trabajar con la API REST es simple, se necesitan tener conceptos de programación avanzados para tener el máximo control de las solicitudes y su contenido.
- Uno de los aspectos mas críticos es el riesgo de seguridad que puedes ocasionar, si no se configuran bien los accesos, si no se otorgan bien los permisos… podemos exponer datos confidenciales de los clientes, podemos otorgar permisos de escritura y que se puedan modificar esos datos por terceros o incluso poner en riesgo la información de la empresa.
Herramientas para consultar APIS
Con Postman o Insomnia vamos a poder simular consultas de APIs, configurar métodos de autenticación y añadirle todo tipo de parámetros a las consultas para conseguir los resultados que estamos buscando para cada momento o situación de la web.
En la primera captura podemos observar que introduciendo el endpoint para obtener los últimos 10 productos no estamos recibiendo nada de contenido JSON, esto es debido a que no le hemos indicado las claves API y por lo tanto no podemos acceder una base de datos sin tener permisos.
Para introducir las claves API tenemos que dirigirnos a la pestaña de autenticación, indicarle el método que queremos utilizar en este caso y el más común en WooCommerce es el Basic.
Nos aparecerán dos campos para añadir las claves API que hemos generado con anterioridad desde WooCommerce y si enviamos la petición, podrás detectar que ya empezamos a recibir información de los productos en este caso, u otra información si el endpoint que le ponemos es distinto.
Casos de uso (Oportunidades de negocio a través de la API REST)
Vamos a repasar alguno casos donde la API REST de WooCommerce puede ser una opción muy interesante. Enfoca cada caso dependiendo del rol que tengas (programador, marketing, empresario, propietario de un negocio…) y aprovecha alguna de estas ideas para alimentar las tuyas propias o para evolucionar tu negocio.
Por poner en contexto, en todos estos casos la base de datos principal va a ser la de WooCommerce y luego los clientes API o servicios externos pueden estar construidos en otros lenguajes de programación o en otras plataformas SAAS como (Shopify, Magento, Prestashop o incluso con desarrollos a medida)
PANELES DE PEDIDO EN RESTAURANTES DE COMIDA RÁPIDA: En establecimientos como McDonald´s exiten maquinas donde puedes realizar pedidos.
- Todos esos paneles pueden estar programados en un lenguaje de programación distinto a PHP y pueden estar conectados a un WooCommerce por la API REST.
- Desde un WooCommerce central se pueden gestionar todo, desde métodos de pago, precios individuales o packs (Menus), controlar stock que sea fácilmente cuantificable como pueden ser bebidas,
- Los paneles gestionan los pedidos en linea sobre WooCommerce
- Excluir productos cuando falten elementos. Falta el tomate, quitamos todos los packs que lleven tomate.
SUBASTAS DE PANELES DE PUBLICIDAD EN TIMES SQUARE: Imagina la gran manzana de Nueva York controlada por un solo WooCommerce mediante un sistema de subastas online.
- Control total y sincronización con cientos de paneles con tecnologías varias.
- Necesitarás añadir mas contenido para extender WooCommerce poniendo campos personalizados.
- Los paneles se subastan por días, horas, tamaño y ubicación.
- Introducir Cupones y Ofertas en espacios sin subastar.
INTERNET DE LAS COSAS (IOT): Electrodomésticos como las neveras inteligente donde se podrán integrar comercios para que puedas realizar los pedidos en linea directamente desde el propio aparato.
- Gestión de una aplicación integrada en electrodomésticos.
- Realizar una lista de la compra y lista de deseos.
- Conectada también a través de una app móvil.
ALMACEN CENTRALIZADO B2B: Gestiona todo un entramado de tiendas en linea y tísicas desde un único lugar.
- Control de stock total en una tienda online PRIVADA.
- Clientes o franquicias cada uno con sus tiendas online desarrolladas en distintos lenguajes de programación.
- Gestión de formulas para hacer descuentos por volumenes.
- Interfaz de fichas de producto avanzadas y super detalladas para consumir por los clientes.
- Stock de imágenes de productos actualizadas.
- Videos de los productos o servicios.
PUNTO DE VENTA (POS): Gestiona negocios con tienda online y tienda física desde un único lugar.
- Conecta el stock de ambas tiendas
- Ofrece los mismos cupones y ofertas en ambos sitios.
- Cambia los precios de forma unitaria.
- Integra un lector de códigos de barra para descontar stock en todos los sitios a la vez.
DASHBOARD DE ESTADÍSTICAS: Crea paneles personalizados de estadísticas, combinándolas e interpretándolas. A tener en cuenta:
- Utiliza la API REST de WooCommerce para obtener todos los datos.
- Conecta en el mismo dashboard datos obtenidos en un sitio online con los obtenidos en un sitio offline.
- Personaliza los dashboards para cada cliente de forma independiente.
RESEÑAS CONTRASTADAS: Se puede crear y gestionar un sistema de almacenamiento de reseñas contrastadas y verificadas. Necesitamos:
- Conectar con tiendas online para obtener sus productos y poder inegrar un sistema de valoración.
- Formularios de valoración
- Encuestas a clientes
- Automatizar tareas como el envío de email
¿Qué más podemos hacer con la API REST de WooCommerce?
- Podemos facilitar a nuestros clientes un formulario para añadir nuevos producto.
- Desarrolla una página de usuario para una intranet con datos de WooCommerce o con una interfaz generada en base a los datos. Es muy importante identificar estás páginas mediante un ID.
- Crea en el frontend interfaces avanzadas para gestionar los pedidos.
- Formulario en el frontend para añadir nuevos clientes o proveedores.
Espero que esta guía sobre la API REST de WooCommerce te sirva de ayuda para organizar y empezar a explotar la API de tu negocio. Saludos