Smart Offers: kompletna dokumentacja
Konfiguracja i obsługa Ofert pakietowych w PrestaShop 1.7.8, 8 i 9: kup X otrzymaj Y, prezenty za zestaw, oferty do wyboru i pakiety, naliczane automatycznie i bezpiecznie w koszyku.
Oferty pakietowe pozwalają prowadzić w PrestaShop cztery najpopularniejsze promocje łączone: kup X i otrzymaj Y tego samego produktu, prezent za produkty kupione razem, oferty do wyboru z wybranej grupy oraz pakiety. Moduł dodaje artykuły nagrody do koszyka, nalicza rabat i pokazuje ofertę na karcie produktu oraz w koszyku, w PrestaShop 1.7.8, 8 i 9.
Kompatybilność
| Element | Obsługiwane |
|---|---|
| PrestaShop | 1.7.8, 8.0–8.2, 9.0 i nowsze (jeden plik ZIP) |
| PHP | 7.2 i nowsze (obowiązuje wersja wymagana przez Twój PrestaShop) |
| Motywy | Classic, Hummingbird i ich motywy potomne |
| Multisklep, wiele walut, warianty | Tak |
| Języki | angielski, francuski, hiszpański, niemiecki, włoski, polski, niderlandzki, portugalski |
Instalacja i aktualizacja
- W zapleczu otwórz Moduły → Menedżer modułów i kliknij Prześlij moduł.
- Upuść plik
dfoffers-3.0.0.zip. - Moduł pojawi się w Katalog → Rabaty → Oferty pakietowe, obok reguł koszyka.
Aktualizacja z 2.x: prześlij nowy plik ZIP na stary. Oferty, produkty, tłumaczenia i sklepy zostają zachowane. Skrypt aktualizacji dodaje nowe opcje, przenosi pozycję menu i zabezpiecza reguły koszyka utworzone już przez 2.x (nie może już powstać kupon na pozostałą kwotę).
Panel
Strona Oferty pokazuje aktywne oferty, ważne zamówienia z ostatnich 30 dni, w których użyto oferty, ich przychód i udzielony rabat. Każda oferta pokazuje swoją regułę prostym językiem, status (aktywna, zaplanowana, zakończona, wyłączona), daty, zamówienia i rabat. Możesz wyszukiwać, filtrować według statusu, włączać i wyłączać jednym kliknięciem, duplikować, usuwać i wykonywać akcje zbiorcze.

Cztery typy ofert
- Kup X, otrzymaj Y tego samego produktu: klasyczne 1+1 lub 2+1. Każdy produkt z listy ma własną ofertę; zostaw „dowolny wariant”, aby liczyć wszystkie warianty razem.
- Kup produkty razem, otrzymaj prezent: wszystkie produkty wyzwalające muszą być w koszyku, produkty nagrody są wtedy gratis lub tańsze.
- Dowolne z wybranej grupy: klient wybiera N sztuk spośród produktów lub wariantów, najtańsze są gratis lub tańsze (np. 3 za 2 na wszystkie kubki).
- Pakiet: za każdy pakiet X sztuk jednego produktu klient otrzymuje Y sztuk innego produktu.
Tworzenie oferty
Kliknij Nowa oferta albo wybierz jeden z czterech szablonów, gdy nie ma jeszcze żadnej oferty. Edytor ma pięć kroków, a po prawej podgląd na żywo banera produktu i podsumowanie reguły prostym językiem.
- Typ oferty: jedna z czterech kart. Widoczne są tylko potrzebne pola.
- Produkty i ilości: dodaj produkty w oknie wyszukiwania, po nazwie, indeksie lub ID. Produkt z wariantami dodaj dla wszystkich wariantów albo wybierz jeden lub kilka.
- Nagroda: gratis (100%) lub procent (50 dla „drugi za pół ceny”), automatyczne dodanie do koszyka lub nie, powtarzanie dla każdego pełnego zestawu, limit na koszyk.
- Wyświetlanie: nazwa, tekst plakietki i dodatkowy tekst w każdym języku, kolor oferty. Kolor tekstu plakietki dobierany jest automatycznie, aby pozostał czytelny.
- Dostępność: status, daty początku i końca, priorytet, grupy klientów i sklepy.


Gdy artykuły nagrody nie są dodawane automatycznie, klient dodaje je sam, a rabat nalicza się, gdy tylko są w koszyku; koszyk przypomina mu wtedy o czekającej nagrodzie.

Baner na karcie produktu
Na każdym objętym produkcie baner wyjaśnia ofertę: produkty do kupienia i nagrodę, przekreśloną cenę regularną obok darmowych lub przecenionych artykułów, datę końca oferty oraz stan „Zastosowana w Twoim koszyku”, gdy klient z niej korzysta. Dopasowuje się do wąskich kolumn i urządzeń mobilnych.




Koszyk
Pod pozycjami koszyka klient widzi zastosowane oferty z zaoszczędzoną kwotą i otrzymanymi artykułami. Plakietka („Gratis ×1”, „1 za -50%”) oznacza pozycje z przecenionymi sztukami, w koszyku i w podsumowaniu zamówienia. Blok odświeża się po każdej zmianie ilości, zarówno w Classic, jak i w Hummingbird.

