WP Manifestindependent plugin directory
manifest / editor / tfm-ecommerce-components

TFM Ecommerce Components

Plugin de WordPress con bloques Gutenberg para Ecommerce - TFM UNIR 2024

★ 0stars

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/manuel3095/tfm-ecommerce-components/archive/refs/heads/main.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Plugin de WordPress con bloques nativos de Gutenberg para plataformas de Ecommerce basadas en WooCommerce.

Desarrollado como Trabajo de Fin de Máster en Diseño y Desarrollo de Interfaz de Usuario Web — Universidad Internacional de La Rioja (UNIR).

Autor: Manuel Jose Passo Pacheco
Director/a: Alejandra Zuleta Medina
Institución: Universidad Internacional de La Rioja (UNIR)


Descripción

Sistema de componentes interactivos reutilizables que implementa:

  • Bloques dinámicos nativos de Gutenberg (sin Page Builders)
  • Arquitectura basada en Atomic Design (Frost, 2016)
  • Design Tokens como CSS Custom Properties
  • Accesibilidad WCAG 2.1 nivel AA completa
  • Integración con API REST de WooCommerce
  • Rendimiento optimizado mediante carga condicional de assets

Componentes incluidos

1. Selector de Tallas (tfm-ecommerce/size-selector)

Componente interactivo para la selección de tallas en productos variables de WooCommerce.

Características:

  • Cuadrícula de botones con estados visuales diferenciados
  • Indicadores de disponibilidad de stock en tiempo real
  • Actualización dinámica del precio al seleccionar talla
  • Navegación completa por teclado (ARIA radiogroup)
  • Notificaciones accesibles mediante aria-live
  • Diseño responsive Mobile First
  • Soporte modo oscuro

