Shopware Marketing i promocje

Licznik Koszyków dla Shopware 6: społeczny dowód słuszności „W ponad 20 koszykach” na karcie produktu

Dowód słuszności, który sprzedaje: pokaż, ilu klientów ma już ten produkt w koszyku.

W Shopware koszyk nie istnieje jako wiersze tabeli: jest serializowany do jednej kolumny payload w tabeli cart. Wyświetlenie komunikatu „ten produkt jest w 23 koszykach” wymagałoby więc deserializacji wszystkich koszyków sklepu przy każdym otwarciu karty produktu, co jest niewykonalne. Ta wtyczka rozwiązuje problem inaczej: utrzymuje własny indeks (token koszyka, produkt, kanał sprzedaży, znacznik zamówienia) zasilany na bieżąco zdarzeniami koszyka Shopware, a następnie zlicza ten indeks jednym zindeksowanym zapytaniem trzymanym w cache. Efektem jest odznaka społecznego dowodu słuszności oparta na prawdziwych danych koszyków, bez mierzalnego wpływu na czas renderowania karty produktu.

W skrócie
  • Odznaka „W ponad 20 koszykach” pod blokiem zakupu na karcie produktu
  • Rzeczywiste zliczanie aktywnych koszyków, deduplikowane po tokenie i ograniczone do kanału sprzedaży
  • Dedykowany indeks zasilany zdarzeniami koszyka, omijający serializację koszyka Shopware
  • Próg wyświetlania, okno czasowe, zaokrąglony próg lub dokładna liczba, konfigurowalny cache
  • Zgodność z Shopware 6.5, 6.6 i 6.7, teksty przetłumaczone na 6 języków
Shopware 6.5 / 6.6 / 6.7 PHP 8.1+ Wiele kanałów sprzedaży 6 języków Kod źródłowy w zestawie
  • Zwrot w 30 dni
  • 12 miesięcy aktualizacji
  • Wsparcie 24 h
www.datafirefly.com/pl/
Odznaka „W ponad 20 koszykach” wyświetlona pod blokiem zakupu na karcie produktu Shopware 6
v1.0.0 · zaktualizowano 2026-08-11
Co robi

W skrócie.

01

Natychmiastowy dowód słuszności

Odznaka „W ponad 20 koszykach” pod blokiem zakupu, uruchamiana wyłącznie powyżej ustalonego progu. Poniżej nic się nie wyświetla, więc komunikat zawsze pozostaje korzystny.

02

Oparta na prawdziwych danych

Zliczanie koszyków, które faktycznie zawierają produkt, deduplikowane po tokenie koszyka i ograniczone do bieżącego kanału sprzedaży. Żadnych zmyślonych liczb ani losowych symulacji.

03

Indeks zamiast deserializacji

Shopware serializuje koszyk do jednego payloadu. Wtyczka utrzymuje tabelę indeksu zasilaną przez CartSavedEvent, co zamienia problem niewykonalny w zindeksowane zapytanie trwające kilka milisekund.

04

Wydajność pod kontrolą

Wbudowany cache o konfigurowalnym czasie życia, czyszczony automatycznie przy każdej zmianie konfiguracji. Żadnego przeliczania SQL przy każdym wyświetleniu, nawet przy szczytach ruchu.

05

Warianty zagregowane

W produkcie z wariantami koszyki wszystkich wariantów sumują się na liczniku produktu nadrzędnego. Rozmiar 42 w trzech koszykach i rozmiar 43 w dwóch dają pięć koszyków, a nie dwa osobne liczniki.

06

Konfigurowalna w szczegółach

Próg, okno czasowe, tylko aktywne koszyki, tryb progowy lub dokładny, krok zaokrąglenia, położenie nad lub pod blokiem zakupu, trzy style odznaki, okres przechowywania danych.

Wersja pełna

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.

§ 01

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.

§ 02

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.

§ 03

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ę.

§ 04

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.

§ 05

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.

§ 06

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.