Saltar al contenido principal
Escrito por Javier

Un panel de control personalizado con la API de WooCommerce para gestionar mejor tu tienda online

Gracias a la API de WooCommerce y webhooks es posible crear una aplicación web con Laravel y Livewire para crear paneles de control más rápidos, visuales y orientados a productividad.

WooCommerce es la solución líder en España para crear tiendas online. Para muchos proyectos que arrancan su funcionalidad es suficiente: Gestiona catálogo, carrito, checkout, pagos con tarjeta, pedidos, clientes, cupones descuentos, impuestos, envíos, emails transaccionales y un ecosistema enorme de extensiones que facilitan cuestiones como facturación o conexión con transportistas. ¡No está nada mal!

Pero… a poco que uno exprima su tienda online y tenga ventas se encuentra con una de sus debilidades: WooCommerce gestiona bastante bien la operativa de venta online, pero la gestión del día a día desde el panel de administrador de WordPress es lentaaaaa y poco clara.

El flujo de trabajo con WooCommerce está basado en el genérico panel de WordPress. No es una herramienta ágil y tampoco ofrece muchas opciones para personalizar la experiencia.

De aquí viene la idea. ¿Por qué no mejorar WooCommerce fuera de WooCommerce? La idea es mantener WooCommerce como motor e-commerce y construir un panel de control con herramientas potentes como Laravel y Livewire para personalizar y mejorar el resto.

El panel genérico WooCommerce para los productos
WooCommerce usa la misma funcionalidad que las entradas para gestionar los productos

Objetivo: Dejar que WooCommerce haga lo que sabe hacer y mejorar el resto.

Nadie quiere reinventar la rueda. WooCommerce hace un gran trabajo en lo suyo y para muchos proyectos es una gran solución. La idea consiste en que WooCommerce sea la fuente de la verdad. Nada de duplicar datos. Gracias a la API de WooCommerce y webhooks, sincronizaremos lo que nos interese y crearemos un cuadro de mando personalizado más útil y amigable.

Esta solución nos permite aprovechar lo mejor de los dos mundos: la potencia de WooCommerce como tienda online y la flexibilidad de una aplicación a medida para la operativa interna. Aquí es importante destacar que la aplicación no sólo consume datos. Gracias a la API de WooCommerce escribe y actualiza información.

Por ahora se me ocurren algunas ideas para esta potencial aplicación:

  • Crear un cuadro de mando visual con los datos más relevantes.
  • Información actualizada de pedidos (para hoy o pendientes).
  • Creación manual de pedidos para clientes registrados.
  • Informe de pedidos en periodo, con atribuciones y formas de pago.
  • Informe de productos sin stock o stock bajo.
  • Mostrar los productos más vendidos en un periodo de tiempo.
  • Mostrar los productos con fecha de última venta y unidades totales.
Un panel de control personalizado con los datos obtenidos con la API de WooCommerce en Laravel
Gracias a la API de WooCommerce obtenemos los datos para usarlos en una aplicación a medida.

Ventajas de crear un panel de control externo a WooCommerce

A riesgo de duplicar funcionalidades ¿dónde está el beneficio de crear una aplicacion web sobre WooCommerce? A fin de cuentas si los datos están en WooCommerce, una extensión o plugin de WordPress sería lo más sensato. Pero yo creo que las ventajas superan los inconvenientes. En mi opinión las principales ventajas son:

  • Personalizar el flujo de trabajo según las necesidades específicas. Aunque la mayoria de tiendas online se parecen, en los detalles siempre hay diferencias.
  • Mejorar la presentación de los datos. El panel nativo de WooCommerce no presenta la información de forma moderna, con filtros y búsquedas rápidas. También podemos crear gráficos y dashboards más visuales.
  • Agrega funciones personalizadas no existentes. Es posible crear nuevas funcionalidades que no existen en WooCommerce. Mi idea nace de la necesidad de crear presupuestos con un estilo de TPV con mensajería incluida. Las posibilidades son muchas si gestionas tu catálogo de productos o servicios en WooCommerce.
  • Productividad para el día a día El panel de WooCommerce no está pensado para un trabajo fluido y visual. La velocidad y productividad que da un panel personalizado es imbatible.

Desventajas de crear un panel de control externo a WooCommerce

Como comentaba antes, el principal riesgo está en duplicar funcionalidades pero también incluiría:

  • Tiempo de desarrollo. Aunque hagas una versión con funciones comunes, al final hay que crear las funciones personalizadas. Eso siempre consume tiempo y recursos.
  • Retos de sincronización Conciliar datos entre WooCommerce y Laravel no es trivial. Necesitas una aplicación que evite duplicados y que asegure que los trabajos concluyen, no se pisan o que simplemente se ejecuten.
  • Mapear los datos Necesitas conciliar los datos entre la estructura interna de WooCommerce y la de tu base de datos.
  • Limites en la API WooCommerce Hay que conocer bien lo que permite la API, su estructura y las limitaciones, que no son tan evidentes hasta que se prueban.
  • Dificultades del tiempo real. Aunque la aplicación sea muy rápida en la interacción con los datos, hay que ajustar muchas variables si necesitas tiempo real.
Panel de administración personalizado WooCommerce para generar pedidos
Ejemplo de personalización para crear un panel de pedidos manuales con datos de WooCommerce

Limitaciones de la API de WooCommerce como fuente de datos

Como comentaba anteriormente trabajar con la API de WooCommerce tiene sus limitaciones. Una tentación habitual es consultar directamente la API de WooCommerce cada vez que alguien abre una pantalla. Puede funcionar en una demo. Pero no es una buena base para un panel profesional y mucho menos con un tamaño medio o grande.

Un panel útil necesita velocidad, estabilidad y confianza. Por eso es necesario sincronizar los datos importantes en una base de datos local y trabajar desde ahí. Al final podríamos acabar con un panel tan lento y poco útil como el admin que queríamos mejorar.

La sincronización de los datos es la parte crítica de la aplicación

Si WooCommerce es la fuente de la verdad y nuestra aplicación trabaja con una base de datos local, la sincronización es la parte más crítica de esta arquitectura. Sincronizar no es importar y olvidarse. El objetivo es mantener la consistencia de los datos en todo momento.

Una arquitectura razonable para este tipo de solución debería manejar estos elementos:

  • Cliente API para WooCommerce.
  • Webhooks para recibir cambios casi en tiempo real.
  • Jobs de Laravel para sincronizar recursos.
  • Colas para procesar tareas sin bloquear la interfaz.
  • Base de datos local normalizada.
  • Cursores de sincronización por recurso.
  • Reconciliación periódica mediante polling.
  • Logs y estados de sincronización.
  • Componentes Livewire para la presentación.

Primeras impresiones de la prueba

Por otra la aplicación es una “prueba de concepto” pero mis primeras impresiones son muy positivas. WooCommerce forma parte del día a día de muchas empresas y profesionales que dedican mucho tiempo a gestionarlo desde su panel de control. La potencia de Laravel y Livewire puede añadir una alta capa de productividad con mucha posibilidades de personalización.

Javier Archeni

Si estás leyendo esto porque te preguntas cómo encaja la tecnología en tu proyecto web, o porque necesitas a alguien con criterio técnico que construya, mantenga o mejore tu sitio, hablemos sin compromiso. Llevo 15 años en esto y te ayudaré a ver con claridad qué necesitas y qué no.

WhatsApp