Moduł Outlet dla Magento 2 - Automatyzacja Wyprzedaży
Moduły Magento na jasnych zasadach
Kupujesz moduł raz, bez ograniczeń domenowych
Darmowa instalacja i aktualizacje przez Composer
Program Afiliacyjny
Wsparcie techniczne dla Magento
Jasne zasady licencjonowania modułów Magento
Bezpieczeństwo kodu Modułów Magento
Kowal Outlet Products to moduł dla Magento 2, który automatyzuje obsługę produktów outletowych, wyprzedażowych i końcówek serii. Rozwiązanie pomaga utrzymać porządek w katalogu, przypisywać produkty do kategorii OUTLET, oznaczać je dedykowanym atrybutem oraz usuwać z outletu wtedy, gdy nie powinny być już widoczne jako oferta wyprzedażowa.
Moduł został przygotowany z myślą o sklepach, w których produkty outletowe zmieniają się dynamicznie: część to pojedyncze produkty proste, część to warianty produktów konfigurowalnych, a część wymaga obsługi wielu sklepów, wielu stron website i różnych konfiguracji cen.
Główna wartość biznesowa
W standardowym Magento obsługa outletu często wymaga ręcznego pilnowania kilku elementów naraz: kategorii, statusu produktu, ceny specjalnej, stanów magazynowych, wariantów konfigurowalnych i cache. Przy większym katalogu łatwo o sytuację, w której produkt nadal widnieje w OUTLET mimo wyprzedania, rodzic produktu konfigurowalnego zostaje w kategorii bez aktywnych wariantów albo cena specjalna zostaje przywrócona niezgodnie z konfiguracją sklepu.
Kowal Outlet Products porządkuje ten proces. Administrator może dodać listę SKU do outletu, a moduł zadba o przypisanie do właściwych kategorii, ustawienie atrybutu OUTLET, obsługę parentów configurable oraz późniejsze automatyczne odpięcie produktów po zakończeniu sprzedaży.
Najważniejsze funkcje
- masowy import produktów do OUTLET po liście SKU,
- przypisywanie produktów do jednej lub wielu kategorii outletowych,
- obsługa produktów prostych i wariantów produktów konfigurowalnych,
- automatyczne oznaczanie produktów atrybutem
sale, - przypisywanie parentów configurable do OUTLET, gdy ich warianty są outletowe,
- automatyczne odpinanie produktów z kategorii OUTLET po wyprzedaniu lub wyłączeniu statusu outletowego,
- odpinanie parenta configurable, gdy żaden wariant nie jest już produktem OUTLET,
- cykliczne sprawdzanie produktów przez cron,
- ręczne uruchomienie przeliczenia z konsoli Magento,
- odświeżanie indeksów i cache produktów oraz kategorii,
- obsługa stocku i backorderów po zakończeniu wyprzedaży,
- backup i przywracanie cen specjalnych,
- obsługa konfiguracji multistore i website scope dla cen,
- oznaczenia OUTLET przy swatchach wariantów na karcie produktu.
Jak działa proces OUTLET
Administrator wybiera kategorie outletowe w konfiguracji modułu. Następnie z panelu administracyjnego może wkleić listę SKU i dodać produkty do wyprzedaży. Moduł przypisuje produkty do kategorii OUTLET oraz ustawia atrybut sale.
Dla produktów konfigurowalnych moduł działa na dwóch poziomach. Jeżeli outletowy jest wariant, parent configurable również może zostać dodany do kategorii OUTLET, żeby klient widział produkt w listingu. Gdy wariant zostanie wyprzedany lub przestanie mieć status OUTLET, moduł weryfikuje, czy parent nadal ma jakiekolwiek aktywne warianty outletowe. Jeżeli nie, parent zostaje odpięty z OUTLET.
Cron modułu regularnie sprawdza stan produktów. Gdy produkt nie jest już możliwy do sprzedaży, moduł usuwa go z kategorii outletowych, zmienia status outletowy i odświeża dane w indeksach oraz cache. Dzięki temu listing kategorii OUTLET pozostaje aktualny bez ręcznej pracy administratora.
Obsługa cen specjalnych
Moduł może zabezpieczać ceny specjalne przed utratą podczas cyklu OUTLET. Przy dodaniu produktu do outletu aktualna cena specjalna jest kopiowana do atrybutów technicznych. Po zakończeniu outletu cena może zostać przywrócona albo wyczyszczona, zależnie od konfiguracji.
Backup obejmuje:
special_price,special_from_date,special_to_date.
Moduł respektuje scope cen Magento. Jeżeli ceny są globalne, działa na poziomie globalnym. Jeżeli ceny są ustawione per website, moduł zapisuje i przywraca wartości zgodnie z domyślnymi store view stron website. Nie wykonuje przeliczeń walut, ponieważ Magento przechowuje ceny jako wartości bazowe dla danego scope, a waluty sklepowe są przeliczane przez mechanizmy Magento.
Multistore i wielowalutowość
Kowal Outlet Products może pracować w instalacjach Magento z wieloma store view i website. Podczas importu administrator może wskazać strony website, do których produkt ma zostać przypisany. Konfiguracja modułu jest dostępna na poziomie default, website i store, dzięki czemu można dopasować działanie do struktury sklepu.
W zakresie cen specjalnych moduł nie mnoży ani nie konwertuje wartości między walutami. Zachowuje kwoty zapisane w Magento dla właściwego scope cenowego. To pozwala uniknąć błędów wynikających z ręcznego przeliczania kursów i pozostawia odpowiedzialność za prezentację walut standardowym mechanizmom Magento.
Przykład zastosowania
Sklep sprzedaje odzież i ma kategorię OUTLET, w której pokazuje ostatnie sztuki produktów z poprzednich kolekcji. Administrator otrzymuje listę SKU wariantów, które mają trafić do wyprzedaży, na przykład:
TSHIRT-BLACK-M
TSHIRT-BLACK-L
JACKET-NAVY-XL
SHOES-WHITE-42
Po wklejeniu listy do panelu importu moduł:
- ustawia produkty jako OUTLET,
- przypisuje je do kategorii
OUTLET, - przypisuje parenty produktów konfigurowalnych, jeżeli outletowe są ich warianty,
- zapisuje kopię aktualnych cen specjalnych,
- opcjonalnie aktualizuje ustawienia stocku,
- odświeża indeksy i cache.
Klient widzi produkty w kategorii OUTLET oraz oznaczenia przy wariantach. Gdy ostatnia sztuka wariantu zostaje sprzedana, cron modułu wykrywa, że produkt nie jest już salable, usuwa go z OUTLET i odświeża listing. Jeżeli był to ostatni wariant outletowy danego produktu konfigurowalnego, parent również zostaje usunięty z kategorii OUTLET.
Dla kogo jest ten moduł
Moduł jest przeznaczony dla sklepów Magento 2, które:
- prowadzą stałą sekcję OUTLET lub SALE,
- często pracują na końcówkach serii,
- mają produkty konfigurowalne z wariantami o różnym statusie wyprzedaży,
- chcą ograniczyć ręczną pracę przy aktualizacji kategorii,
- potrzebują kontroli nad cenami specjalnymi w środowisku multistore,
- chcą uniknąć nieaktualnych produktów w listingach kategorii.
Elementy techniczne
- Nazwa pakietu Composer:
kowal/module-outletproducts - Nazwa modułu Magento:
Kowal_OutletProducts - Komenda CLI:
bin/magento kowal_outletproducts:generate - Panel konfiguracji:
Stores > Configuration > kowal > OUTLET Products - Panel importu:
kowal > Upload Outlet Products - Główne atrybuty produktowe:
sale,special_price_copy,special_from_date_copy,special_to_date_copy,special_price_copy_active
Efekt wdrożenia
Po wdrożeniu modułu sklep otrzymuje spójny proces zarządzania outletem: produkty trafiają do właściwych kategorii, warianty i parenty są utrzymywane logicznie, ceny specjalne są zabezpieczone, a dane katalogowe są odświeżane po zmianach. Dzięki temu administratorzy mogą skupić się na wyborze produktów do wyprzedaży, a nie na ręcznym sprzątaniu kategorii i cache.
Instalacja i konfiguracja modułu Kowal Outlet Products
Informacje podstawowe
- Pakiet Composer:
kowal/module-outletproducts - Moduł Magento:
Kowal_OutletProducts - Wymagany typ aplikacji: Magento 2
- Zależność pakietu:
kowal/base - Komenda CLI modułu:
bin/magento kowal_outletproducts:generate
Instalacja przez Composer
Dodaj repozytorium modułu:
composer config repositories.module.outlet.products vcs https://github.com/kowalco/magento-2-outlet-products
Jeżeli repozytorium jest prywatne, skonfiguruj token dostępu:
composer config --auth github-oauth.github.com <YOUR_TOKEN>
Zainstaluj moduł:
composer require kowal/module-outletproducts
Włącz moduł:
php bin/magento module:enable Kowal_OutletProducts
Wykonaj aktualizację bazy danych:
php bin/magento setup:upgrade
W środowisku produkcyjnym uruchom kompilację DI i deploy statycznych zasobów zgodnie z procesem wdrożeniowym sklepu:
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
Wyczyść cache:
php bin/magento cache:flush
Aktualizacja istniejącej instalacji
Po aktualizacji modułu wykonaj:
composer update kowal/module-outletproducts
php bin/magento setup:upgrade
php bin/magento cache:flush
Jeżeli sklep działa w production mode, wykonaj również standardowe kroki wdrożeniowe:
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy
setup:upgrade jest wymagane, ponieważ moduł dodaje i aktualizuje atrybuty produktowe używane do obsługi OUTLET oraz kopii cen specjalnych.
Atrybuty produktowe
Moduł dodaje lub wykorzystuje następujące atrybuty:
| Atrybut | Znaczenie |
|---|---|
sale |
Oznacza produkt jako OUTLET. |
special_price_copy |
Kopia wartości special_price sprzed wejścia produktu do OUTLET. |
special_from_date_copy |
Kopia daty special_from_date. |
special_to_date_copy |
Kopia daty special_to_date. |
special_price_copy_active |
Marker informujący, że kopia ceny specjalnej została wykonana. |
Konfiguracja w panelu administracyjnym
Przejdź do:
Stores > Configuration > kowal > OUTLET Products
Dostępne opcje:
| Opcja | Opis |
|---|---|
Włącz moduł Outlet |
Włącza lub wyłącza działanie modułu. |
Usuń ceny specjalne dla produktów po wyprzedaży |
Określa, czy po zakończeniu OUTLET cena specjalna ma zostać wyczyszczona. Jeżeli opcja jest wyłączona, moduł przywróci cenę z kopii. |
Kategorie outletowe |
Lista kategorii, do których przypisywane są produkty OUTLET i z których są później automatycznie usuwane. |
Wyłącz zarządzanie stanem magazynowym po wyprzedaży |
Pozwala wyłączyć manage_stock po zakończeniu wyprzedaży. |
Włącz backorder po zakończeniu wyprzedaży outletowej |
Pozwala włączyć backorder i oznaczyć produkt jako dostępny po zakończeniu sprzedaży outletowej. |
Konfiguracja jest dostępna na poziomie default, website i store. Kategorie OUTLET używane przez cron są pobierane z konfiguracji domyślnej.
Konfiguracja kategorii OUTLET
- Utwórz w Magento kategorię lub kategorie przeznaczone na outlet.
- Upewnij się, że kategorie są aktywne i widoczne w menu lub listingu, jeżeli mają być dostępne dla klientów.
- W konfiguracji modułu wybierz wszystkie kategorie outletowe w polu
Kategorie outletowe. - Zapisz konfigurację.
- Wyczyść cache Magento.
php bin/magento cache:flush
Import produktów do OUTLET
Przejdź do panelu:
kowal > Upload Outlet Products
W formularzu:
- Wklej listę SKU, po jednym SKU w linii.
- Wybierz kategorie OUTLET.
- Opcjonalnie wybierz website, do których produkt ma zostać przypisany.
- Wybierz, czy moduł ma włączyć obsługę stanów magazynowych dla importowanych produktów.
- Kliknij
Importuj.
Przykładowa lista SKU:
TSHIRT-BLACK-M
TSHIRT-BLACK-L
JACKET-NAVY-XL
SHOES-WHITE-42
Podczas importu moduł:
- przypisuje produkty do kategorii OUTLET,
- ustawia atrybut
sale, - aktualizuje parenty configurable,
- tworzy kopię ceny specjalnej i dat promocji,
- aktualizuje stock zgodnie z wybraną opcją,
- odświeża indeksy i cache produktów oraz kategorii.
Obsługa produktów konfigurowalnych
Jeżeli importowany produkt jest wariantem produktu konfigurowalnego, moduł wyszukuje parenta i przypisuje go do kategorii OUTLET. Dzięki temu produkt konfigurowalny pojawia się w listingu kategorii, a klient może wybrać outletowy wariant.
Podczas cyklicznego przeliczenia moduł sprawdza, czy parent nadal ma aktywne warianty OUTLET. Jeżeli nie, parent zostaje odpięty od kategorii OUTLET.
Obsługa cen specjalnych
Przy imporcie do OUTLET moduł zapisuje kopię:
special_price,special_from_date,special_to_date.
Kopia jest zapisywana zgodnie ze scope atrybutu ceny specjalnej w Magento:
- dla cen globalnych: na poziomie globalnym,
- dla cen per website: na poziomie domyślnego store view każdego website,
- dla cen per store: na poziomie store view.
Moduł nie przelicza walut. Magento przechowuje ceny jako wartości bazowe dla właściwego scope, a prezentacja walut na frontendzie pozostaje po stronie standardowych mechanizmów Magento.
Zachowanie po zakończeniu OUTLET zależy od opcji Usuń ceny specjalne dla produktów po wyprzedaży:
Tak: moduł czyści cenę specjalną i usuwa kopię techniczną,Nie: moduł przywraca cenę specjalną oraz daty z kopii, a następnie usuwa kopię techniczną.
Cron
Moduł posiada zadanie cron:
kowal_outletproducts_outlet
Zadanie uruchamia helper OUTLET i cyklicznie sprawdza produkty outletowe. Cron usuwa produkty z kategorii OUTLET, gdy nie powinny już tam być widoczne, oraz odświeża indeksy i cache.
Po instalacji upewnij się, że cron Magento działa poprawnie:
php bin/magento cron:run
W środowisku produkcyjnym cron powinien być uruchamiany z systemowego crontaba użytkownika aplikacji Magento.
Ręczne uruchomienie przeliczenia
Przeliczenie można uruchomić ręcznie z CLI:
php bin/magento kowal_outletproducts:generate
Komenda wykonuje ten sam proces, który jest uruchamiany przez cron.
Indeksy i cache
Po zmianach moduł odświeża najważniejsze indeksy produktowe i katalogowe:
catalog_product_price,catalog_product_category,catalogsearch_fulltext,inventory,cataloginventory_stock.
Moduł czyści również cache tagów produktów i kategorii OUTLET, dzięki czemu listing kategorii powinien aktualizować się po zmianie statusu lub odpięciu produktu.
W razie potrzeby można wymusić pełną reindeksację:
php bin/magento indexer:reindex
php bin/magento cache:flush
Test po wdrożeniu
Zalecany test funkcjonalny:
- Wybierz produkt prosty z zapasem magazynowym.
- Ustaw mu cenę specjalną i daty promocji.
- Dodaj produkt do OUTLET przez panel importu.
- Sprawdź, czy produkt pojawił się w kategorii OUTLET.
- Sprawdź, czy atrybut
salema wartośćTak. - Dla produktu konfigurowalnego sprawdź, czy parent pojawił się w OUTLET.
- Zmień stan produktu tak, aby nie był salable.
- Uruchom cron lub komendę CLI.
- Sprawdź, czy produkt został usunięty z kategorii OUTLET.
- Sprawdź, czy cena specjalna została przywrócona albo usunięta zgodnie z konfiguracją.
Najczęstsze problemy
Produkt nadal jest widoczny w OUTLET
Sprawdź:
- czy cron Magento działa,
- czy produkt nie ma nadal
sale = 1, - czy produkt jest przypisany do jednej z kategorii skonfigurowanych jako OUTLET,
- czy indeksy i cache zostały odświeżone.
Pomocnicze komendy:
php bin/magento cron:run
php bin/magento indexer:reindex
php bin/magento cache:flush
Parent configurable nadal jest w OUTLET
Sprawdź, czy którykolwiek wariant produktu nadal ma sale = 1. Parent jest utrzymywany w OUTLET, dopóki ma aktywny wariant outletowy.
Cena specjalna nie została przywrócona
Sprawdź:
- czy produkt był wcześniej dodany do OUTLET po instalacji atrybutów kopii,
- czy atrybut
special_price_copy_activebył ustawiony, - czy konfiguracja
Usuń ceny specjalne dla produktów po wyprzedażyjest ustawiona naNie, - jaki scope cen jest ustawiony w Magento.
Ceny różnią się między store view
Sprawdź konfigurację scope cen w Magento. Moduł nie przelicza walut i nie synchronizuje cen między store view. Przywraca wartości zapisane dla właściwego scope cenowego.
Deinstalacja
Jeżeli moduł ma zostać wyłączony:
php bin/magento module:disable Kowal_OutletProducts
php bin/magento setup:upgrade
php bin/magento cache:flush
Usunięcie pakietu Composer:
composer remove kowal/module-outletproducts
php bin/magento setup:upgrade
php bin/magento cache:flush
Przed usunięciem modułu zalecane jest sprawdzenie, czy produkty nie wymagają ręcznego oczyszczenia atrybutu sale lub odpięcia z kategorii OUTLET.















