SW Shopware 6 Początkujący

Licznik sprzedaży Shopware 6: przewodnik instalacji i konfiguracji

Instalacja, konfiguracja i personalizacja licznika sprzedaży na kartach produktów Shopware 6.5, 6.6 i 6.7.

Zaktualizowano Wersja modułu 1.0.0

Ten przewodnik obejmuje instalację, konfigurację i personalizację wtyczki DfSalesCounter, która pokazuje na każdej karcie produktu, ile razy produkt został już sprzedany, na podstawie rzeczywistych zamówień twojego sklepu Shopware 6.

Wymagania

  • Shopware 6.5.x, 6.6.x lub 6.7.x w instalacji własnej. Shopware Cloud (SaaS) nie przyjmuje wtyczek serwerowych.
  • PHP 8.1 lub nowszy.
  • Motyw witryny pochodny od motywu Storefront Shopware albo motyw własny, który zachowuje standardowe bloki Twig bloku zakupu.
  • Dostęp do wiersza poleceń jest zalecany do kompilacji motywu, ale instalacja z panelu administracyjnego również działa.

Instalacja

Wgranie ZIP z panelu administracyjnego

  1. W panelu administracyjnym Shopware otwórz Rozszerzenia, a następnie Moje rozszerzenia.
  2. Kliknij Wgraj rozszerzenie i wybierz plik DfSalesCounter-1.0.0.zip.
  3. Gdy wtyczka pojawi się na liście, kliknij Zainstaluj, a potem włącz ją przełącznikiem.
  4. Przekompiluj motyw w Treści, Motywy, wybierając swój motyw i klikając Przekompiluj motyw. Ten krok jest potrzebny tylko raz, ponieważ wtyczka dostarcza arkusz stylów witryny.

Z wiersza poleceń

Umieść katalog DfSalesCounter w custom/plugins/ swojej instalacji, a następnie wykonaj:

bin/console plugin:refresh
bin/console plugin:install --activate DfSalesCounter
bin/console theme:compile
bin/console cache:clear

W środowisku z procesem wdrożeniowym kompilacja motywu zwykle należy już do standardowych kroków.

Konfiguracja

Strona konfiguracji znajduje się w Rozszerzenia, Moje rozszerzenia, przycisk po prawej stronie DataFirefly Sales Counter, a następnie Konfiguruj. Selektor u góry strony pozwala wybrać kanał sprzedaży, którego dotyczy konfiguracja: każdy kanał może mieć własny próg, własny tekst i własne położenie.

Zakładka Ogólne

  • Włącz licznik sprzedaży: główny przełącznik. Wyłączony, żadne zapytanie nie jest wykonywane i żadna plakietka nie jest renderowana.
  • Tryb zliczania: Sprzedana ilość sumuje wszystkie zamówione ilości produktu. Liczba zamówień liczy odrębne zamówienia, które zawierały produkt. Pierwszy tryb podkreśla wolumen, drugi liczbę różnych przekonanych klientów.
  • Uwzględniane zamówienia: Wszystkie zamówienia daje surową liczbę. Wyklucz zamówienia anulowane odrzuca te, których status maszyny stanów to cancelled. Tylko zamówienia opłacone zachowuje wyłącznie zamówienia z transakcją w statusie paid lub paid_partially.
  • Minimalny próg wyświetlania: poniżej tej wartości żadna plakietka się nie pojawia. Wartość domyślna to 5. Próg 0 jest traktowany jak 1, plakietka nigdy nie jest renderowana dla produktu bez sprzedaży.
  • Okres w dniach: ogranicza zliczanie do ostatnich X dni, na podstawie daty zamówienia. Wartość 0 oznacza sumę od początku.
  • Sumuj sprzedaż wszystkich wariantów: dodaje sprzedaż produktu nadrzędnego i wszystkich jego wariantów. Zalecane przy katalogu odzieżowym lub rozmiarowym, do wyłączenia, gdy każdy wariant odpowiada innemu zastosowaniu.
  • Licz tylko zamówienia bieżącego kanału sprzedaży: zapobiega temu, by sklep B2B lub kanał eksportowy zawyżał liczby pokazywane w sklepie detalicznym.

