Skip to main content
Koszyk wie to, co mówi mu Ajax API Shopify: tytuły, ceny, ilości, właściwości. Nie zna Twoich metafields. Cart enricher pobiera dodatkowe pola produktu lub wariantu ze Storefront API i dołącza je do każdej pasującej pozycji, dzięki czemu możesz pokazać szacowany czas dostawy, ostrzeżenie „wysyłane osobno”, listę składników lub cokolwiek innego przechowywanego na produkcie. Typowe zastosowania: okna dostawy per produkt, odznaki alergenów lub składników, niestandardowa flaga „niski stan magazynowy”, mnożniki punktów lojalnościowych, ceny tylko dla subskrybentów.

Zarejestruj enricher

Trzy pola: Za każdym razem, gdy koszyk się ładuje lub zmienia, Aftersell pobiera Twój fragment dla każdego produktu lub wariantu w koszyku. Pobieranie jest nieblokujące: koszyk renderuje się natychmiast i ponownie emituje cart_updated, gdy dane dotrą. Wolny lub zawodzący fragment nigdy nie opóźnia ani nie psuje koszyka.

Odczytaj dane

Ponieważ wzbogacanie jest asynchroniczne, line.metadata.delivery ma wartość undefined, dopóki pierwsze pobranie się nie rozwiąże. Zawsze zabezpieczaj odczyt.

Wyrenderuj to w koszyku

Wzbogacanie umieszcza dane na pozycji; blok Custom code w trybie React je rysuje. Dodaj blok jako pod-blok Cart items, aby renderował się raz na pozycję i otrzymywał tę pozycję jako props.line:
Wzbogacone wartości wracają ze Storefront API w stanie surowym i bez sanityzacji. Renderuj je jako tekst, jak powyżej, i nigdy przez dangerouslySetInnerHTML ani przez zapisywanie surowego HTML.

Dane na poziomie wariantu

Ustaw onType: 'ProductVariant', gdy metafield znajduje się na wariancie, a nie na produkcie:

Więcej niż metafields

Fragment jest wklejany do zapytania Storefront API, więc działa wszystko, co API udostępnia na Product lub ProductVariant, nie tylko metafields:

Rzeczy, które trzeba zrobić dobrze

  • Zabezpieczaj każdy odczyt. metadata domyślnie to {}, a Twoja przestrzeń nazw ma wartość undefined, dopóki pobranie się nie rozwiąże. Koszyk zawsze renderuje się przed nadejściem danych.
  • Każde id to własna przestrzeń nazw. Wiele enricherów współistnieje bez kolizji, w tym te zarejestrowane przez inne aplikacje.
  • Metafields muszą być widoczne dla Storefront. Metafield nieudostępniony Storefront API zwraca null. Jeśli nic nie wraca, sprawdź definicję w panelu Shopify.
  • Utrzymuj fragment mały. Działa dla każdego produktu w koszyku, przy każdej zmianie koszyka. Proś o pola, których używasz, a nie o wszystko.
  • Rejestruj w czasie konfiguracji. To hook, więc jego miejsce jest na początku skryptu Initialization.
  • Nawiasy muszą się bilansować. Bez zewnętrznych nawiasów wokół fragmentu, ale każda zagnieżdżona selekcja potrzebuje własnej dopasowanej pary. Niezbilansowany fragment jest odrzucany.

Co dalej