--- phase: 01-cross-sell-pro-koszyk plan: 01 type: execute wave: 1 depends_on: [] files_modified: - modules/crosssellpro/crosssellpro.php - modules/crosssellpro/views/templates/hook/cartCrossSell.tpl - modules/crosssellpro/views/js/cartCrossSell.js - modules/crosssellpro/views/css/cartCrossSell.css autonomous: false --- ## Goal Zaimplementowac modul Cross Sell PRO, ktory na stronie koszyka wyswietla karuzele produktow uzupelniajacych pobieranych z relacji "Powiazany produkt" i poprawnie obsluguje dodawanie do koszyka/produkty wariantowe. ## Purpose Zwiekszyc srednia wartosc koszyka i ulatwic klientowi kompletowanie zamowienia bez opuszczania flow koszyka. ## Output Dzialajacy modul Prestashop 1.7.8.11 (PHP 7.4) z hookiem koszyka, warstwa widoku karuzeli i logika CTA zalezna od typu produktu. ## Project Context @.paul/PROJECT.md @.paul/ROADMAP.md @.paul/STATE.md ## Source Files @modules/ @controllers/ @themes/ ## AC-1: Render sekcji Cross Sell pod kontenerem koszyka ```gherkin Given Uzytkownik otwiera strone koszyka /koszyk?action=show When Strona koszyka sie renderuje Then Pod elementem "div.card.cart-container" widoczna jest sekcja Cross Sell PRO ``` ## AC-2: Produkty sa pobierane z relacji "Powiazany produkt" ```gherkin Given Produkt bazowy w koszyku ma zdefiniowane produkty powiazane w Prestashop When Modul buduje liste podpowiedzi Then Karuzela pokazuje tylko produkty pochodzace z tych relacji ``` ## AC-3: Karuzela pokazuje wymagane dane produktu ```gherkin Given Lista cross-sell zawiera co najmniej 1 produkt When Sekcja Cross Sell sie wyswietla Then Kazdy slajd zawiera zdjecie, nazwe, cene i przycisk "Dodaj do koszyka" ``` ## AC-4: Poprawne zachowanie CTA dla wariantow ```gherkin Given Produkt cross-sell ma kombinacje i wymaga wyboru wariantu When Uzytkownik klika przycisk CTA Then Uzytkownik zostaje przekierowany na strone produktu zamiast szybkiego add-to-cart ``` ## AC-5: Poprawne zachowanie CTA dla produktow prostych ```gherkin Given Produkt cross-sell nie wymaga wyboru wariantu When Uzytkownik klika przycisk "Dodaj do koszyka" Then Produkt jest dodawany do koszyka bezposrednio z sekcji Cross Sell ``` Task 1: Utworzyc szkielet modulu i logike pobierania produktow cross-sell modules/crosssellpro/crosssellpro.php Utworzyc modul Cross Sell PRO zgodny z Prestashop 1.7.8.11 i PHP 7.4. Zarejestrowac odpowiedni hook koszyka oraz pobieranie danych produktow z relacji "Powiazany produkt" dla produktow znajdujacych sie aktualnie w koszyku. Zapewnic deduplikacje wynikow i odfiltrowanie produktow nieaktywnych/niedostepnych. Przygotowac dane do widoku: obrazek, nazwa, cena, URL produktu, flaga czy produkt ma warianty, parametry add-to-cart dla produktow prostych. Unikac modyfikacji plikow core Prestashop - cala logika musi byc kapsulowana w module. Instalacja modulu przebiega bez bledow, hook zwraca kolekcje danych cross-sell dla koszyka testowego. AC-2 satisfied; AC-5 preconditions prepared. Task 2: Zbudowac widok karuzeli i frontend CTA modules/crosssellpro/views/templates/hook/cartCrossSell.tpl, modules/crosssellpro/views/js/cartCrossSell.js, modules/crosssellpro/views/css/cartCrossSell.css Zaimplementowac sekcje UI renderowana pod "card cart-container" z ukladem karuzeli. W slajdzie pokazac: zdjecie, nazwe, cene i przycisk CTA. Dodac JS obslugujacy przewijanie karuzeli i klikniecia CTA. Dla produktow z wariantami CTA wykonuje przekierowanie na URL produktu. Dla produktow prostych CTA uruchamia add-to-cart (POST lub link zgodny ze standardem Prestashop). Dodac stylowanie responsywne desktop/mobile i podstawowy fallback (lista bez JS). Manualny test na /koszyk?action=show potwierdza render sekcji i oba scenariusze CTA (wariant/bez wariantu). AC-1, AC-3, AC-4, AC-5 satisfied. Modul Cross Sell PRO z sekcja karuzeli na stronie koszyka i logika CTA zalezna od wariantow. 1. Zainstaluj i wlacz modul Cross Sell PRO w zapleczu Prestashop. 2. Dodaj do koszyka produkt, ktory ma zdefiniowane "Powiazane produkty". 3. Otworz: https://drmaterac.pl/koszyk?action=show 4. Sprawdz, czy sekcja jest pod "card cart-container" i czy slajdy zawieraja obraz, nazwe, cene, CTA. 5. Kliknij CTA produktu prostego: powinien wejsc do koszyka. 6. Kliknij CTA produktu z wariantami: powinno byc przekierowanie do strony produktu. Type "approved" to continue, or describe issues to fix ## DO NOT CHANGE - Core Prestashop poza katalogiem modules/crosssellpro/* - Istniejace modyfikacje checkoutu niezwiązane z Cross Sell PRO ## SCOPE LIMITS - Bez zmian w logice zamowienia, platnosci i dostawy. - Bez rozbudowanego panelu konfiguracji modulu poza minimum potrzebnym do uruchomienia. - Bez przebudowy layoutu calej strony koszyka. Before declaring plan complete: - [ ] Modul instaluje sie i aktywuje bez bledow PHP 7.4. - [ ] Sekcja renderuje sie na /koszyk?action=show pod "card cart-container". - [ ] Dane produktow pochodza z relacji "Powiazany produkt". - [ ] CTA dziala poprawnie dla produktow prostych i wariantowych. - [ ] Widok jest czytelny na desktopie i mobile. - All tasks completed - All verification checks pass - No errors or warnings introduced - Cross Sell PRO dziala zgodnie z wymaganiami biznesowymi koszyka After completion, create `.paul/phases/01-cross-sell-pro-koszyk/01-01-SUMMARY.md`