Zakładka Wyświetlanie

  • Położenie na karcie produktu: Pod nazwą produktu, Pod ceną albo Pod blokiem zakupu, czyli na dole bloku, poniżej przycisku dodania do koszyka.
  • Styl wizualny: Plakietka renderuje pigułkę z obramowaniem, Zwykły tekst renderuje wiersz bez ramki, Pasek renderuje blok na pełną szerokość z kolorowym paskiem bocznym.
  • Ikona: płomień, koszyk, ptaszek albo brak. Ikony są w SVG inline, żaden font ikon nie jest ładowany.
  • Kolor akcentu: pozostawiony pusty, używany jest kolor podstawowy motywu. Wypełniony, zasila zmienną CSS --df-sales-counter-accent na elemencie plakietki.
  • Separator tysięcy: wąska spacja, przecinek, kropka albo brak. Przydatny, gdy tylko liczniki przekroczą tysiąc.
  • Tekst niestandardowy: patrz następna sekcja.
  • Czas życia pamięci podręcznej w sekundach: domyślnie 900. Wartość 0 wyłącza pamięć podręczną i odpytuje bazę przy każdym wyświetleniu karty.

Personalizacja tekstu

Tekst globalny z konfiguracji

Pole Tekst niestandardowy przyjmuje zdanie ze znacznikiem %count% w miejscu, w którym ma pojawić się liczba. Przykład: Ten model rozszedł się %count% razy w tym miesiącu. Ten tekst jest wspólny dla wszystkich języków kanału sprzedaży. Przed wyrenderowaniem jest oczyszczany, co pozwala na proste znaczniki takie jak <strong>, ale blokuje wszelkie skrypty.

Teksty per język przez fragmenty

Pozostaw pole Tekst niestandardowy puste, aby sterować tekstem język po języku. Otwórz Ustawienia, Sklep, Fragmenty, a następnie wyszukaj dfSalesCounter. Dostępne są cztery klucze:

  • dfSalesCounter.badge.quantitySingular i dfSalesCounter.badge.quantityPlural, używane w trybie sprzedanej ilości.
  • dfSalesCounter.badge.ordersSingular i dfSalesCounter.badge.ordersPlural, używane w trybie liczby zamówień.

Każda wartość przyjmuje znacznik %count%. Tłumaczenia angielskie, francuskie, hiszpańskie, niemieckie i włoskie są dostarczane z wtyczką. Wartość zmieniona w menedżerze fragmentów ma pierwszeństwo przed wartością wtyczki, także po aktualizacji.

Jak obliczana jest liczba

Wtyczka czyta pozycje zamówień typu produkt, złączone z zamówieniem i jego statusem. Obliczenie wykonuje się jednym zapytaniem agregującym, bez procesu w tle i bez dedykowanej tabeli.

  • W trybie ilościowym zapytanie sumuje kolumnę ilości pozycji zamówień.
  • W trybie zamówień liczy odrębne identyfikatory zamówień.
  • Uwzględniana jest wyłącznie wersja aktywna zamówień, wersje robocze tworzone przy korekcie lub edycji zamówienia są pomijane.
  • Przy włączonym sumowaniu wariantów wtyczka najpierw rozwiązuje rodzinę wyświetlanego produktu, produkt nadrzędny i warianty, a następnie filtruje po całym zbiorze identyfikatorów.

Jeśli wynik jest niższy od skonfigurowanego progu, do produktu nie jest dodawane żadne rozszerzenie i szablon nic nie renderuje. Plakietka nie istnieje więc w HTML, co wyklucza jakiekolwiek szczątkowe wyświetlenie przez regułę CSS motywu.

Pamięć podręczna i aktualność liczby

Wynik jest zapisywany w puli pamięci podręcznej aplikacji Symfony, pod kluczem łączącym identyfikator produktu, kanał sprzedaży i sygnaturę opcji wpływających na obliczenie. Zmiana trybu zliczania, zakresu zamówień, okresu lub opcji sumowania zmienia tę sygnaturę i tym samym automatycznie unieważnia poprzednie wartości.

Przy każdym złożonym zamówieniu wtyczka czyści pamięć podręczną produktów zawartych w tym zamówieniu oraz ich produktu nadrzędnego. Licznik odzwierciedla więc sprzedaż bez czekania na wygaśnięcie skonfigurowanego czasu życia.

