Skip to main content

Oversigt

Når hverken Aftersells egne flader (post-purchase, checkout, Upcart) eller en pakket integration passer, kan du selv kalde Strategies API fra dit Shopify-tema og vise de returnerede produkter, som du vil. Mønsteret er det samme i alle tilfælde: byg en kontekst-payload fra Liquid (så Shopify-attributter som det aktuelle produkt, kurvens indhold og kundefelter udfyldes ved rendering), POST den til /api/public/strategy/evaluate, og vis svaret. Denne side dækker to implementeringsmønstre:
  • PDP-kontekst - placér en sektion på produktsider, der kalder API’en med det aktuelt viste produkt og viser en karrusel med returnerede anbefalinger.
  • Kurvkontekst - vis en upsell-blok i en brugerdefineret kurv, der kalder API’en med alle aktuelle kurvvarelinjer og viser de returnerede produkter.
Formen på produktkonteksten er det, der adskiller de to: et enkelt produkt på PDP, et array med alle varelinjer i kurven.

Hvad du skal bruge

  1. Din Strategy API-nøgle. I Aftersell skal du gå til Settings → Product Strategy og i kortet Security Token kopiere dit token (dette er din Strategy API-nøgle).
  2. Strategy-ID’et. Åbn den Strategy, du vil køre, i Aftersells Strategy-editor, og kopiér dens ID.
  3. Adgang til temakode. Du skal tilføje en Liquid-sektion (PDP) eller blok (brugerdefineret kurv) til dit Shopify-tema - Online Store → Themes → … → Edit code.
Din Strategy API-nøgle ligger i klientside-temakode, hvilket gør den synlig for alle, der ser sidens kildekode. Behandl den som en offentlig butiksfacade-legitimation, og rotér den fra Aftersell Settings → Product Strategy, hvis den nogensinde eksponeres på en måde, du ikke havde til hensigt.

PDP-kontekst: Sektionssnippet

Dette mønster tilføjer en Shopify-sektion til din produktside. Når siden renderes, indlejrer Liquid det aktuelle produkts, kurvens og kundens attributter i payloaden, hvorefter JavaScript poster til Strategies API og viser de returnerede produkter i en Splide-karrusel.

Installation

  1. I din Shopify-administrator skal du gå til Online Store → Themes, klikke på på dit tema og vælge Edit code.
  2. Under mappen Sections skal du oprette en ny fil med navnet aftersell-upsell-carousel.liquid.
  3. Indsæt snippet nedenfor i den nye fil, og erstat YOUR_STRATEGY_API_KEY med API-nøglen fra Aftersell.
  4. Gem.
  5. Åbn din produktskabelon (typisk templates/product.json eller sections/main-product.liquid), og tilføj sektionen Aftersell Carousel der, hvor karrusellen skal vises. Fra temaeditoren kan du også trække den direkte ind på produktsiden.
  6. I sektionens indstillinger skal du indsætte dit Strategy-ID.

Hvad sektionen sender

For hver PDP-visning indeholder payloaden:
  • products - et array med ét element, der indeholder det aktuelt viste produkt (productId, variantId, quantity, price, handle, title, vendor, productType, tags, collections, sellingPlan).
  • cart - subtotal, antal varer, antal linjer i kundens aktuelle kurv (udelades, hvis kurven er tom).
  • cartToken - så API’en kan knytte denne evaluering til samme session.
  • customer - tags, land, provins, sprogindstilling, ordreantal, samlet forbrug og accepterer-marketing-flag, men kun hvis kunden er logget ind.
  • session - valutakode fra shop.currency.
Sektionen sender ikke UTM-parametre som standard. Hvis du vil have UTM-baseret målretning på PDP, skal du registrere dem på klientsiden og tilføje dem til session-objektet før fetch-kaldet.

Snippet

En Strategy-drevet produktkarrusel vist på en Shopify-produktside

Tilpasning

Sektionsskemaet eksponerer fire indstillinger, forhandleren kan redigere: Strategy ID, Heading, CTA Button Label og Max Products to Show. Tilføj eller fjern indstillinger i {% schema %}-blokken for at eksponere flere justeringsmuligheder i temaeditoren. CSS’en er afgrænset under .aftersell-*-klassenavne og indeholder en Splide-drevet karrusel med 4 produkter ad gangen, der skifter til 2 ved 768px og 1 ved 480px. Redigér den frit, så den matcher dit tema - intet af den er nødvendig for, at API-kaldet fungerer.

Kurvkontekst: Brugerdefineret kurv-upsell-blok

