Wszystko, co warto wiedzieć, zanim zainstalujesz.
Szczegółowe spojrzenie na to, jak działa Licznik Koszyków dla Shopware 6: społeczny dowód słuszności „W ponad 20 koszykach” na karcie produktu, dlaczego zbudowaliśmy go w ten sposób i jaka myśl stoi za powyższymi funkcjami.
Dlaczego tego modułu nie ma natywnie w Shopware
W PrestaShop policzenie koszyków zawierających produkt sprowadza się do złączenia z tabelą pozycji koszyka. W Shopware taka tabela nie istnieje: cały koszyk jest serializowany do kolumny payload w tabeli cart, często skompresowanej. Zapytanie SQL nie może więc stwierdzić, co zawiera koszyk, bez jego deserializacji, a deserializowanie kilku tysięcy koszyków przy każdym otwarciu karty produktu nie wchodzi w grę. To właśnie dlatego ten rodzaj dowodu słuszności jest powszechny w PrestaShop i rzadki w Shopware.
Rozwiązanie: indeks zasilany zdarzeniami
Wtyczka tworzy tabelę df_cart_popularity łączącą token koszyka, identyfikator produktu, kanał sprzedaży, ilość i znacznik zamówienia. Indeks jest aktualizowany przy każdym zapisie koszyka przez CartSavedEvent: dodane produkty, zmienione ilości, usunięte pozycje, wszystko synchronizuje się w dwóch zapytaniach. Zliczanie staje się wtedy zwykłym COUNT DISTINCT na indeksie złożonym, wykonywanym raz na czas życia cache i na produkt. Narzut po stronie koszyka to około dwóch zindeksowanych zapytań na zmianę, niewidoczny w profilu wydajności.
Dwa sposoby prezentacji liczby
Tryb progowy zaokrągla licznik w dół według ustalonego kroku, dając efekt „W ponad 20 koszykach”, który pozostaje wiarygodny i zmienia się skokowo. Tryb dokładny pokazuje rzeczywistą liczbę dla sklepów preferujących pełną przejrzystość, z automatycznie obsługiwaną formą pojedynczą. Wszystkie trzy sformułowania żyją w snippetach Shopware i edytuje się je per język z poziomu administracji, bez zmian w kodzie i z dynamicznym miejscem na liczbę.
Uczciwe i konfigurowalne zliczanie
Okno czasowe ogranicza zliczanie do koszyków zaktualizowanych niedawno, co zapobiega kumulowaniu się martwych koszyków sprzed miesięcy. Opcja tylko aktywne koszyki wyklucza te zamienione już w zamówienie, wykrywane przez CartConvertedEvent. Ograniczenie do kanału sprzedaży zapobiega temu, by szczyt w sklepie niemieckim zawyżał licznik w sklepie francuskim. Każdą z tych opcji można nadpisać osobno dla każdego kanału w konfiguracji wtyczki.
Zgodność od 6.5 do 6.7 bez kompromisów
Szablon rozszerza wyłącznie zewnętrzny blok buy widgetu i wywołuje jego rodzica, dzięki czemu jest odporny na zmiany nazw bloków wewnętrznych między 6.5 a 6.7 i współpracuje z motywami modyfikującymi blok zakupu. Czyszczenie danych działa bez zadania zaplanowanego i bez kolejki komunikatów, ponieważ sygnatura handlera zadań zmieniła się między 6.5 a 6.6: uruchamia się najwyżej raz na godzinę albo na żądanie przez polecenie CLI. Struktura wyświetlania jest dołączana zarówno do encji produktu, jak i do strony, co obejmuje renderowanie przez element Buy box w Shopping Experiences oraz szybki podgląd.
Standardy DataFirefly
Wtyczka stworzona bez zależności Composer, renderowanie po stronie serwera, brak zewnętrznej biblioteki JavaScript, brak wychodzących połączeń sieciowych. Jedna utworzona tabela, usuwana przy odinstalowaniu, gdy nie zachowujesz danych. Żadnych danych osobowych: indeks zawiera wyłącznie pseudonimowy token koszyka i referencję produktu, z konfigurowalnym okresem przechowywania. Niezaćmiemniony kod źródłowy PHP i Twig, licencja wieczysta, 12 miesięcy aktualizacji w cenie.
Na razie nie ma opinii o produkcie.