Modulo Outlet per Magento 2 - Automazione dei saldi
Kowal Outlet Products è un modulo per Magento 2 che automatizza la gestione dei prodotti outlet, in saldo e di fine serie. La soluzione aiuta a mantenere ordine nel catalogo, assegnare i prodotti alla categoria OUTLET, contrassegnarli con un attributo dedicato e rimuoverli dall’outlet quando non devono più essere visibili come offerta promozionale.
Il modulo è stato progettato per negozi in cui i prodotti outlet cambiano in modo dinamico: una parte è costituita da singoli prodotti semplici, una parte da varianti di prodotti configurabili e una parte richiede la gestione di più store, più website e diverse configurazioni dei prezzi.
Valore aziendale principale
Nel Magento standard, la gestione dell’outlet richiede spesso il controllo manuale di più elementi contemporaneamente: categorie, stato del prodotto, prezzo speciale, giacenze di magazzino, varianti configurabili e cache. Con un catalogo più ampio è facile che si verifichi una situazione in cui un prodotto continua a comparire in OUTLET nonostante sia esaurito, il parent di un prodotto configurabile rimane nella categoria senza varianti attive oppure il prezzo speciale viene ripristinato in modo non conforme alla configurazione dello store.
Kowal Outlet Products mette ordine in questo processo. L’amministratore può aggiungere un elenco di SKU all’outlet e il modulo si occuperà dell’assegnazione alle categorie corrette, dell’impostazione dell’attributo OUTLET, della gestione dei parent configurable e del successivo scollegamento automatico dei prodotti al termine della vendita.
Funzionalità principali
- importazione massiva dei prodotti in OUTLET tramite elenco SKU,
- assegnazione dei prodotti a una o più categorie outlet,
- gestione di prodotti semplici e varianti di prodotti configurabili,
- contrassegno automatico dei prodotti con l’attributo
sale, - assegnazione dei parent configurable a OUTLET quando le loro varianti sono outlet,
- scollegamento automatico dei prodotti dalla categoria OUTLET dopo l’esaurimento o la disattivazione dello stato outlet,
- scollegamento del parent configurable quando nessuna variante è più un prodotto OUTLET,
- controllo ciclico dei prodotti tramite cron,
- avvio manuale del ricalcolo dalla console Magento,
- aggiornamento degli indici e della cache di prodotti e categorie,
- gestione di stock e backorder al termine del saldo,
- backup e ripristino dei prezzi speciali,
- supporto della configurazione multistore e del website scope per i prezzi,
- marcature OUTLET accanto agli swatch delle varianti nella scheda prodotto.
Come funziona il processo OUTLET
L’amministratore seleziona le categorie outlet nella configurazione del modulo. Successivamente, dal pannello di amministrazione può incollare un elenco di SKU e aggiungere i prodotti al saldo. Il modulo assegna i prodotti alla categoria OUTLET e imposta l’attributo sale.
Per i prodotti configurabili, il modulo opera su due livelli. Se la variante è outlet, anche il parent configurable può essere aggiunto alla categoria OUTLET, in modo che il cliente veda il prodotto nel listing. Quando la variante viene esaurita o smette di avere lo stato OUTLET, il modulo verifica se il parent dispone ancora di varianti outlet attive. In caso contrario, il parent viene scollegato da OUTLET.
Il cron del modulo controlla regolarmente lo stato dei prodotti. Quando un prodotto non è più vendibile, il modulo lo rimuove dalle categorie outlet, modifica lo stato outlet e aggiorna i dati negli indici e nella cache. In questo modo il listing della categoria OUTLET rimane aggiornato senza interventi manuali da parte dell’amministratore.
Gestione dei prezzi speciali
Il modulo può proteggere i prezzi speciali dalla perdita durante il ciclo OUTLET. Quando un prodotto viene aggiunto all’outlet, il prezzo speciale corrente viene copiato negli attributi tecnici. Al termine dell’outlet, il prezzo può essere ripristinato oppure cancellato, a seconda della configurazione.
Il backup include:
special_price,special_from_date,special_to_date.
Il modulo rispetta lo scope dei prezzi Magento. Se i prezzi sono globali, opera a livello globale. Se i prezzi sono impostati per website, il modulo salva e ripristina i valori in base agli store view predefiniti dei website. Non esegue conversioni valutarie, perché Magento memorizza i prezzi come valori base per un determinato scope e le valute dello store vengono convertite dai meccanismi Magento.
Multistore e multivaluta
Kowal Outlet Products può funzionare in installazioni Magento con più store view e website. Durante l’importazione, l’amministratore può indicare i website a cui il prodotto deve essere assegnato. La configurazione del modulo è disponibile a livello default, website e store, consentendo di adattare il funzionamento alla struttura del negozio.
Nell’ambito dei prezzi speciali, il modulo non moltiplica né converte i valori tra valute. Mantiene gli importi salvati in Magento per lo scope di prezzo corretto. Questo permette di evitare errori derivanti dalla conversione manuale dei tassi e lascia ai meccanismi standard di Magento la responsabilità della presentazione delle valute.
Esempio di utilizzo
Il negozio vende abbigliamento e dispone di una categoria OUTLET in cui mostra gli ultimi pezzi di prodotti delle collezioni precedenti. L’amministratore riceve un elenco di SKU delle varianti che devono entrare in saldo, ad esempio:
TSHIRT-BLACK-MTSHIRT-BLACK-LJACKET-NAVY-XLSHOES-WHITE-42Dopo aver incollato l’elenco nel pannello di importazione, il modulo:
- imposta i prodotti come OUTLET,
- li assegna alla categoria
OUTLET, - assegna i parent dei prodotti configurabili se le loro varianti sono outlet,
- salva una copia dei prezzi speciali correnti,
- aggiorna opzionalmente le impostazioni dello stock,
- aggiorna indici e cache.
Il cliente vede i prodotti nella categoria OUTLET e le marcature accanto alle varianti. Quando l’ultimo pezzo di una variante viene venduto, il cron del modulo rileva che il prodotto non è più salable, lo rimuove da OUTLET e aggiorna il listing. Se era l’ultima variante outlet di un determinato prodotto configurabile, anche il parent viene rimosso dalla categoria OUTLET.
A chi è destinato questo modulo
Il modulo è destinato ai negozi Magento 2 che:
- gestiscono una sezione permanente OUTLET o SALE,
- lavorano spesso con fine serie,
- hanno prodotti configurabili con varianti con diverso stato di saldo,
- vogliono ridurre il lavoro manuale nell’aggiornamento delle categorie,
- necessitano di controllo sui prezzi speciali in ambiente multistore,
- vogliono evitare prodotti non aggiornati nei listing di categoria.
Elementi tecnici
- Nome del pacchetto Composer:
kowal/module-outletproducts - Nome del modulo Magento:
Kowal_OutletProducts - Comando CLI:
bin/magento kowal_outletproducts:generate - Pannello di configurazione:
Stores > Configuration > kowal > OUTLET Products - Pannello di importazione:
kowal > Upload Outlet Products - Attributi prodotto principali:
sale,special_price_copy,special_from_date_copy,special_to_date_copy,special_price_copy_active
Risultato dell’implementazione
Dopo l’implementazione del modulo, il negozio ottiene un processo coerente di gestione dell’outlet: i prodotti vengono inseriti nelle categorie corrette, varianti e parent vengono mantenuti in modo logico, i prezzi speciali sono protetti e i dati di catalogo vengono aggiornati dopo le modifiche. In questo modo gli amministratori possono concentrarsi sulla scelta dei prodotti da mettere in saldo, invece che sulla pulizia manuale di categorie e cache.
Installazione e configurazione del modulo Kowal Outlet Products
Informazioni di base
- Pacchetto Composer:
kowal/module-outletproducts - Modulo Magento:
Kowal_OutletProducts - Tipo di applicazione richiesto: Magento 2
- Dipendenza del pacchetto:
kowal/base - Comando CLI del modulo:
bin/magento kowal_outletproducts:generate
Installazione tramite Composer
Aggiungi il repository del modulo:
composer config repositories.module.outlet.products vcs https://github.com/kowalco/magento-2-outlet-productsSe il repository è privato, configura il token di accesso:
composer config --auth github-oauth.github.com Installa il modulo:
composer require kowal/module-outletproductsAbilita il modulo:
php bin/magento module:enable Kowal_OutletProductsEsegui l’aggiornamento del database:
php bin/magento setup:upgradeIn ambiente di produzione, esegui la compilazione DI e il deploy degli asset statici secondo il processo di rilascio dello store:
php bin/magento setup:di:compilephp bin/magento setup:static-content:deployPulisci la cache:
php bin/magento cache:flushAggiornamento di un’installazione esistente
Dopo l’aggiornamento del modulo, esegui:
composer update kowal/module-outletproductsphp bin/magento setup:upgradephp bin/magento cache:flushSe lo store funziona in production mode, esegui anche i passaggi standard di deployment:
php bin/magento setup:di:compilephp bin/magento setup:static-content:deploysetup:upgrade è richiesto perché il modulo aggiunge e aggiorna gli attributi prodotto utilizzati per la gestione di OUTLET e delle copie dei prezzi speciali.
Attributi prodotto
Il modulo aggiunge o utilizza i seguenti attributi:
| Attributo | Significato |
|---|---|
sale | Contrassegna il prodotto come OUTLET. |
special_price_copy | Copia del valore special_price precedente all’ingresso del prodotto in OUTLET. |
special_from_date_copy | Copia della data special_from_date. |
special_to_date_copy | Copia della data special_to_date. |
special_price_copy_active | Marker che indica che la copia del prezzo speciale è stata eseguita. |
Configurazione nel pannello di amministrazione
Vai a:
Stores > Configuration > kowal > OUTLET ProductsOpzioni disponibili:
| Opzione | Descrizione |
|---|---|
Włącz moduł Outlet | Abilita o disabilita il funzionamento del modulo. |
Usuń ceny specjalne dla produktów po wyprzedaży | Definisce se, al termine di OUTLET, il prezzo speciale deve essere cancellato. Se l’opzione è disattivata, il modulo ripristinerà il prezzo dalla copia. |
Kategorie outletowe | Elenco delle categorie a cui vengono assegnati i prodotti OUTLET e dalle quali vengono poi rimossi automaticamente. |
Wyłącz zarządzanie stanem magazynowym po wyprzedaży | Consente di disabilitare manage_stock al termine del saldo. |
Włącz backorder po zakończeniu wyprzedaży outletowej | Consente di abilitare il backorder e contrassegnare il prodotto come disponibile al termine della vendita outlet. |
La configurazione è disponibile a livello default, website e store. Le categorie OUTLET utilizzate dal cron vengono recuperate dalla configurazione predefinita.
Configurazione della categoria OUTLET
- Crea in Magento una o più categorie destinate all’outlet.
- Assicurati che le categorie siano attive e visibili nel menu o nel listing, se devono essere disponibili per i clienti.
- Nella configurazione del modulo, seleziona tutte le categorie outlet nel campo
Kategorie outletowe. - Salva la configurazione.
- Pulisci la cache Magento.
php bin/magento cache:flushImportazione dei prodotti in OUTLET
Vai al pannello:
kowal > Upload Outlet ProductsNel modulo:
- Incolla l’elenco di SKU, uno SKU per riga.
- Seleziona le categorie OUTLET.
- Opzionalmente seleziona i website a cui il prodotto deve essere assegnato.
- Scegli se il modulo deve abilitare la gestione delle giacenze di magazzino per i prodotti importati.
- Clicca
Importuj.
Esempio di elenco SKU:
TSHIRT-BLACK-MTSHIRT-BLACK-LJACKET-NAVY-XLSHOES-WHITE-42Durante l’importazione, il modulo:
- assegna i prodotti alla categoria OUTLET,
- imposta l’attributo
sale, - aggiorna i parent configurable,
- crea una copia del prezzo speciale e delle date promozionali,
- aggiorna lo stock in base all’opzione selezionata,
- aggiorna indici e cache di prodotti e categorie.
Gestione dei prodotti configurabili
Se il prodotto importato è una variante di un prodotto configurabile, il modulo trova il parent e lo assegna alla categoria OUTLET. In questo modo il prodotto configurabile appare nel listing della categoria e il cliente può scegliere la variante outlet.
Durante il ricalcolo ciclico, il modulo verifica se il parent dispone ancora di varianti OUTLET attive. In caso contrario, il parent viene scollegato dalla categoria OUTLET.
Gestione dei prezzi speciali
Durante l’importazione in OUTLET, il modulo salva una copia di:
special_price,special_from_date,special_to_date.
La copia viene salvata secondo lo scope dell’attributo del prezzo speciale in Magento:
- per i prezzi globali: a livello globale,
- per i prezzi per website: a livello dello store view predefinito di ciascun website,
- per i prezzi per store: a livello di store view.
Il modulo non converte le valute. Magento memorizza i prezzi come valori base per lo scope corretto e la presentazione delle valute sul frontend resta gestita dai meccanismi standard di Magento.
Il comportamento al termine di OUTLET dipende dall’opzione Usuń ceny specjalne dla produktów po wyprzedaży:
Tak: il modulo cancella il prezzo speciale ed elimina la copia tecnica,Nie: il modulo ripristina il prezzo speciale e le date dalla copia, quindi elimina la copia tecnica.
Cron
Il modulo dispone di un task cron:
kowal_outletproducts_outletIl task avvia l’helper OUTLET e controlla ciclicamente i prodotti outlet. Il cron rimuove i prodotti dalla categoria OUTLET quando non dovrebbero più essere visibili lì e aggiorna indici e cache.
Dopo l’installazione, assicurati che il cron Magento funzioni correttamente:
php bin/magento cron:runIn ambiente di produzione, il cron dovrebbe essere eseguito dal crontab di sistema dell’utente dell’applicazione Magento.
Avvio manuale del ricalcolo
Il ricalcolo può essere avviato manualmente da CLI:
php bin/magento kowal_outletproducts:generateIl comando esegue lo stesso processo avviato dal cron.
Indici e cache
Dopo le modifiche, il modulo aggiorna gli indici prodotto e catalogo più importanti:
catalog_product_price,catalog_product_category,catalogsearch_fulltext,inventory,cataloginventory_stock.
Il modulo pulisce inoltre la cache dei tag dei prodotti e delle categorie OUTLET, così il listing della categoria dovrebbe aggiornarsi dopo la modifica dello stato o lo scollegamento del prodotto.
Se necessario, è possibile forzare una reindicizzazione completa:
php bin/magento indexer:reindexphp bin/magento cache:flushTest dopo l’implementazione
Test funzionale consigliato:
- Seleziona un prodotto semplice con disponibilità di magazzino.
- Imposta un prezzo speciale e le date promozionali.
- Aggiungi il prodotto a OUTLET tramite il pannello di importazione.
- Verifica che il prodotto sia apparso nella categoria OUTLET.
- Verifica che l’attributo
saleabbia valoreTak. - Per un prodotto configurabile, verifica che il parent sia apparso in OUTLET.
- Modifica lo stato del prodotto in modo che non sia salable.
- Esegui il cron o il comando CLI.
- Verifica che il prodotto sia stato rimosso dalla categoria OUTLET.
- Verifica che il prezzo speciale sia stato ripristinato oppure rimosso secondo la configurazione.
Problemi più comuni
Il prodotto è ancora visibile in OUTLET
Verifica:
- se il cron Magento è in funzione,
- se il prodotto non ha ancora
sale = 1, - se il prodotto è assegnato a una delle categorie configurate come OUTLET,
- se indici e cache sono stati aggiornati.
Comandi di supporto:
php bin/magento cron:runphp bin/magento indexer:reindexphp bin/magento cache:flushIl parent configurable è ancora in OUTLET
Verifica se una qualsiasi variante del prodotto ha ancora sale = 1. Il parent viene mantenuto in OUTLET finché dispone di una variante outlet attiva.
Il prezzo speciale non è stato ripristinato
Verifica:
- se il prodotto era stato precedentemente aggiunto a OUTLET dopo l’installazione degli attributi di copia,
- se l’attributo
special_price_copy_activeera impostato, - se la configurazione
Usuń ceny specjalne dla produktów po wyprzedażyè impostata suNie, - quale scope dei prezzi è impostato in Magento.
I prezzi differiscono tra store view
Verifica la configurazione dello scope dei prezzi in Magento. Il modulo non converte le valute e non sincronizza i prezzi tra store view. Ripristina i valori salvati per lo scope di prezzo corretto.
Disinstallazione
Se il modulo deve essere disabilitato:
php bin/magento module:disable Kowal_OutletProductsphp bin/magento setup:upgradephp bin/magento cache:flushRimozione del pacchetto Composer:
composer remove kowal/module-outletproductsphp bin/magento setup:upgradephp bin/magento cache:flushPrima di rimuovere il modulo, si consiglia di verificare se i prodotti richiedono la pulizia manuale dell’attributo sale o lo scollegamento dalla categoria OUTLET.













