Skip to main content

Przegląd

Niektóre motywy nie aktualizują ikony automatycznie, a ten przewodnik pokaże Ci, jak to naprawić za pomocą odrobiny niestandardowego kodu. Wykonaj poniższe kroki, aby wszystko poprawnie się synchronizowało. Oto przykład, jak wygląda ta niezgodność: Drawer Upcart pokazujący Cart 2, podczas gdy dymek ikony koszyka motywu nadal wyświetla 1

Ważne kroki, zanim zaczniesz!

Aby naprawić problem z ikoną koszyka, musisz zidentyfikować nazwę klasy swojej ikony koszyka. Każdy motyw jest inny, a ten krok zapewnia, że kod będzie działał konkretnie w Twoim sklepie.

1. Użyj Chrome Developer Tools

Każdy motyw jest inny, więc musisz użyć Chrome Developer Tools (Inspect), aby zidentyfikować nazwę klasy swojej ikony koszyka.
  • Kliknij prawym przyciskiem myszy ikonę koszyka w swoim sklepie i wybierz Inspect w Google Chrome.
  • Znajdź element HTML swojej ikony koszyka (np. <span class="cart-count-bubble">).
  • Potrzebujesz pomocy z Chrome Developer Tools? Zajrzyj do tego przewodnika z instrukcjami krok po kroku.

2. Poproś o pomoc (opcjonalnie)

Jeśli nie możesz znaleźć klasy ikony koszyka lub utkniesz, nie martw się! Masz opcje:
  • Skontaktuj się z deweloperem motywu: zna Twój motyw najlepiej i pomoże Ci znaleźć właściwą klasę.
  • Zatrudnij eksperta Shopify: jeśli potrzebujesz dodatkowego wsparcia, Shopify ma katalog zaufanych ekspertów, którzy mogą pomóc. Znajdź eksperta Shopify tutaj.

🚧 Zastrzeżenie dotyczące niestandardowego kodu

Podany poniżej przykładowy kod to tylko szablon — nie zadziała, jeśli po prostu go skopiujesz i wkleisz. Musisz zastąpić przykładową nazwę klasy (np. .cart-count-bubble > span) konkretną nazwą klasy Twojej ikony koszyka.

Naprawa krok po kroku

Podzieliliśmy ten proces na trzy poziomy poprawek, zaczynając od najprostszego rozwiązania (Poziom 1). Każdy poziom bazuje na poprzednim — najpierw wypróbuj Poziom 1, a do Poziomu 2 lub 3 przechodź tylko w razie potrzeby.

Krok 1: Dodaj niestandardowy kod w Upcart

Najpierw, ponieważ będziemy musieli dodać niestandardowy kod HTML w edytorze Upcart, przygotujmy tę sekcję:
  1. Przejdź do Upcart Editor > Settings, a następnie otwórz zakładkę Custom HTML (znajduje się pod More settings, jeśli nie mieści się w rzędzie zakładek).
  2. Ustaw lokalizację na Scripts (Before Load).
  3. Wklej tutaj swój zmodyfikowany kod (przykłady dla każdego poziomu podajemy poniżej).
Oto jak to wygląda: Ustawienia Custom HTML w Upcart z lokalizacją HTML ustawioną na Scripts Before Load

Krok 2: Zastosuj poprawkę według poziomu

Poziom 1 (podstawowy)

Gdy koszyk się ładuje, ten skrypt sumuje ilości z pozycji koszyka i wpisuje wynik do elementu licznika w dymku koszyka Twojego motywu. Pasuje do motywów, w których licznik znajduje się w prostym zagnieżdżonym elemencie (na przykład .cart-count-bubble > span). Nie zapomnij
  • Zastąp .cart-count-bubble > span klasą swojej ikony koszyka.
  • Po dodaniu kodu przetestuj go w swoim sklepie.
Wklejanie skryptu liczącego Poziomu 1 do Custom HTML Upcart z użyciem selektora cart-count-bubble

Przykładowy kod dla Poziomu 1

Uwaga dotycząca starszych wersji: callbacki window.upcartOnCartLoaded nadal działają, ale są przestarzałe i logują ostrzeżenia w konsoli. Używaj upcartSubscribeCartLoaded we wszystkich nowych skryptach. Pamiętaj, że event.cart nie ma właściwości item_count — użyj event.cart.items.reduce((total, item) => total + item.quantity, 0), aby obliczyć łączną liczbę produktów.

Poziom 2 (średniozaawansowany)

Jeśli Poziom 1 nie zadziałał, Twój motyw może zastępować cały kod HTML ikony koszyka przy zmianie licznika. Ta wersja odbudowuje znaczniki ikony dla stanów pustego i niepustego koszyka, aby licznik i ikona pozostawały zsynchronizowane. Nie zapomnij
  • Zastąp #cart-icon-bubble-custom selektorem kontenera ikony koszyka w Twoim motywie.
  • Przetestuj po zapisaniu.
Wklejanie skryptu ikony koszyka Poziomu 2 do Custom HTML Upcart z użyciem selektora cart-icon-bubble-custom

Przykładowy kod dla Poziomu 2

Uwaga dotycząca starszych wersji: callbacki window.upcartOnCartLoaded nadal działają, ale są przestarzałe i logują ostrzeżenia w konsoli. Używaj upcartSubscribeCartLoaded we wszystkich nowych skryptach.Pamiętaj, że event.cart nie ma właściwości item_count — powyższe skrypty wyliczają sumę za pomocą event.cart.items.reduce((total, item) => total + item.quantity, 0) i przekazują ją jako itemCount. Starsze kopie tych fragmentów, które interpolują cart.item_count, rzucają ReferenceError i po cichu nigdy nie aktualizują ikony.

Poziom 3 (zaawansowany)

Jeśli Twój motyw używa oddzielnych znaczników ikony koszyka dla desktopu i mobile, uruchom tę samą logikę aktualizacji na dwóch selektorach, tak aby każdy viewport otrzymał prawidłowy kod HTML i licznik. Nie zapomnij
  • Zastąp #cart-icon-bubble-custom-desktop i #cart-icon-bubble-custom-mobile klasami swojego motywu.
  • Dokładnie przetestuj zarówno na desktopie, jak i na mobile.
Wklejanie skryptu Poziomu 3 do Custom HTML Upcart z oddzielnymi selektorami ikony koszyka dla desktopu i mobile

Przykładowy kod dla Poziomu 3

Uwaga dotycząca starszych wersji: callbacki window.upcartOnCartLoaded nadal działają, ale są przestarzałe i logują ostrzeżenia w konsoli. Używaj upcartSubscribeCartLoaded we wszystkich nowych skryptach.Pamiętaj, że event.cart nie ma właściwości item_count — powyższe skrypty wyliczają sumę za pomocą event.cart.items.reduce((total, item) => total + item.quantity, 0) i przekazują ją jako itemCount. Starsze kopie tych fragmentów, które interpolują cart.item_count, rzucają ReferenceError i po cichu nigdy nie aktualizują ikony.

Nadal nie działa?

Jeśli żaden z tych poziomów nie rozwiązuje problemu, nie martw się — nadal masz opcje! Prawdopodobnie oznacza to, że Twój motyw wymaga bardziej zaawansowanego dostosowania. Oto co możesz zrobić dalej:
  • Skontaktuj się z deweloperem swojego motywu w celu uzyskania pomocy.
  • Zatrudnij eksperta Shopify, który stworzy niestandardowe rozwiązanie dopasowane do Twojego sklepu.