DOCS

Kundprofiler

Kundprofiler

Förhandsladda information om återkommande kunder i Zonos Checkout.

Kundprofiler effektiviserar er Checkout-upplevelse genom att låta kunder med konto förhandsladda sina adress- och betalningsuppgifter.

Den här funktionen är för närvarande endast tillgänglig för anpassade API-integrationer. Funktionen är ännu inte tillgänglig för handlare som använder Checkout-plugin.

Om ni säljer till återförsäljare, myndigheter eller ideella organisationer kan ni även synkronisera deras skattebefrielseintyg till en kundprofil.

För att autentisera en kundprofil måste er backend-server göra två oberoende API-anrop, som vi rekommenderar att ni kör parallellt för bättre prestanda:

  • createCart: Skapar Zonos-varukorgen. Detaljerad vägledning finns i avsnittet Konfigurera Zonos Checkout i dokumentationen för anpassad integration.

  • checkoutCustomerProfileAuthenticate: Skickar in och validerar kundens information.

När ni validerar kundsessionen ska ni se till att den customerId ni skickar i begäran matchar rätt profil så att korrekt kundinformation visas i Checkout. Tänk på att ni inte ska inkludera customerId i metadata när ni skapar en varukorg, eftersom den skrivs över.

När kunden har autentiserats och ordern har lagts finns customerId tillgängligt i order.references när ni hämtar orderdetaljer via orderfrågan, så att ni kan koppla ordern till rätt kund.

När ni har anropat båda mutationerna får ni tillbaka följande:

  • cartId från mutationen createCart för att skapa varukorgen.

  • Ett oneTimePassword från mutationen checkoutCustomerProfileAuthenticate för kundautentisering.

Ni kan skicka in båda dessa värden i callbacken createCartId i funktionen Zonos.init för att ladda den angivna kundprofilinformationen 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örsta gången ni skickar in kundinformation lagrar Zonos den angivna kundinformationen. Betalningsmetoder lagras säkert i Stripe. Varje gång nya adress- eller betalningsmetoduppgifter skickas in läggs de till i kundens profil.

Adresser och betalningsmetoder kan endast läggas till – befintliga kan inte redigeras eller tas bort. En kunds namn, e-post och telefonnummer kan uppdateras med checkoutCustomerUpsert.

Skapa eller uppdatera en profil utan en köpare 

checkoutCustomerProfileAuthenticate kräver att köparen är närvarande, eftersom den utfärdar ett engångslösenord för den Checkout-sessionen. När ni vill skapa eller uppdatera en profil utanför en Checkout-session – för att ladda er kundlista i förväg, synkronisera profiländringar från ert eget system eller koppla skattebefrielser innan en kunds första order – använder ni istället 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 matchas på customerId, så att anropa detta upprepade gånger uppdaterar samma profil istället för att skapa dubbletter. Det är säkert att köra över hela er kundlista enligt ett schema.

Tre saker att känna till om hur uppdateringar tillämpas:

  • Utelämnade fält lämnas orörda. Att endast skicka in name uppdaterar namnet och lämnar e-post och telefonnummer oförändrade.
  • Värden kan inte rensas. Att skicka ett tomt värde behandlas på samma sätt som att utelämna fältet, så det finns inget sätt att ta bort ett namn, en e-post eller ett telefonnummer när det väl är satt.
  • Adresser läggs endast till. En adress som redan finns i profilen dupliceras inte, och adresser som utelämnas i begäran tas inte bort.

checkoutCustomerUpsert returnerar inget oneTimePassword. För att ladda en profil i Checkout behöver ni fortfarande checkoutCustomerProfileAuthenticate, som utfärdar ett för den sessionen.

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

Var den här sidan till hjälp?