DOCS

Kundeprofiler

Kundeprofiler

Forudindlæs tilbagevendende køberoplysninger i Zonos Checkout.

Kundeprofiler strømliner din checkout-oplevelse ved at lade kunder med en konto forudindlæse deres adresse- og betalingsdetaljer.

Denne funktion er i øjeblikket kun tilgængelig for brugerdefinerede API-integrationer. Funktionen er endnu ikke tilgængelig for forhandlere, der bruger Checkout-plugins.

Hvis du sælger til forhandlere, offentlige myndigheder eller nonprofitorganisationer, kan du også synkronisere deres skattefritagelsescertifikater til en kundeprofil.

For at autentificere en kundeprofil skal din backend-server foretage to uafhængige API-kald, som vi anbefaler at køre parallelt for bedre ydeevne:

  • createCart: Genererer Zonos-kurven. For detaljeret vejledning, se Opsæt Zonos Checkout-sektionen i dokumentationen for brugerdefineret integration.

  • checkoutCustomerProfileAuthenticate: Indsender og validerer kundens oplysninger.

Når du validerer kundesessionen, skal du sikre, at customerId, du sender i anmodningen, matcher den korrekte profil, så nøjagtige kundeoplysninger vises ved checkout. Husk, at du ikke skal inkludere customerId i metadata, når du opretter en kurv, da det vil blive overskrevet.

Når kunden er autentificeret, og ordren er afgivet, vil customerId være tilgængelig i order.references, når ordredetaljer hentes via order-forespørgslen, så du kan knytte ordren til den korrekte kunde.

Når du har kaldt begge mutationer, får du følgende tilbage:

  • cartId fra createCart-mutationen til at generere kurven.

  • En oneTimePassword fra checkoutCustomerProfileAuthenticate-mutationen til kundeautentificering.

Du kan sende begge værdier i createCartId-callbacken i Zonos.init-funktionen for at indlæse de angivne kundeprofiloplysninger i Checkout.

1Zonos.init({
2 ...
3 checkoutSettings: {
4 ...
5 createCartId: async () => {
6 const result = await fetch(
7 'https://api.merchant.com/api/get-cart-info',
8 {
9 body: JSON.stringify(payload),
10 method: 'POST',
11 },
12 );
13 const json =
14 await result.json();
15 return {
16 cartId: json.cartId,
17 customerAuthenticationToken:
18 json.customerProfileAuthenticate
19 ?.checkoutCustomerProfileAuthenticate.oneTimePassword ||
20 '',
21 };
22 }
23 },
24}

Første gang du indsender kundeoplysninger, gemmer Zonos de angivne oplysninger. Betalingsmetoder gemmes sikkert i Stripe. Hver gang nye adresse- eller betalingsmetodedetaljer sendes, tilføjes de til kundens profil.

Adresser og betalingsmetoder kan kun tilføjes — eksisterende kan ikke redigeres eller fjernes. En kundes navn, e-mail og telefon kan opdateres med checkoutCustomerUpsert.

Opret eller opdater en profil uden en køber 

checkoutCustomerProfileAuthenticate kræver, at køberen er til stede, da den udsteder en engangskode til den pågældende checkout-session. Når du vil oprette eller opdatere en profil uden for en checkout — f.eks. for at indlæse din kundeliste på forhånd, synkronisere profilændringer fra dit eget system eller tilknytte skattefritagelser, før en kundes første ordre — skal du i stedet bruge checkoutCustomerUpsert.

1mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) {
2 checkoutCustomerUpsert(input: $input) {
3 customerId
4 email
5 name
6 phone
7 locations {
8 administrativeArea
9 countryCode
10 line1
11 line2
12 locality
13 postalCode
14 }
15 }
16}

Profiler matches på customerId, så gentagne kald opdaterer den samme profil i stedet for at oprette dubletter. Det er sikkert at køre på tværs af hele din kundeliste efter en fast tidsplan.

Tre ting, du skal vide om, hvordan opdateringer anvendes:

  • Udeladte felter berøres ikke. Hvis du kun sender name, opdateres navnet, mens e-mail og telefon forbliver uændrede.
  • Værdier kan ikke ryddes. At sende en tom værdi behandles på samme måde som at udelade feltet, så der er ingen måde at fjerne et navn, en e-mail eller et telefonnummer på, når det først er angivet.
  • Adresser tilføjes kun. En adresse, der allerede findes på profilen, duplikeres ikke, og adresser, der udelades fra anmodningen, fjernes ikke.

checkoutCustomerUpsert returnerer ikke en oneTimePassword. For at indlæse en profil i Checkout skal du stadig bruge checkoutCustomerProfileAuthenticate, som udsteder én til den session.

GraphQL API ReferenceTypes, inputs, and operations used in this guide
Book en demo

Var denne side nyttig?