setInternalProperties to sposób, aby powiedzieć koszykowi, że to jedna całość.
Jak działa grupowanie
Przechodzą one przez
setInternalProperties, nie przez Shopify. To nakładka tylko do renderowania: nigdy nie trafiają do properties, nigdy nie są zapisywane w Shopify i nigdy nie pojawiają się na zamówieniu.
Krok 1: sprawdź, co zapisuje Twoja aplikacja
_) zawierająca identyfikator, referencję lub nazwę bundla. Typowe są np. _bundle_id, _bundle_ref lub _parent_id. Zanotuj dokładny klucz oraz to, czy jedna pozycja jest oznaczona jako produkt główny.
Krok 2: zmapuj to na właściwości kanoniczne
Jeśli Twoja aplikacja nie oznacza produktu głównego, pomiń całkowicie
_aftersell_cart_bundle_role. Koszyk sam wybierze kotwicę.Co zyskujesz
bundle, a szuflada renderuje bundle jako jeden produkt:
- Dzieci zagnieżdżają się pod kotwicą zamiast pojawiać się jako osobne wiersze.
- Ilość jest atomowa. Zmiana ilości bundla skaluje wszystkich członków razem, używając proporcji
perAnchorQtykażdego dziecka, więc bundle z dwoma sztukami jednego komponentu zachowuje ten stosunek dwa do jednego. - Usuwanie jest atomowe. Usunięcie bundla usuwa każdą pozycję członkowską w jednym żądaniu, zamiast zostawiać osierocone komponenty.
- Jeden wiersz ceny. To, co pokazuje, wynika z ustawienia bundle price w bloku Cart items: suma wszystkich członków albo sama cena produktu głównego.
Jak wybierana jest kotwica
- Pozycja z
_aftersell_cart_bundle_roleustawionym naparent. - W przeciwnym razie członek o najwyższej cenie.
- W przeciwnym razie pierwszy członek w koszyku.
Zasady warte poznania
- Bundle potrzebuje co najmniej dwóch pozycji. Pojedyncza pozycja z identyfikatorem bundla jest pozostawiana w spokoju i renderuje się normalnie.
- Natywne bundle Shopify są już obsłużone. Pozycje, które Shopify samo oznacza jako skomponowane, są pomijane przez to grupowanie i adaptowane automatycznie. Potrzebujesz tego tylko dla aplikacji dodających osobne pozycje.
- Transformacja działa przy każdym renderze. Utrzymuj ją lekką i bez efektów ubocznych. Nie wywołuj z jej wnętrza akcji ani nie wykonuj fetch.
- Scalanie jest addytywne. Twoje właściwości scalają się z tymi ustawionymi przez inną transformację. Przy rzeczywistym konflikcie o ten sam klucz wygrywa transformacja zarejestrowana jako ostatnia.
- Grupowanie odbywa się po ukrywaniu i zmianie nazw, a przed sortowaniem. Zatem pozycja ukryta przez
setHiddennigdy nie staje się częścią bundla, a komparator widzi kotwicę, nie dzieci.
Odczytywanie bundla
bundle.memberKeys, który zawiera key każdego członka, łącznie z kotwicą.
Użycie do innych rzeczy
setInternalProperties, ale nakładka jest ogólnym kanałem dla danych tylko do renderowania wyprowadzanych z pozycji. Wszystko, co tam umieścisz, jest czytelne w line.internalProperties i w bloku Custom code, bez dotykania prawdziwego koszyka:
properties[...] w formularzu produktu, dzięki czemu trafia do Shopify niezależnie od tego, kto wykonuje dodanie.
Co dalej
registerLineTransform: hook, przez który to działa.- Obiekt koszyka: struktura
bundlei jego dzieci. - Blok Cart items: ustawienie ceny bundla.