Przy skromnym katalogu czas życia pamięci podręcznej można ustawić na 0 bez odczuwalnych konsekwencji: zapytanie działa na indeksowanych kolumnach. Przy dużym katalogu z wysokim ruchem zachowaj czas życia rzędu kilku minut.

Zaawansowana personalizacja renderowania

Wtyczka nadpisuje blok zakupu strony produktu i dodaje plakietkę w trzech standardowych blokach Twig, zależnie od wybranego położenia: bloku nazwy produktu, bloku kontenera ceny i bloku kontenera zakupu. Sama plakietka jest renderowana przez dedykowany szablon komponentu, storefront/component/df-sales-counter/badge.html.twig, który udostępnia dwa nadpisywalne bloki, jeden na ikonę i jeden na tekst.

Z poziomu motywu lub wtyczki rozszerzenie jest dostępne w Twig na produkcie strony pod nazwą dfSalesCounter. Udostępnia liczbę surową, liczbę sformatowaną, położenie, styl, ikonę, kolor akcentu, tekst niestandardowy i tryb zliczania. Możesz więc wyrenderować licznik poza blokiem zakupu, na przykład w zakładce informacji o produkcie, pobierając rozszerzenie i dołączając komponent.

Style są zdefiniowane w Resources/app/storefront/src/scss/base.scss wokół klas df-sales-counter, df-sales-counter__icon i df-sales-counter__text, z jednym modyfikatorem na styl wizualny. Każda reguła twojego motywu skompilowana po regule wtyczki ma pierwszeństwo, bez konieczności modyfikowania wtyczki.

Rozwiązywanie problemów

Plakietka się nie pojawia

Sprawdź po kolei: wtyczka jest aktywna, przełącznik włączenia jest ustawiony na tak dla właściwego kanału sprzedaży, produkt osiągnął skonfigurowany próg, a wybrany zakres zamówień nie wyklucza wszystkich twoich zamówień. Próg 5 z zakresem Tylko zamówienia opłacone w sklepie testowym, którego zamówienia nigdy nie są oznaczane jako opłacone, nigdy nie da żadnego wyświetlenia.

Plakietka pojawia się bez stylów

Motyw nie został przekompilowany po aktywacji. Wykonaj bin/console theme:compile albo użyj przycisku przekompilowania w panelu administracyjnym.

Liczba wydaje się zamrożona

Czas życia pamięci podręcznej jeszcze nie minął. Wyczyść pamięć podręczną aplikacji poleceniem bin/console cache:pool:clear cache.app albo tymczasowo ustaw czas życia na 0, aby zweryfikować obliczenie.

Plakietka nie trafia we właściwe miejsce

Mocno spersonalizowany motyw mógł usunąć lub zmienić nazwy bloków Twig bloku zakupu. Wypróbuj inne położenie w konfiguracji albo dołącz komponent ręcznie w swoim szablonie, pobierając rozszerzenie produktu.

Aktualizacja i odinstalowanie

Aktualizację przeprowadza się przez wgranie nowego ZIP i kliknięcie Aktualizuj, a następnie przekompilowanie motywu, jeśli wersja zawiera zmiany stylów. Konfiguracja zostaje zachowana.

Przy odinstalowaniu pole wyboru proponuje zachowanie danych użytkownika. Odznaczone, usuwa wszystkie klucze konfiguracji wtyczki. Wtyczka nie tworzy żadnych tabel i nie wykonuje migracji, więc odinstalowanie nie pozostawia w bazie niczego poza jej konfiguracją.

Wykaz kluczy konfiguracji

Wszystkie klucze mają przedrostek DfSalesCounter.config. i można nimi zarządzać przez Admin API lub polecenie system:config:set:

  • active, wartość logiczna
  • countMode, wartości quantity lub orders
  • orderScope, wartości all, notCancelled lub paid
  • minThreshold, liczba całkowita
  • periodDays, liczba całkowita
  • aggregateVariants, wartość logiczna
  • scopeToSalesChannel, wartość logiczna
  • position, wartości afterName, afterPrice lub afterBuy
  • style, wartości badge, inline lub banner
  • icon, wartości none, flame, cart lub check
  • accentColor, ciąg szesnastkowy
  • thousandSeparator, wartości space, comma, dot lub none
  • customText, ciąg znaków
  • cacheTtl, liczba całkowita w sekundach
Czy ta strona była pomocna?

Nadal utknąłeś? Napisz do wsparcia