Módulo Outlet para Magento 2 - Automatización de rebajas
- SKU
- M2-OUTLET
Descripción / Módulo Outlet para Magento 2 - Automatización de rebajas
Kowal Outlet Products es un módulo para Magento 2 que automatiza la gestión de productos outlet, productos en rebajas y finales de serie. La solución ayuda a mantener el catálogo ordenado, asignar productos a la categoría OUTLET, marcarlos con un atributo específico y eliminarlos del outlet cuando ya no deban mostrarse como oferta de rebajas.
El módulo se ha preparado pensando en tiendas en las que los productos outlet cambian de forma dinámica: algunos son productos simples individuales, otros son variantes de productos configurables y otros requieren la gestión de varias tiendas, varios websites y distintas configuraciones de precios.
Principal valor de negocio
En Magento estándar, la gestión del outlet suele requerir controlar manualmente varios elementos a la vez: categorías, estado del producto, precio especial, stock, variantes configurables y caché. En catálogos grandes, es fácil que se produzcan situaciones en las que un producto siga apareciendo en OUTLET aunque esté agotado, el producto padre configurable permanezca en la categoría sin variantes activas o el precio especial se restaure de forma no conforme con la configuración de la tienda.
Kowal Outlet Products ordena este proceso. El administrador puede añadir una lista de SKU al outlet y el módulo se encarga de asignarlos a las categorías adecuadas, establecer el atributo OUTLET, gestionar los parent configurables y desvincular posteriormente los productos de forma automática al finalizar la venta.
Funciones principales
- importación masiva de productos a OUTLET mediante una lista de SKU,
- asignación de productos a una o varias categorías outlet,
- compatibilidad con productos simples y variantes de productos configurables,
- marcado automático de productos con el atributo
sale, - asignación de parent configurables a OUTLET cuando sus variantes son outlet,
- desvinculación automática de productos de la categoría OUTLET tras agotarse o desactivarse el estado outlet,
- desvinculación del parent configurable cuando ninguna variante sigue siendo producto OUTLET,
- comprobación periódica de productos mediante cron,
- ejecución manual del recálculo desde la consola de Magento,
- actualización de índices y caché de productos y categorías,
- gestión de stock y backorders al finalizar las rebajas,
- backup y restauración de precios especiales,
- compatibilidad con configuraciones multistore y website scope para precios,
- marcas OUTLET junto a los swatches de variantes en la ficha de producto.
Cómo funciona el proceso OUTLET
El administrador selecciona las categorías outlet en la configuración del módulo. A continuación, desde el panel de administración puede pegar una lista de SKU y añadir productos a las rebajas. El módulo asigna los productos a la categoría OUTLET y establece el atributo sale.
Para productos configurables, el módulo actúa en dos niveles. Si la variante es outlet, el parent configurable también puede añadirse a la categoría OUTLET para que el cliente vea el producto en el listado. Cuando la variante se agota o deja de tener estado OUTLET, el módulo verifica si el parent todavía tiene alguna variante outlet activa. Si no es así, el parent se desvincula de OUTLET.
El cron del módulo comprueba periódicamente el estado de los productos. Cuando un producto ya no puede venderse, el módulo lo elimina de las categorías outlet, cambia el estado outlet y actualiza los datos en los índices y la caché. De este modo, el listado de la categoría OUTLET se mantiene actualizado sin trabajo manual del administrador.
Gestión de precios especiales
El módulo puede proteger los precios especiales frente a pérdidas durante el ciclo OUTLET. Al añadir un producto al outlet, el precio especial actual se copia a atributos técnicos. Al finalizar el outlet, el precio puede restaurarse o limpiarse, según la configuración.
El backup incluye:
special_price,special_from_date,special_to_date.
El módulo respeta el scope de precios de Magento. Si los precios son globales, actúa a nivel global. Si los precios están configurados por website, el módulo guarda y restaura los valores conforme a las store view predeterminadas de los websites. No realiza conversiones de moneda, porque Magento almacena los precios como valores base para el scope correspondiente y las monedas de la tienda se convierten mediante los mecanismos de Magento.
Multistore y multimoneda
Kowal Outlet Products puede trabajar en instalaciones Magento con varias store view y websites. Durante la importación, el administrador puede indicar los websites a los que debe asignarse el producto. La configuración del módulo está disponible a nivel default, website y store, lo que permite adaptar su funcionamiento a la estructura de la tienda.
En cuanto a los precios especiales, el módulo no multiplica ni convierte valores entre monedas. Conserva los importes guardados en Magento para el scope de precio adecuado. Esto permite evitar errores derivados de la conversión manual de tipos de cambio y deja la presentación de monedas en manos de los mecanismos estándar de Magento.
Ejemplo de uso
La tienda vende ropa y tiene una categoría OUTLET en la que muestra las últimas unidades de productos de colecciones anteriores. El administrador recibe una lista de SKU de variantes que deben pasar a rebajas, por ejemplo:
TSHIRT-BLACK-MTSHIRT-BLACK-LJACKET-NAVY-XLSHOES-WHITE-42Después de pegar la lista en el panel de importación, el módulo:
- marca los productos como OUTLET,
- los asigna a la categoría
OUTLET, - asigna los parent de productos configurables si sus variantes son outlet,
- guarda una copia de los precios especiales actuales,
- actualiza opcionalmente la configuración de stock,
- actualiza índices y caché.
El cliente ve los productos en la categoría OUTLET y las marcas junto a las variantes. Cuando se vende la última unidad de una variante, el cron del módulo detecta que el producto ya no es salable, lo elimina de OUTLET y actualiza el listado. Si se trataba de la última variante outlet de un producto configurable determinado, el parent también se elimina de la categoría OUTLET.
Para quién es este módulo
El módulo está destinado a tiendas Magento 2 que:
- mantienen una sección fija OUTLET o SALE,
- trabajan con frecuencia con finales de serie,
- tienen productos configurables con variantes en distintos estados de rebajas,
- quieren reducir el trabajo manual al actualizar categorías,
- necesitan controlar los precios especiales en un entorno multistore,
- quieren evitar productos desactualizados en los listados de categorías.
Elementos técnicos
- Nombre del paquete Composer:
kowal/module-outletproducts - Nombre del módulo Magento:
Kowal_OutletProducts - Comando CLI:
bin/magento kowal_outletproducts:generate - Panel de configuración:
Stores > Configuration > kowal > OUTLET Products - Panel de importación:
kowal > Upload Outlet Products - Atributos principales de producto:
sale,special_price_copy,special_from_date_copy,special_to_date_copy,special_price_copy_active
Resultado de la implementación
Tras implementar el módulo, la tienda obtiene un proceso coherente de gestión del outlet: los productos se asignan a las categorías adecuadas, las variantes y los parent se mantienen de forma lógica, los precios especiales quedan protegidos y los datos del catálogo se actualizan tras los cambios. Gracias a ello, los administradores pueden centrarse en seleccionar los productos para las rebajas, en lugar de limpiar manualmente categorías y caché.
More Information
| Conformidad con la plantilla | Luma / Blank, KOWAL |
|---|
Instrucciones de instalación del módulo
Instalación y configuración del módulo Kowal Outlet Products
Información básica
- Paquete Composer:
kowal/module-outletproducts - Módulo Magento:
Kowal_OutletProducts - Tipo de aplicación requerido: Magento 2
- Dependencia del paquete:
kowal/base - Comando CLI del módulo:
bin/magento kowal_outletproducts:generate
Instalación mediante Composer
Añade el repositorio del módulo:
Recibirás por correo electrónico los datos de acceso al repositorio Composer, es decir, el correo electrónico del cliente y el token de licencia, después de la compra. También están disponibles en el panel de cliente tras iniciar sesión en kowal.store. Sustituye TWOJ_EMAIL_KLIENTA por la dirección de correo electrónico de tu cuenta y TWOJ_TOKEN por el token recibido. Ejecuta los comandos en el directorio raíz de Magento.
composer config repositories.kowal composer https://repo.kowal.storeSi el repositorio es privado, configura el token de acceso:
composer config http-basic.repo.kowal.store 'TWOJ_EMAIL_KLIENTA' 'TWOJ_TOKEN'Instala el módulo:
composer require kowal/module-outletproductsActiva el módulo:
php bin/magento module:enable Kowal_OutletProductsRealiza la actualización de la base de datos:
php bin/magento setup:upgradeEn el entorno de producción, ejecuta la compilación DI y el deploy de recursos estáticos de acuerdo con el proceso de despliegue de la tienda:
php bin/magento setup:di:compilephp bin/magento setup:static-content:deployLimpia la cache:
php bin/magento cache:flushActualización de una instalación existente
Después de actualizar el módulo, ejecuta:
composer update kowal/module-outletproductsphp bin/magento setup:upgradephp bin/magento cache:flushSi la tienda funciona en production mode, realiza también los pasos estándar de despliegue:
php bin/magento setup:di:compilephp bin/magento setup:static-content:deploysetup:upgrade es obligatorio porque el módulo añade y actualiza atributos de producto utilizados para gestionar OUTLET y las copias de precios especiales.
Atributos de producto
El módulo añade o utiliza los siguientes atributos:
| Atributo | Significado |
|---|---|
sale | Marca el producto como OUTLET. |
special_price_copy | Copia del valor special_price anterior a la entrada del producto en OUTLET. |
special_from_date_copy | Copia de la fecha special_from_date. |
special_to_date_copy | Copia de la fecha special_to_date. |
special_price_copy_active | Marcador que informa de que se ha realizado la copia del precio especial. |
Configuración en el panel de administración
Ve a:
Stores > Configuration > kowal > OUTLET ProductsOpciones disponibles:
| Opción | Descripción |
|---|---|
Włącz moduł Outlet | Activa o desactiva el funcionamiento del módulo. |
Usuń ceny specjalne dla produktów po wyprzedaży | Define si, tras finalizar OUTLET, debe eliminarse el precio especial. Si la opción está desactivada, el módulo restaurará el precio desde la copia. |
Kategorie outletowe | Lista de categorías a las que se asignan los productos OUTLET y de las que posteriormente se eliminan automáticamente. |
Wyłącz zarządzanie stanem magazynowym po wyprzedaży | Permite desactivar manage_stock tras finalizar la liquidación. |
Włącz backorder po zakończeniu wyprzedaży outletowej | Permite activar backorder y marcar el producto como disponible tras finalizar la venta outlet. |
La configuración está disponible a nivel default, website y store. Las categorías OUTLET utilizadas por cron se toman de la configuración predeterminada.
Configuración de categorías OUTLET
- Crea en Magento una o varias categorías destinadas al outlet.
- Asegúrate de que las categorías estén activas y sean visibles en el menú o en el listing si deben estar disponibles para los clientes.
- En la configuración del módulo, selecciona todas las categorías outlet en el campo
Kategorie outletowe. - Guarda la configuración.
- Limpia la cache de Magento.
php bin/magento cache:flushImportación de productos a OUTLET
Ve al panel:
kowal > Upload Outlet ProductsEn el formulario:
- Pega la lista de SKU, un SKU por línea.
- Selecciona las categorías OUTLET.
- Opcionalmente, selecciona los website a los que debe asignarse el producto.
- Elige si el módulo debe activar la gestión de stock para los productos importados.
- Haz clic en
Importuj.
Ejemplo de lista de SKU:
TSHIRT-BLACK-MTSHIRT-BLACK-LJACKET-NAVY-XLSHOES-WHITE-42Durante la importación, el módulo:
- asigna los productos a las categorías OUTLET,
- establece el atributo
sale, - actualiza los productos padre configurables,
- crea una copia del precio especial y de las fechas de promoción,
- actualiza el stock de acuerdo con la opción seleccionada,
- actualiza los índices y la cache de productos y categorías.
Gestión de productos configurables
Si el producto importado es una variante de un producto configurable, el módulo busca el producto padre y lo asigna a la categoría OUTLET. Gracias a ello, el producto configurable aparece en el listing de la categoría y el cliente puede elegir la variante outlet.
Durante el recálculo cíclico, el módulo comprueba si el producto padre sigue teniendo variantes OUTLET activas. Si no las tiene, el producto padre se desvincula de la categoría OUTLET.
Gestión de precios especiales
Al importar a OUTLET, el módulo guarda una copia de:
special_price,special_from_date,special_to_date.
La copia se guarda de acuerdo con el scope del atributo del precio especial en Magento:
- para precios globales: a nivel global,
- para precios per website: a nivel del store view predeterminado de cada website,
- para precios per store: a nivel de store view.
El módulo no recalcula divisas. Magento almacena los precios como valores base para el scope correspondiente, y la presentación de divisas en el frontend queda a cargo de los mecanismos estándar de Magento.
El comportamiento tras finalizar OUTLET depende de la opción Usuń ceny specjalne dla produktów po wyprzedaży:
Tak: el módulo limpia el precio especial y elimina la copia técnica,Nie: el módulo restaura el precio especial y las fechas desde la copia y, a continuación, elimina la copia técnica.
Cron
El módulo dispone de una tarea cron:
kowal_outletproducts_outletLa tarea ejecuta el helper OUTLET y comprueba cíclicamente los productos outlet. Cron elimina productos de las categorías OUTLET cuando ya no deberían estar visibles allí, y actualiza los índices y la cache.
Después de la instalación, asegúrate de que el cron de Magento funcione correctamente:
php bin/magento cron:runEn el entorno de producción, cron debe ejecutarse desde el crontab del sistema del usuario de la aplicación Magento.
Ejecución manual del recálculo
El recálculo puede ejecutarse manualmente desde CLI:
php bin/magento kowal_outletproducts:generateEl comando ejecuta el mismo proceso que se inicia mediante cron.
Índices y cache
Tras los cambios, el módulo actualiza los índices de producto y catálogo más importantes:
catalog_product_price,catalog_product_category,catalogsearch_fulltext,inventory,cataloginventory_stock.
El módulo también limpia la cache de las etiquetas de productos y categorías OUTLET, por lo que el listing de la categoría debería actualizarse después de cambiar el estado o desvincular el producto.
Si es necesario, se puede forzar una reindexación completa:
php bin/magento indexer:reindexphp bin/magento cache:flushPrueba después del despliegue
Prueba funcional recomendada:
- Selecciona un producto simple con stock disponible.
- Configúrale un precio especial y fechas de promoción.
- Añade el producto a OUTLET mediante el panel de importación.
- Comprueba si el producto ha aparecido en la categoría OUTLET.
- Comprueba si el atributo
saletiene el valorTak. - Para un producto configurable, comprueba si el producto padre ha aparecido en OUTLET.
- Cambia el estado del producto para que no sea salable.
- Ejecuta cron o el comando CLI.
- Comprueba si el producto se ha eliminado de la categoría OUTLET.
- Comprueba si el precio especial se ha restaurado o eliminado de acuerdo con la configuración.
Problemas más frecuentes
El producto sigue visible en OUTLET
Comprueba:
- si el cron de Magento funciona,
- si el producto todavía tiene
sale = 1, - si el producto está asignado a una de las categorías configuradas como OUTLET,
- si los índices y la cache se han actualizado.
Comandos de ayuda:
php bin/magento cron:runphp bin/magento indexer:reindexphp bin/magento cache:flushEl parent configurable sigue en OUTLET
Comprueba si alguna variante del producto todavía tiene sale = 1. El producto padre se mantiene en OUTLET mientras tenga una variante outlet activa.
El precio especial no se ha restaurado
Comprueba:
- si el producto se había añadido anteriormente a OUTLET después de la instalación de los atributos de copia,
- si el atributo
special_price_copy_activeestaba configurado, - si la configuración
Usuń ceny specjalne dla produktów po wyprzedażyestá establecida enNie, - qué scope de precios está configurado en Magento.
Los precios difieren entre store view
Comprueba la configuración del scope de precios en Magento. El módulo no recalcula divisas ni sincroniza precios entre store view. Restaura los valores guardados para el scope de precios correspondiente.
Desinstalación
Si el módulo debe desactivarse:
php bin/magento module:disable Kowal_OutletProductsphp bin/magento setup:upgradephp bin/magento cache:flushEliminación del paquete Composer:
composer remove kowal/module-outletproductsphp bin/magento setup:upgradephp bin/magento cache:flushAntes de eliminar el módulo, se recomienda comprobar si los productos requieren una limpieza manual del atributo sale o su desvinculación de la categoría OUTLET.