Modul Outlet pentru Magento 2 - Automatizarea lichidărilor de stoc
Kowal Outlet Products este un modul pentru Magento 2 care automatizează gestionarea produselor outlet, a produselor la lichidare și a capetelor de serie. Soluția ajută la menținerea ordinii în catalog, la atribuirea produselor în categoria OUTLET, la marcarea lor cu un atribut dedicat și la eliminarea lor din outlet atunci când nu ar mai trebui să fie vizibile ca ofertă de lichidare.
Modulul a fost pregătit pentru magazinele în care produsele outlet se schimbă dinamic: unele sunt produse simple individuale, altele sunt variante ale produselor configurabile, iar o parte necesită gestionarea mai multor magazine, a mai multor website-uri și a diferitelor configurații de preț.
Valoarea principală pentru business
În Magento standard, gestionarea outletului necesită adesea monitorizarea manuală a mai multor elemente simultan: categorii, statusul produsului, preț special, stocuri, variante configurabile și cache. În cazul unui catalog mai mare, pot apărea ușor situații în care produsul rămâne afișat în OUTLET deși s-a epuizat, parentul unui produs configurabil rămâne în categorie fără variante active sau prețul special este restaurat în mod neconform cu configurația magazinului.
Kowal Outlet Products organizează acest proces. Administratorul poate adăuga o listă de SKU-uri în outlet, iar modulul se ocupă de atribuirea în categoriile corecte, setarea atributului OUTLET, gestionarea parenturilor configurable și desprinderea automată ulterioară a produselor după încheierea vânzării.
Funcții principale
- import în masă al produselor în OUTLET pe baza unei liste de SKU-uri,
- atribuirea produselor într-una sau mai multe categorii outlet,
- suport pentru produse simple și variante ale produselor configurabile,
- marcarea automată a produselor cu atributul
sale, - atribuirea parenturilor configurable în OUTLET atunci când variantele lor sunt outlet,
- decuplarea automată a produselor din categoria OUTLET după epuizare sau dezactivarea statusului outlet,
- decuplarea parentului configurable atunci când nicio variantă nu mai este produs OUTLET,
- verificarea ciclică a produselor prin cron,
- pornirea manuală a recalculării din consola Magento,
- reîmprospătarea indexurilor și a cache-ului pentru produse și categorii,
- gestionarea stocului și a backorderelor după încheierea lichidării,
- backup și restaurare pentru prețurile speciale,
- suport pentru configurații multistore și website scope pentru prețuri,
- marcaje OUTLET lângă swatch-urile variantelor pe pagina produsului.
Cum funcționează procesul OUTLET
Administratorul selectează categoriile outlet în configurația modulului. Apoi, din panoul de administrare, poate lipi lista de SKU-uri și adăuga produsele la lichidare. Modulul atribuie produsele în categoria OUTLET și setează atributul sale.
Pentru produsele configurabile, modulul funcționează pe două niveluri. Dacă varianta este outlet, parentul configurable poate fi adăugat și el în categoria OUTLET, astfel încât clientul să vadă produsul în listing. Când varianta este epuizată sau nu mai are status OUTLET, modulul verifică dacă parentul mai are orice variante outlet active. Dacă nu, parentul este decuplat din OUTLET.
Cronul modulului verifică regulat starea produselor. Când produsul nu mai poate fi vândut, modulul îl elimină din categoriile outlet, modifică statusul outlet și reîmprospătează datele în indexuri și cache. Astfel, listingul categoriei OUTLET rămâne actualizat fără muncă manuală din partea administratorului.
Gestionarea prețurilor speciale
Modulul poate proteja prețurile speciale împotriva pierderii în timpul ciclului OUTLET. La adăugarea produsului în outlet, prețul special actual este copiat în atribute tehnice. După încheierea outletului, prețul poate fi restaurat sau șters, în funcție de configurație.
Backupul include:
special_price,special_from_date,special_to_date.
Modulul respectă scope-ul prețurilor Magento. Dacă prețurile sunt globale, funcționează la nivel global. Dacă prețurile sunt setate per website, modulul salvează și restaurează valorile conform store view-urilor implicite ale website-urilor. Nu efectuează conversii valutare, deoarece Magento stochează prețurile ca valori de bază pentru scope-ul respectiv, iar monedele magazinului sunt convertite de mecanismele Magento.
Multistore și suport pentru mai multe monede
Kowal Outlet Products poate funcționa în instalări Magento cu mai multe store view-uri și website-uri. În timpul importului, administratorul poate indica website-urile cărora trebuie să le fie atribuit produsul. Configurația modulului este disponibilă la nivel default, website și store, ceea ce permite adaptarea funcționării la structura magazinului.
În ceea ce privește prețurile speciale, modulul nu multiplică și nu convertește valorile între monede. Păstrează sumele salvate în Magento pentru scope-ul de preț corespunzător. Acest lucru permite evitarea erorilor rezultate din conversia manuală a cursurilor și lasă responsabilitatea prezentării monedelor mecanismelor standard Magento.
Exemplu de utilizare
Magazinul vinde îmbrăcăminte și are o categorie OUTLET, în care afișează ultimele bucăți ale produselor din colecțiile anterioare. Administratorul primește o listă de SKU-uri ale variantelor care trebuie incluse la lichidare, de exemplu:
TSHIRT-BLACK-MTSHIRT-BLACK-LJACKET-NAVY-XLSHOES-WHITE-42După lipirea listei în panoul de import, modulul:
- setează produsele ca OUTLET,
- le atribuie în categoria
OUTLET, - atribuie parenturile produselor configurabile dacă variantele lor sunt outlet,
- salvează o copie a prețurilor speciale actuale,
- opțional actualizează setările de stoc,
- reîmprospătează indexurile și cache-ul.
Clientul vede produsele în categoria OUTLET și marcajele lângă variante. Când ultima bucată a unei variante este vândută, cronul modulului detectează că produsul nu mai este salable, îl elimină din OUTLET și reîmprospătează listingul. Dacă aceasta a fost ultima variantă outlet a produsului configurabil respectiv, parentul este eliminat și el din categoria OUTLET.
Pentru cine este acest modul
Modulul este destinat magazinelor Magento 2 care:
- au o secțiune permanentă OUTLET sau SALE,
- lucrează frecvent cu capete de serie,
- au produse configurabile cu variante având statusuri diferite de lichidare,
- doresc să reducă munca manuală la actualizarea categoriilor,
- au nevoie de control asupra prețurilor speciale într-un mediu multistore,
- doresc să evite produsele neactualizate în listingurile de categorii.
Elemente tehnice
- Nume pachet Composer:
kowal/module-outletproducts - Nume modul Magento:
Kowal_OutletProducts - Comandă CLI:
bin/magento kowal_outletproducts:generate - Panou de configurare:
Stores > Configuration > kowal > OUTLET Products - Panou de import:
kowal > Upload Outlet Products - Atribute principale de produs:
sale,special_price_copy,special_from_date_copy,special_to_date_copy,special_price_copy_active
Rezultatul implementării
După implementarea modulului, magazinul obține un proces coerent de administrare a outletului: produsele ajung în categoriile corecte, variantele și parenturile sunt menținute logic, prețurile speciale sunt protejate, iar datele catalogului sunt reîmprospătate după modificări. Astfel, administratorii se pot concentra pe selectarea produselor pentru lichidare, nu pe curățarea manuală a categoriilor și cache-ului.
Instalarea și configurarea modulului Kowal Outlet Products
Informații de bază
- Pachet Composer:
kowal/module-outletproducts - Modul Magento:
Kowal_OutletProducts - Tip de aplicație necesar: Magento 2
- Dependență pachet:
kowal/base - Comanda CLI a modulului:
bin/magento kowal_outletproducts:generate
Instalare prin Composer
Adăugați repository-ul modulului:
composer config repositories.module.outlet.products vcs https://github.com/kowalco/magento-2-outlet-productsDacă repository-ul este privat, configurați tokenul de acces:
composer config --auth github-oauth.github.com Instalați modulul:
composer require kowal/module-outletproductsActivați modulul:
php bin/magento module:enable Kowal_OutletProductsExecutați actualizarea bazei de date:
php bin/magento setup:upgradeÎn mediul de producție, rulați compilarea DI și deploy-ul resurselor statice conform procesului de implementare al magazinului:
php bin/magento setup:di:compilephp bin/magento setup:static-content:deployGoliți cache-ul:
php bin/magento cache:flushActualizarea unei instalări existente
După actualizarea modulului, executați:
composer update kowal/module-outletproductsphp bin/magento setup:upgradephp bin/magento cache:flushDacă magazinul rulează în production mode, executați și pașii standard de implementare:
php bin/magento setup:di:compilephp bin/magento setup:static-content:deploysetup:upgrade este necesar deoarece modulul adaugă și actualizează atributele de produs folosite pentru gestionarea OUTLET și a copiilor prețurilor speciale.
Atribute de produs
Modulul adaugă sau utilizează următoarele atribute:
| Atribut | Semnificație |
|---|---|
sale | Marchează produsul ca OUTLET. |
special_price_copy | Copie a valorii special_price de dinainte ca produsul să intre în OUTLET. |
special_from_date_copy | Copie a datei special_from_date. |
special_to_date_copy | Copie a datei special_to_date. |
special_price_copy_active | Marcator care indică faptul că a fost realizată copia prețului special. |
Configurare în panoul de administrare
Accesați:
Stores > Configuration > kowal > OUTLET ProductsOpțiuni disponibile:
| Opțiune | Descriere |
|---|---|
Włącz moduł Outlet | Activează sau dezactivează funcționarea modulului. |
Usuń ceny specjalne dla produktów po wyprzedaży | Definește dacă, după încheierea OUTLET, prețul special trebuie șters. Dacă opțiunea este dezactivată, modulul va restaura prețul din copie. |
Kategorie outletowe | Lista categoriilor cărora le sunt atribuite produsele OUTLET și din care sunt ulterior eliminate automat. |
Wyłącz zarządzanie stanem magazynowym po wyprzedaży | Permite dezactivarea manage_stock după încheierea lichidării. |
Włącz backorder po zakończeniu wyprzedaży outletowej | Permite activarea backorderului și marcarea produsului ca disponibil după încheierea vânzării outlet. |
Configurația este disponibilă la nivel default, website și store. Categoriile OUTLET utilizate de cron sunt preluate din configurația implicită.
Configurarea categoriei OUTLET
- Creați în Magento o categorie sau categorii destinate outletului.
- Asigurați-vă că aceste categorii sunt active și vizibile în meniu sau în listing, dacă trebuie să fie disponibile pentru clienți.
- În configurația modulului, selectați toate categoriile outlet în câmpul
Kategorie outletowe. - Salvați configurația.
- Goliți cache-ul Magento.
php bin/magento cache:flushImportul produselor în OUTLET
Accesați panoul:
kowal > Upload Outlet ProductsÎn formular:
- Lipiți lista de SKU-uri, câte un SKU pe linie.
- Selectați categoriile OUTLET.
- Opțional, selectați website-urile cărora trebuie să le fie atribuit produsul.
- Alegeți dacă modulul trebuie să activeze gestionarea stocurilor pentru produsele importate.
- Faceți clic pe
Importuj.
Exemplu de listă SKU:
TSHIRT-BLACK-MTSHIRT-BLACK-LJACKET-NAVY-XLSHOES-WHITE-42În timpul importului, modulul:
- atribuie produsele în categoriile OUTLET,
- setează atributul
sale, - actualizează parenturile configurable,
- creează o copie a prețului special și a datelor promoției,
- actualizează stocul conform opțiunii selectate,
- reîmprospătează indexurile și cache-ul produselor și categoriilor.
Gestionarea produselor configurabile
Dacă produsul importat este o variantă a unui produs configurabil, modulul caută parentul și îl atribuie în categoria OUTLET. Astfel, produsul configurabil apare în listingul categoriei, iar clientul poate alege varianta outlet.
În timpul recalculării ciclice, modulul verifică dacă parentul mai are variante OUTLET active. Dacă nu, parentul este decuplat de la categoria OUTLET.
Gestionarea prețurilor speciale
La importul în OUTLET, modulul salvează o copie a:
special_price,special_from_date,special_to_date.
Copia este salvată conform scope-ului atributului de preț special în Magento:
- pentru prețuri globale: la nivel global,
- pentru prețuri per website: la nivelul store view-ului implicit al fiecărui website,
- pentru prețuri per store: la nivel de store view.
Modulul nu convertește monede. Magento stochează prețurile ca valori de bază pentru scope-ul corespunzător, iar prezentarea monedelor pe frontend rămâne în responsabilitatea mecanismelor standard Magento.
Comportamentul după încheierea OUTLET depinde de opțiunea Usuń ceny specjalne dla produktów po wyprzedaży:
Tak: modulul șterge prețul special și elimină copia tehnică,Nie: modulul restaurează prețul special și datele din copie, apoi elimină copia tehnică.
Cron
Modulul are o sarcină cron:
kowal_outletproducts_outletSarcina pornește helperul OUTLET și verifică ciclic produsele outlet. Cron elimină produsele din categoria OUTLET atunci când nu ar mai trebui să fie vizibile acolo și reîmprospătează indexurile și cache-ul.
După instalare, asigurați-vă că Magento cron funcționează corect:
php bin/magento cron:runÎn mediul de producție, cron ar trebui să fie rulat din crontabul de sistem al utilizatorului aplicației Magento.
Pornirea manuală a recalculării
Recalcularea poate fi pornită manual din CLI:
php bin/magento kowal_outletproducts:generateComanda execută același proces care este pornit de cron.
Indexuri și cache
După modificări, modulul reîmprospătează cele mai importante indexuri de produse și catalog:
catalog_product_price,catalog_product_category,catalogsearch_fulltext,inventory,cataloginventory_stock.
Modulul curăță și cache-ul tagurilor produselor și categoriilor OUTLET, astfel încât listingul categoriei ar trebui să se actualizeze după modificarea statusului sau decuplarea produsului.
Dacă este necesar, se poate forța o reindexare completă:
php bin/magento indexer:reindexphp bin/magento cache:flushTest după implementare
Test funcțional recomandat:
- Selectați un produs simplu cu stoc disponibil.
- Setați-i un preț special și datele promoției.
- Adăugați produsul în OUTLET prin panoul de import.
- Verificați dacă produsul a apărut în categoria OUTLET.
- Verificați dacă atributul
saleare valoareaTak. - Pentru un produs configurabil, verificați dacă parentul a apărut în OUTLET.
- Modificați starea produsului astfel încât să nu mai fie salable.
- Rulați cron sau comanda CLI.
- Verificați dacă produsul a fost eliminat din categoria OUTLET.
- Verificați dacă prețul special a fost restaurat sau eliminat conform configurației.
Cele mai frecvente probleme
Produsul este încă vizibil în OUTLET
Verificați:
- dacă Magento cron funcționează,
- dacă produsul nu are încă
sale = 1, - dacă produsul este atribuit uneia dintre categoriile configurate ca OUTLET,
- dacă indexurile și cache-ul au fost reîmprospătate.
Comenzi auxiliare:
php bin/magento cron:runphp bin/magento indexer:reindexphp bin/magento cache:flushParentul configurable este încă în OUTLET
Verificați dacă oricare variantă a produsului mai are sale = 1. Parentul este menținut în OUTLET atâta timp cât are o variantă outlet activă.
Prețul special nu a fost restaurat
Verificați:
- dacă produsul a fost adăugat anterior în OUTLET după instalarea atributelor de copie,
- dacă atributul
special_price_copy_activea fost setat, - dacă configurația
Usuń ceny specjalne dla produktów po wyprzedażyeste setată laNie, - ce scope de preț este setat în Magento.
Prețurile diferă între store view-uri
Verificați configurația scope-ului prețurilor în Magento. Modulul nu convertește monede și nu sincronizează prețurile între store view-uri. Restaurează valorile salvate pentru scope-ul de preț corespunzător.
Dezinstalare
Dacă modulul trebuie dezactivat:
php bin/magento module:disable Kowal_OutletProductsphp bin/magento setup:upgradephp bin/magento cache:flushEliminarea pachetului Composer:
composer remove kowal/module-outletproductsphp bin/magento setup:upgradephp bin/magento cache:flushÎnainte de eliminarea modulului, se recomandă verificarea dacă produsele nu necesită curățarea manuală a atributului sale sau decuplarea de la categoria OUTLET.



