Już prawie pokazuje, czego brakuje do odblokowania oferty („Dodaj 1 × koszulka”), a Czeka na Ciebie nagroda przypomina klientowi o dodaniu nagrody, która nie jest dodawana automatycznie.

Jeśli klient usunie prezent, nie jest on ponownie narzucany: oferta zostaje odłożona i pojawia się przycisk Przywróć. Przy „kup X, otrzymaj Y” na ten sam produkt najpierw usuwane są sztuki darmowe: klient nigdy nie traci opłaconej sztuki.

Ustawienia
- Pozycja banera: pod przyciskiem Dodaj do koszyka (zalecane), tuż pod ceną, pod zdjęciami, w bloku gwarancji lub na całą szerokość pod opisem.
- Kompaktowy baner, ceny na banerze i data końca.
- Koszyk: pokazywanie, czego brakuje do odblokowania oferty, plakietka przy pozycjach koszyka.
- Dziennik debugowania: zapisuje każde przeliczenie koszyka w Zaawansowane → Logi; w produkcji pozostaw wyłączone.
- Konserwacja: liczba reguł koszyka utworzonych przez moduł i czyszczenie reguł porzuconych koszyków.

Jak działa silnik
- Przy każdej zmianie koszyka (oraz przy wyświetleniu koszyka lub kasy) moduł odczytuje koszyk i oddziela sztuki opłacone przez klienta od tych, które dodał sam.
- Oferty są oceniane według priorytetu (najpierw 1). Sztuka użyta przez jedną ofertę nie jest używana przez inną, więc ten sam artykuł nigdy nie dostaje podwójnego rabatu.
- Dla każdej spełnionej oferty brakujące nagrody są dodawane (jeśli tak wybrano), a dla każdego przecenionego produktu tworzona lub odświeżana jest reguła koszyka (kod
DFOFFER_…). - Oferty, które przestały obowiązywać, są wycofywane: dodane sztuki zabrane, reguły koszyka usunięte.
Bezpieczeństwo i podatki
- Wszystko jest liczone na serwerze na podstawie koszyka i Twoich ofert; nic, co wysyła przeglądarka, nie wpływa na cenę.
- Każda reguła koszyka jest ograniczona do przecenionego produktu: nigdy nie przekroczy wartości tego produktu w koszyku, a do rabatu stosowana jest stawka VAT tego produktu, także na fakturze.
- Reguły nigdy nie tworzą kuponu na pozostałą kwotę, nie pojawiają się w „Moich kuponach”, a kod skopiowany z innego koszyka jest usuwany przed płatnością.
- Nagroda niedostępna lub wyłączona nie jest przeceniana. Złożone zamówienie nigdy nie jest zmieniane.
- Akcje w zapleczu respektują uprawnienia zakładki dla każdego pracownika (podgląd, dodawanie, edycja, usuwanie).
Reguły koszyka z koszyków porzuconych od 30 dni są usuwane automatycznie raz dziennie przy otwarciu modułu; reguły użyte w zamówieniach są zawsze zachowywane na potrzeby księgowości.
Pomoc i rozwiązywanie problemów
Zakładka Pomoc modułu wyjaśnia działanie i odpowiada na najczęstsze pytania.
- Baner się nie wyświetla: sprawdź, czy oferta jest włączona, mieści się w datach, jest dostępna dla grupy klientów i sklepu oraz czy produkt jest aktywny. Następnie wypróbuj inną pozycję banera: niektóre motywy nie wywołują wszystkich hooków.
- Twój kupon jest odrzucany razem z ofertą: kupon ustawiony jako „niełączący się z innymi regułami koszyka” może odmówić połączenia; zmień go w Katalog → Rabaty.
- Brak plakietki przy pozycjach koszyka: Twój motyw musi zawierać
{hook h='displayProductPriceBlock' product=$product type="unit_price"}lub{hook h='displayCartExtraProductActions' product=$product}w szablonie pozycji koszyka.

Szczegóły techniczne
- Hooki: displayProductAdditionalInfo (lub wybrana pozycja), displayProductPriceBlock, displayAfterProductThumbs, displayReassurance, displayFooterProduct, displayShoppingCartFooter, displayCartExtraProductActions, actionCartSave, actionFrontControllerSetMedia, actionObjectProductDeleteAfter, actionObjectCombinationDeleteAfter.
- Tabele: ps_dfoffers_offer, _offer_lang, _trigger, _reward, _shop, _cart_auto, _rule, _cart_declined.
- Szablony do nadpisania w motywie:
views/templates/hook/product-banner.tpl,cart-offer.tpl,cart-line-gift.tpl. Klasy CSS mają prefiksdfoffers-. - Bez override, bez zadań cron, bez usług zewnętrznych. Odinstalowanie usuwa oferty i nieużywane reguły koszyka; reguły użyte w zamówieniach zostają.