Dette mønster er strukturelt det samme som PDP-mønsteret, med én afgørende forskel: produktkontekst-arrayet bygges fra kurvens varelinjer i stedet for det aktuelt viste produkt. Strategyen modtager derefter hver vare, kunden har tilføjet, og returnerer anbefalinger baseret på kurven som helhed. Implementeringen bor der, hvor din brugerdefinerede kurvkode bor - en Liquid-sektion, der renderer cart draweren, en brugerdefineret blok i en headless butiksfacade eller en temaskabelon som cart.liquid. Formen på API-kaldet og håndteringen af svaret er identisk med PDP-eksemplet - kun products-arrayet er anderledes. Strukturen ser sådan ud:
Resten af payloaden (cart, customer, session, cartToken) og fetch-kaldet til /api/public/strategy/evaluate er uændret fra PDP-mønsteret ovenfor - kun products-arrayet skifter fra [productContext] til det kurvafledte array.

Hvad der sker, når Strategyen returnerer

Svarets form er den samme, uanset hvilken kontekst du sendte:
evaluationId er et unikt id for denne evaluering. Hvis du gemmer det og knytter det til de produkter, du viser, kan du attribuere den resulterende ordre tilbage til præcis den anbefaling, der skabte den - se Attribution nedenfor. Hvordan du viser products-arrayet, er helt op til din temakode. PDP-snippet ovenfor viser dem som en karrusel af kort med variantvælgere og læg-i-kurv-knapper; en brugerdefineret kurvblok kunne vise dem som en lodret liste inde i draweren. Se API-referencen for Evaluate Strategy for det fulde anmodnings- og svarskema.

Når der ikke returneres noget produkt

Hvis Strategyen ikke returnerer nogen produkter (products: []), er det op til din kode, hvordan det håndteres. PDP-snippet ovenfor skjuler karrusellen helt. En brugerdefineret kurvblok kan falde tilbage til kurvens standard-upsell-liste eller simpelthen ikke vise noget. For at undgå et tomt svar skal du konfigurere en Catch all i Strategyen, så der altid er et fallback-produkt at returnere. Se siden Opbygning af Strategies for at lære, hvordan du opsætter en Catch all.

Tips til brugerdefinerede integrationer

  • Byg konteksten i Liquid. Liquid kører ved rendering og har adgang til hele Shopify-objektgrafen - produkt, kurv, kunde, butik, request. Brug den til at udfylde payloaden på serversiden i stedet for at ty til klientsidekald.
  • Hold API-nøglen ude af offentlige repos. Den ender i din temakode, som sendes til browseren - det er fint. Men indsæt ikke det samme tema i et offentligt repository, og del ikke bundtet eksternt.
  • Brug en Catch all. Butiksfacade-oplevelser ser ødelagte ud, når en plads forsvinder. En Catch all med et lille sæt sikre standardprodukter holder brugerfladen konsistent.
  • Cache, hvor det giver mening. Strategies API laver let caching på serversiden (meta.servedFromCache), men til PDP’er med høj trafik kan du også ville debounce eller memoize kald på klienten (f.eks. ikke kalde igen, når det samme produkt vises to gange i en session).

Attribution

Når en kunde klikker på læg-i-kurv-knappen i snippet, knytter /cart/add.js-kaldet varelinjeegenskaber til kurvvaren:
Disse egenskaber følger med varelinjen hele vejen til Shopify-ordren, hvor de vises på varelinjeposten. Du kan bruge dem senere til at attribuere omsætning, filtrere ordrer eller fodre analyseværktøjer, der læser varelinjeegenskaber. Nøglerne og værdierne er konventioner, ikke krav - API-kaldet fungerer på samme måde, uanset hvad du angiver her. Ændr dem, så de passer til din egen attributionsmodel. For eksempel:
Egenskabsnøgler, der begynder med en understregning (_), er skjult i kurv- og checkout-brugerfladen, men knyttes stadig til ordren. Brug understregningspræfikset til attributionsmetadata, du ikke ønsker, at kunderne skal se.
Anvend samme mønster i kurvkontekst-implementeringen - ethvert læg-i-kurv-kald, du foretager fra en brugerdefineret upsell-blok, kan bære de egenskaber, du har brug for.

Attribuering tilbage til evalueringen

For at knytte en ordre tilbage til den præcise evaluering, der anbefalede produktet - i stedet for blot “kom fra en Strategy” - skal du gemme evaluationId fra svaret og knytte det til varelinjen under egenskaben __as_offer_id. AfterSell læser denne nøgle, så ordrer mærket med den attribueres til den specifikke evaluering i rapporteringen. I evaluate()-handleren skal du holde fast i id’et fra svaret:
Inkludér det derefter i læg-i-kurv-egenskaberne:
Behold den dobbelte understregning i __as_offer_id - det er den nøgle, AfterSell leder efter, og understregningspræfikset holder den skjult for kunderne. Hvis evaluationId mangler (for eksempel hvis der ikke blev returneret produkter), skal du springe egenskaben over i stedet for at sende en tom værdi.