Estados visuales del botón: | Estado | Descripción | |--------|-------------| | Disponible | Borde gris, fondo blanco | | Hover | Borde azul, fondo azul claro | | Seleccionado | Fondo azul (#0073aa), texto blanco | | Agotado | Fondo gris, texto gris, línea diagonal | | Foco (teclado) | Outline azul de 3px |

2. Selector de Colores (tfm-ecommerce/color-selector)

Componente interactivo de muestras de color para productos variables de WooCommerce.

Características:

  • Muestras circulares o cuadradas configurables
  • Mapa de colores personalizable desde el editor
  • Indicador de selección con marca de verificación
  • Stock en tiempo real por variante de color
  • Tooltips accesibles con nombre del color
  • Diseño responsive Mobile First

Requisitos del sistema

Requisito Versión mínima
WordPress 5.8 o superior
WooCommerce 5.0 o superior
PHP 7.4 o superior
Node.js 16.0 o superior (solo desarrollo)

Instalación

Opción A — Instalación manual desde GitHub

1. Descarga el repositorio como archivo ZIP:

# Clonar el repositorio
git clone https://github.com/manuel3095/tfm-ecommerce-components.git

2. Accede al panel de administración de WordPress.

3. Ve a Plugins → Añadir nuevo → Subir plugin.

4. Selecciona el archivo ZIP descargado y haz clic en Instalar ahora.

5. Activa el plugin desde Plugins → Plugins instalados.

Opción B — Instalación mediante FTP

1. Descarga o clona el repositorio en tu equipo local.

2. Sube la carpeta tfm-ecommerce-components al directorio: /wp-content/plugins/

3. Activa el plugin desde el panel de WordPress en Plugins → Plugins instalados.


Configuración y uso

Uso del Selector de Tallas

1. Abre el editor de WordPress (Gutenberg) en una página o producto.

2. Haz clic en el botón + para añadir un bloque nuevo.

3. Busca "Selector de Tallas TFM" en el buscador de bloques.

4. Inserta el bloque en la posición deseada de la página.

5. En el panel lateral derecho (Inspector de bloque) configura:

  • ID del producto WooCommerce: Introduce el ID numérico del producto variable. Puedes encontrarlo en WooCommerce → Productos → al pasar el cursor sobre el producto verás el ID.
  • Mostrar disponibilidad de stock: Activa o desactiva el indicador de stock.
  • Mostrar precio actualizado: Activa o desactiva la actualización dinámica del precio.
  • Estilo visual: Por defecto, Minimalista o Con borde.
  • Tamaño de botones: Pequeño, Mediano o Grande.
  • Columnas: Número de columnas en la cuadrícula (2-8).
  • Alineación: Izquierda, Centro o Derecha.
  • Etiqueta: Texto visible encima del selector.

6. Publica o actualiza la página para ver el componente en el frontend.

Uso del Selector de Colores

Los pasos son idénticos al Selector de Tallas. Busca "Selector de Colores TFM" en el buscador de bloques.

Configuración adicional del Selector de Colores:

  • Forma de las muestras: Circular, Cuadrada o Redondeada.
  • Tamaño de las muestras: Pequeño (36px), Mediano (44px) o Grande (56px).
  • Mostrar nombre del color: Activa el tooltip con el nombre del color.
  • Mapa de colores: Personaliza la asociación entre nombre de atributo y código hexadecimal de color.

Uso combinado con el carrito

Para que el cliente elija talla y color y añada la combinación al carrito, coloque los dos selectores del mismo producto junto al formulario de WooCommerce. La forma más sencilla es el bloque Producto individual de WooCommerce (Single Product):

1. Inserte el bloque Producto individual y elija el producto variable.

2. Dentro del bloque, añada Selector de Colores TFM y Selector de Tallas TFM con el mismo ID de producto.

3. Mantenga dentro del bloque el Formulario de añadir al carrito (Add to Cart with Options).

Desde la versión 1.2.0, el coordinador de producto del plugin:

  • combina la talla y el color elegidos y resuelve la variación exacta;
  • marca con borde discontinuo las opciones que no existen o están agotadas con la elección del otro selector; siguen siendo pulsables y, si la combinación no tiene stock, se libera el otro atributo y se avisa al usuario;
  • rellena los desplegables nativos de WooCommerce, que quedan ocultos y siguen siendo la fuente de verdad del carrito, de modo que «Añadir al carrito» añade la combinación elegida.

Tienda de prueba para las evaluaciones

La carpeta herramientas/tfm-tienda-prueba/ contiene un plugin auxiliar, independiente de este, que crea en un clic la tienda de demostración de las pruebas de usabilidad del TFM: el producto variable «Camiseta Algodón Orgánico» (tallas S, M, L y XL, colores Azul Marino, Blanco y Negro, talla S agotada), dos productos de relleno, la ficha de prueba con los bloques y una portada. Se instala como cualquier plugin (archivo tfm-tienda-prueba-1.0.0.zip de la release) y se usa en Herramientas → TFM: tienda de prueba. También admite WP-CLI: wp tfm-tienda crear y wp tfm-tienda eliminar.


Desarrollo local

Requisitos previos

  • LocalWP o cualquier entorno local de WordPress
  • Node.js 18 o superior
  • npm 9 o superior
  • WooCommerce instalado y activo

Configuración del entorno de desarrollo

1. Clona el repositorio en la carpeta de plugins de tu instalación local:

cd /ruta/a/tu/wordpress/wp-content/plugins/
git clone https://github.com/manuel3095/tfm-ecommerce-components.git
cd tfm-ecommerce-components

2. Instala las dependencias de Node.js:

npm install

3. Compila los assets en modo desarrollo con recarga automática:

npm run start

4. Para compilar en modo producción:

npm run build

Scripts disponibles

Script Descripción
npm run start Compilación en modo desarrollo con watch
npm run build Compilación optimizada para producción
npm run lint:js Análisis estático de JavaScript (WPCS)
npm run lint:css Análisis estático de CSS
npm run plugin-zip Genera el ZIP instalable del plugin

Arquitectura del sistema

tfm-ecommerce-components/
├── tfm-components.php            # Punto de entrada: constantes, carga de clases e inicialización
├── includes/
│   ├── class-blocks.php          # Registro de bloques y recursos; carga condicional con has_block()
│   ├── class-wc-integration.php  # Endpoints REST públicos tfm-ecommerce/v1 (variaciones y stock)
│   └── class-security.php        # Sanitización, escapado y verificación de nonces
├── blocks/
│   ├── size-selector/            # block.json, render.php (renderizado dinámico) y style.css
│   └── color-selector/           # block.json y render.php
├── src/                          # Código fuente React de los bloques (editor)
├── build/                        # Scripts del editor compilados con @wordpress/scripts
└── assets/
    ├── css/tokens.css            # Design Tokens (CSS Custom Properties)
    ├── css/components.css        # Estilos compartidos y del selector de colores
    ├── js/wc-api.js              # Fachada sobre la API REST del plugin (caché y reintentos)
    └── js/frontend.js            # Interactividad (patrones Strategy y Observer)

API REST del plugin

Método Ruta Descripción
GET /wp-json/tfm-ecommerce/v1/variations/{id} Variaciones de un producto variable (precio, stock, atributos). Pública, con caché de 1 h.
GET /wp-json/tfm-ecommerce/v1/stock/{id} Stock actual de una variación. Pública, sin caché.

Los endpoints son de solo lectura y exponen únicamente datos que ya son públicos en la ficha de producto.

Verificación

La versión 1.2.0 se ha verificado sobre WordPress 6.8.3 y WooCommerce 10.3.4:

  • Los dos bloques se registran y validan en el editor.
  • El frontend renderiza las tallas y colores, actualiza el precio, anuncia el stock y admite navegación por teclado.
  • Con los dos selectores y el formulario de WooCommerce en la misma página, la combinación elegida (por ejemplo, M + Azul Marino) es la que llega al carrito.
  • Las páginas sin bloques no cargan ningún recurso del plugin.
  • Lighthouse 12.8 (móvil, cinco ejecuciones) sobre la ficha de prueba: accesibilidad 100/100; rendimiento 61/100 frente a 60/100 en la misma ficha con los desplegables nativos de WooCommerce.

Licencia

GPL v2 o posterior. Consulta el archivo LICENSE.