Smart Bundle Engine: dokumentacja
Instalacja, analiza współwystąpień, kontrola marży i wyświetlanie zestawów WooCommerce.
Prezentacja
Smart Bundle Engine analizuje historię zamówień WooCommerce, aby wykryć produkty faktycznie kupowane razem, automatycznie generuje odpowiadające im zestawy i wyświetla je na karcie produktu, w koszyku i w e-mailu po zakupie, z kontrolą marży, która w razie potrzeby automatycznie ogranicza rabat.
Instalacja
- Pobierz plik
df-smart-bundle.zipze swojego konta klienta DataFirefly. - W administracji WordPressa przejdź do Wtyczki → Dodaj nową → Wyślij wtyczkę na serwer.
- Wybierz ZIP, kliknij Zainstaluj teraz i włącz wtyczkę.
- W pasku bocznym administracji pojawia się nowe menu Smart Bundles.
Wymagania: WordPress 6.0+, WooCommerce 7.0+, PHP 7.4+. Zgodność z HPOS (High-Performance Order Storage) jest deklarowana natywnie.
Przy aktywacji wtyczka tworzy 4 dedykowane tabele (df_sbe_cooccurrence, df_sbe_bundles, df_sbe_bundle_items, df_sbe_analysis_state) i planuje crona analizy.
Szybki start
- Przejdź do Smart Bundles → Analiza i kliknij Uruchom analizę teraz.
- Po zakończeniu analizy tabela Najlepsze powinowactwa zakupowe pokazuje wykryte pary wraz z metrykami (wystąpienia, ufność, lift).
- Jeśli generowanie automatyczne jest włączone (domyślnie tak), zestawy tworzą się same: sprawdź je w Smart Bundles → Zestawy.
- Odwiedź odpowiednią kartę produktu po stronie sklepu: blok „Często kupowane razem” pojawia się pod podsumowaniem produktu.
Wskazówka: analiza potrzebuje co najmniej kilkudziesięciu zamówień zawierających kilka produktów, aby dać użyteczne powinowactwa. Jeśli Twoja historia jest uboga, obniż tymczasowo próg minimalnych współwystąpień do 2 w ustawieniach.
Analiza współwystąpień
Silnik przechodzi przez zamówienia zrealizowane i w trakcie realizacji w skonfigurowanym oknie analizy (domyślnie 180 dni), partiami po 200 zamówień. Dla każdego zamówienia zawierającego kilka produktów wyodrębniane i zliczane są wszystkie pary.
Trzy metryki
- Wystąpienia: liczba zamówień zawierających parę A+B.
- Ufność: P(B|A) w procentach, czyli w jakim odsetku zamówień zawierających A występuje też B. Ufność 20 oznacza, że B pojawia się w 20 % zamówień zawierających A.
- Lift: stosunek zaobserwowanej częstości pary do częstości oczekiwanej, gdyby A i B były niezależne. Lift powyżej 1 wskazuje realne powinowactwo, powyżej 2 powinowactwo silne.
Planowanie
Analiza działa automatycznie przez WP-Cron (hook df_sbe_run_analysis). Każde uruchomienie przetwarza do 25 partii po 200 zamówień, a następnie wznawia pracę przy kolejnym wyzwoleniu dzięki trwałemu kursorowi: żadne zamówienie nie jest przetwarzane dwa razy. Przycisk Zresetuj stan czyści tabele analizy i zaczyna od zera.
Uwaga: jeśli WP-Cron jest wyłączony na Twoim serwerze (DISABLE_WP_CRON), upewnij się, że cron systemowy regularnie wywołuje wp-cron.php, inaczej analiza uruchomi się wyłącznie ręcznie.
Automatyczne generowanie zestawów
Po każdej pełnej analizie silnik wybiera pary przekraczające Twoje progi i tworzy odpowiadające im zestawy. Wyborem sterują trzy ustawienia:
- Minimalne współwystąpienia (domyślnie 3): minimalna liczba zamówień zawierających parę.
- Minimalna ufność (domyślnie 10 %): próg ufności, poniżej którego para jest pomijana.
- Maksymalna liczba zestawów na produkt (domyślnie 3): zapobiega przesyceniu jednego produktu.
Wybrane pary są sortowane według wyniku (lift × wystąpienia). Zestawy utworzone automatycznie otrzymują pochodzenie „Auto”; istniejące już zestawy z tymi samymi produktami nigdy nie są duplikowane. Zestawy ręczne są zawsze zachowywane przy ponownych analizach.
Zarządzanie zestawami
Ekran Smart Bundles → Zestawy wymienia wszystkie zestawy z ich produktami, rabatem, minimalną marżą, kontekstami wyświetlania, wyświetleniami i konwersjami. Możesz filtrować po statusie, pochodzeniu (auto/ręczne) albo wyszukiwać swobodnie.
Tworzenie albo edycja zestawu
- Kliknij Nowy zestaw albo Edytuj przy istniejącym zestawie.
- Wyszukaj i dodaj produkty (minimum 2): ilość każdej pozycji jest regulowana, a kolejność zmienia się przeciąganiem.
- Ustaw rabat (procent albo kwota stała) i minimalną marżę.
- Zaznacz pożądane konteksty wyświetlania: karta produktu, koszyk, e-mail.
- Priorytet określa kolejność wyświetlania, gdy kwalifikuje się kilka zestawów (wyższy = pierwszy).
Przy istniejącym zestawie tabela Podgląd wyceny pokazuje na żywo sumę częściową, szacowany koszt, rabat żądany i zastosowany, cenę końcową oraz rzeczywistą marżę.
Kontrola marży
Każdy zestaw ma próg minimalnej marży (w % ceny końcowej). Silnik wylicza odpowiadającą jej cenę minimalną:
cena_min_koncowa = koszt_calkowity / (1 − marza_min / 100)
Jeśli żądany rabat sprowadziłby cenę końcową poniżej tego progu, zostaje automatycznie ograniczony do maksymalnego zgodnego rabatu. Rabat pokazywany w sklepie jest więc zawsze bezpieczny.
Źródło kosztu
Koszt każdego produktu ustalany jest w tej kolejności:
- Meta produktu: domyślnie klucz
_df_cost_price, konfigurowalny w ustawieniach (zgodny z Cost of Goods i innymi wtyczkami cen zakupu). - Współczynnik zapasowy: dla produktów bez wpisanego kosztu przyjmowany jest procent ceny sprzedaży (domyślnie 50 %).
Wskazówka: uzupełnij rzeczywiste koszty najpierw przy najlepiej sprzedających się produktach: ograniczanie marży będzie wtedy dokładne na zestawach, które liczą się najbardziej.
Wyświetlanie w sklepie
Karta produktu
Blok wstawia się na hooku woocommerce_after_single_product_summary z konfigurowalnym priorytetem (domyślnie 15, tuż przed produktami powiązanymi). Wyświetla miniatury produktów połączone znakami „+”, przekreśloną sumę częściową, cenę zestawu i przycisk dodania jednym kliknięciem.
Koszyk
Propozycje pojawiają się pod tabelą koszyka (woocommerce_after_cart_table). Zestawy, których wszystkie produkty są już w koszyku, są automatycznie ukrywane.
E-mail po zakupie
Blok z propozycją wstawiany jest w e-maile Zamówienie zrealizowane i Zamówienie w realizacji (tylko do klientów), w wariantach HTML i tekstowym, z bezpośrednim linkiem powrotnym do sklepu.
Każdy kontekst można włączyć niezależnie, a jego tytuł jest konfigurowalny w ustawieniach.
Stosowanie rabatu
Wtyczka nigdy nie zmienia cen produktów. Gdy zestaw zostanie dodany do koszyka, każda pozycja otrzymuje wewnętrzny znacznik; gdy tylko wszystkie pozycje zestawu są obecne, rabat stosowany jest jako ujemna opłata WooCommerce („Rabat zestawu”). Takie podejście:
- zachowuje ceny pozycji i raporty sprzedaży;
- pozostaje zgodne z podatkami, kosztami wysyłki i kodami rabatowymi;
- automatycznie usuwa rabat, jeśli pozycja zestawu zostanie usunięta z koszyka.
Śledzenie wyników
Każde wyświetlenie zestawu zwiększa jego licznik wyświetleń; każde zamówienie zawierające kompletny zestaw zwiększa jego konwersje (przy przejściu w status „w realizacji” albo „zrealizowane”, z zabezpieczeniem przed podwójnym liczeniem). Współczynnik konwersji per zestaw wyświetlany jest na liście zestawów, a ekran Analiza prezentuje statystyki globalne: przeanalizowane zamówienia, wykryte pary, aktywne zestawy oraz łączne wyświetlenia i konwersje.
Przegląd ustawień
Analiza współwystąpień
- Okno analizy (dni): domyślnie 180. Zamówienia zrealizowane i w realizacji z tego okresu.
- Minimalne współwystąpienia: domyślnie 3.
- Minimalna ufność (%): domyślnie 10.
- Automatyczne generowanie zestawów: domyślnie włączone.
- Maksymalna liczba zestawów na produkt: domyślnie 3.
Wycena i marża
- Rabat domyślny (%): 10, stosowany do zestawów generowanych automatycznie.
- Domyślna marża minimalna (%): 20.
- Klucz meta ceny zakupu:
_df_cost_price. - Zapasowy współczynnik kosztu (%): 50.
Wyświetlanie
- Konteksty: karta produktu / koszyk / e-mail, włączane osobno.
- Priorytet hooka karty produktu: domyślnie 15.
- Tytuły: konfigurowalny tytuł dla każdego kontekstu.
Wielojęzyczność
Wtyczka dostarczana jest z 5 językami (FR, EN, ES, DE, IT) w formacie .po/.mo plus plik .pot na własne tłumaczenia (textdomain df-smart-bundle). Zgodna z Polylangiem i WPML, wyświetlany język podąża za locale witryny albo użytkownika.
Deinstalacja
Wyłączenie wtyczki po prostu usuwa zaplanowanego crona, a Twoje dane pozostają. Usunięcie wtyczki (przez Wtyczki → Usuń) uruchamia uninstall.php, który trwale kasuje 4 tabele, wszystkie opcje i metadane zamówień utworzone przez wtyczkę (zgodnie z HPOS).
Rozwiązywanie problemów
Nie generuje się żaden zestaw
- Sprawdź, czy analiza rzeczywiście zadziałała: Smart Bundles → Analiza powinna pokazywać liczbę przeanalizowanych zamówień większą od zera.
- Obniż progi (minimalne współwystąpienia, minimalna ufność), jeśli Twoja historia jest krótka.
- Sprawdź, czy automatyczne generowanie jest włączone w ustawieniach.
Zestaw nie pojawia się w sklepie
- Zestaw musi być aktywny, a odpowiedni kontekst zaznaczony.
- Zestaw, którego wyliczony rabat wynosi zero (pełne ograniczenie marżą), jest ukrywany na karcie produktu.
- W koszyku zestaw już kompletny jest ukrywany celowo.
- Wyczyść cache stron, jeśli używasz wtyczki cache.
Zastosowany rabat jest niższy niż skonfigurowany
To działanie ograniczenia marżą: całkowity koszt zestawu nie pozwala na żądany rabat bez zejścia poniżej minimalnej marży. Sprawdź koszty produktów albo skoryguj próg marży zestawu.
FAQ
Czy wtyczka działa z produktami wariantowymi?
Analiza i zestawy działają na poziomie produktu nadrzędnego. Warianty tego samego produktu liczone są razem.
Czy mogę wykluczyć niektóre produkty z analizy?
Nie w wersji 1.0.0: po prostu usuń albo wyłącz niechciane zestawy; nie zostaną odtworzone, jeśli usuniesz je po wyłączeniu automatycznego generowania.
Czy zestawy są zgodne z kodami rabatowymi?
Tak. Rabat zestawu to ujemna opłata niezależna od kuponów WooCommerce; oba się kumulują.
Jaki jest wpływ na wydajność?
Analiza działa w tle partiami. Po stronie sklepu zapytania o zestawy są lekkie (indeksowane tabele), a zasoby ładowane wyłącznie na stronach produktów i koszyka.