Skicka autentiserad kundinformation
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.
Skapa varukorg med kundprofil
När ni har anropat båda mutationerna får ni tillbaka följande:
-
cartIdfrån mutationencreateCartför att skapa varukorgen. -
Ett
oneTimePasswordfrån mutationencheckoutCustomerProfileAuthenticatefö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.
Zonos.init({ ... checkoutSettings: { ... createCartId: async () => { const result = await fetch( 'https://api.merchant.com/api/get-cart-info', { body: JSON.stringify(payload), method: 'POST', }, ); const json = await result.json(); return { cartId: json.cartId, customerAuthenticationToken: json.customerProfileAuthenticate ?.checkoutCustomerProfileAuthenticate.oneTimePassword || '', }; } },}Hantera kundprofiler
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.
mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) { checkoutCustomerUpsert(input: $input) { customerId email name phone locations { administrativeArea countryCode line1 line2 locality postalCode } }}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
nameuppdaterar 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.
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.