DOCS

Kundeprofiler

Kundeprofiler

Forhåndslast gjentakende kjøperinformasjon inn i Zonos Checkout.

Kundeprofiler forenkler betalingsopplevelsen din ved å la kunder med en konto forhåndslaste adresse og betalingsinformasjon.

Denne funksjonen er for øyeblikket kun tilgjengelig for egendefinerte API-integrasjoner. Denne funksjonen er ennå ikke tilgjengelig for kjøpmenn som bruker Checkout-plugins.

Hvis du selger til forhandlere, offentlige etater eller ideelle organisasjoner, kan du også synkronisere skattefritaksattestene deres til en kundeprofil.

For å autentisere en kundeprofil, må backendserveren din foreta to uavhengige API-kall, som vi anbefaler å kjøre parallelt for bedre ytelse:

  • createCart: Genererer Zonos-handlekurven. For detaljert veiledning, se Sett opp Zonos Checkout-delen innenfor dokumentasjonen for egendefinert integrasjon.

  • checkoutCustomerProfileAuthenticate: Sender og validerer kundens informasjon.

Når du validerer kundesesjonen, må du sørge for at customerId du sender inn i forespørselen stemmer med riktig profil for å vise nøyaktig kundeinformasjon ved kassen. Husk at når du oppretter en handlekurv, bør du ikke inkludere customerId i metadataene, da den vil bli overskrevet.

Etter at kunden er autentisert og bestillingen er plassert, vil customerId være tilgjengelig i order.references når du henter ordredetaljer via order-spørringen, slik at du kan knytte ordren til riktig kunde.

Etter at du kaller begge mutasjonene, vil du få følgende tilbake:

  • cartId fra createCart-mutasjonen for å generere handlekurven.

  • En oneTimePassword fra checkoutCustomerProfileAuthenticate-mutasjonen for kundeautentiseringen.

Du kan sende begge disse verdiene i createCartId-tilbakekallet i Zonos.init-funksjonen for å laste inn den oppgitte kundeprofilen 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 sender inn kundeinformasjon, vil Zonos lagre den oppgitte kundeinformasjonen. Betalingsmetoder lagres sikkert i Stripe. Hver gang nye adresse- eller betalingsmetodedetaljer sendes inn, blir de lagt til kundens profil.

Adresser og betalingsmetoder kan bare legges til – eksisterende kan ikke redigeres eller fjernes. En kundes navn, e-post og telefonnummer kan oppdateres med checkoutCustomerUpsert.

Opprett eller oppdater en profil uten en kjøper 

checkoutCustomerProfileAuthenticate krever at kjøperen er til stede, siden mutasjonen utsteder et engangspassord for den aktuelle betalingsøkten. Når du vil opprette eller oppdatere en profil utenfor en betalingsøkt – for eksempel ved å laste inn kundelisten din på forhånd, synkronisere profilendringer fra ditt eget system, eller legge til skattefritak før en kundes første bestilling – bruker du checkoutCustomerUpsert i stedet.

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 via customerId, så gjentatte kall oppdaterer den samme profilen i stedet for å opprette duplikater. Det er trygt å kjøre dette mot hele kundelisten din etter en fast tidsplan.

Tre ting du bør vite om hvordan oppdateringer fungerer:

  • Utelatte felt forblir urørt. Hvis du bare sender name, oppdateres navnet, mens e-post og telefon forblir som de var.
  • Verdier kan ikke fjernes. Å sende en tom verdi behandles på samme måte som å utelate feltet, så det finnes ingen måte å fjerne et navn, en e-post eller et telefonnummer som allerede er satt.
  • Adresser legges bare til. En adresse som allerede finnes på profilen, blir ikke duplisert, og adresser som utelates fra forespørselen, blir ikke fjernet.

checkoutCustomerUpsert returnerer ikke et oneTimePassword. For å laste inn en profil i Checkout trenger du fortsatt checkoutCustomerProfileAuthenticate, som utsteder et for den aktuelle økten.

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

Var denne siden nyttig?