Skip to main content
Obserwuj sumę koszyka i utrzymuj darmowy prezent w synchronizacji z nią: dodaj prezent, gdy kupujący przekroczy próg wydatków, i usuń go, gdy spadnie z powrotem poniżej.
Dla wersji konfigurowanej przez sprzedawcę, z progami, regułami per rynek i paskiem postępu, użyj bloku Rewards, bez kodu. Ten sposób jest na sytuacje, gdy Twojej reguły blok nie potrafi wyrazić.

Fragment kodu

Wklej w Cart settings → Custom script → Initialization i ustaw dwie stałe:

Jak to działa

reconcileGift opisuje stan, w jakim koszyk powinien się znajdować, a następnie wykonuje najwyżej jedną zmianę, aby go osiągnąć:
  • Kwalifikuje się, a prezentu nie ma → addItem go dodaje.
  • Nie kwalifikuje się, a prezent jest → removeItem usuwa go po key pozycji.
  • W przeciwnym razie → nic nie rób.
Działa zarówno na cart_loaded (dzięki czemu koszyk, który kwalifikuje się już przy załadowaniu strony, dostaje prezent), jak i na cart_updated (dzięki czemu reaguje na każdą późniejszą zmianę). Ponieważ cart_loaded jest odtwarzane dla spóźnionych subskrybentów, działa to niezależnie od tego, kiedy uruchomi się Twój skrypt.
To zabezpieczenia !gift / gift powstrzymują zapętlenie. Dodanie prezentu wywołuje cart_updated, które ponownie uruchamia reconcileGift, a drugi przebieg zastaje prezent już obecny, więc nic nie robi. Usuń zabezpieczenia, a dostaniesz nieskończoną pętlę. Zobacz dwie zasady.
Zwróć uwagę, że dodanie prezentu podnosi sumę koszyka, więc próg blisko ceny produktu może oscylować: dodanie prezentu za $0 jest bezpieczne, ale prezent z ceną mógłby sam przepchnąć koszyk powyżej progu. Utrzymuj prezent darmowym albo porównuj z sumą, która go wyklucza.

Dostosowanie

Warunkuj liczbą produktów zamiast wydatków:
Warunkuj obecnością konkretnego produktu w koszyku:
Tylko w wybranych krajach. Odczytaj context, dostępny przed załadowaniem koszyka:
Wyklucz prezent z progu, aby nie mógł sam siebie podtrzymywać:
Oznacz prezent, aby wyglądał jak prezent. Transformacja pozycji może zmienić tytuł pozycji, tytuł wariantu, stan ukrycia i właściwości wewnętrzne — więc zmień etykietę:
Transformacja pozycji nie potrafi ukryć kontrolek ilości pozycji — jej jedyne settery to setTitle, setVariantTitle, setHidden i setInternalProperties. Jeśli kupujący zmieni ilość prezentu, skoryguj ją zamiast tego z obsługi cart_updated.

Co dalej

  • Blok Rewards: wersja bez kodu, z progami.
  • Actions: addItem, removeItem i pozostałe.
  • Events: dlaczego zabezpieczenia mają znaczenie.