Wyślij informacje uwierzytelnionego klienta
Aby uwierzytelnić profil klienta, serwer zaplecza musi wykonać dwa niezależne wywołania API, które zalecamy uruchamiać równolegle w celu uzyskania lepszej wydajności:
-
createCart: Generuje koszyk Zonos. Aby uzyskać szczegółowe wskazówki, zapoznaj się z sekcją Skonfiguruj Zonos Checkout w dokumentacji integracji niestandardowej. -
checkoutCustomerProfileAuthenticate: Przesyła i sprawdza poprawność informacji klienta.
mutation checkoutCustomerProfileAuthenticate($input: CheckoutCustomerProfileAuthenticateInput!) { checkoutCustomerProfileAuthenticate(input: $input) { email customerId organizationId name phone locations { administrativeArea countryCode locality line1 line2 postalCode } oneTimePassword }}Podczas sprawdzania sesji klienta upewnij się, że customerId przesłany w żądaniu odpowiada prawidłowemu profilowi, aby wyświetlić dokładne informacje o kliencie w kasie. Pamiętaj, że podczas tworzenia koszyka nie należy dołączać customerId w metadanych, ponieważ zostanie on nadpisany.
Po uwierzytelnieniu klienta i złożeniu zamówienia customerId będzie dostępny w order.references podczas pobierania szczegółów zamówienia za pośrednictwem zapytania dotyczącego zamówienia, umożliwiając powiązanie zamówienia z prawidłowym klientem.
Utwórz koszyk z profilem klienta
Po wywołaniu obu mutacji otrzymasz następujące:
-
cartIdz mutacjicreateCartdo wygenerowania koszyka. -
oneTimePasswordz mutacjicheckoutCustomerProfileAuthenticatedo uwierzytelnienia klienta.
Możesz przekazać obie te wartości w callbacku createCartId w funkcji Zonos.init, aby załadować podane informacje profilu klienta do 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 || '', }; } },}Zarządzaj profilami klientów
Gdy informacje o kliencie zostaną przesłane po raz pierwszy, Zonos zapisze podane dane klienta. Metody płatności będą bezpiecznie przechowywane w Stripe. Za każdym razem, gdy zostaną przekazane nowe dane adresowe lub metody płatności, zostaną dodane do profilu klienta.
Adresy i metody płatności można wyłącznie dodawać — istniejących nie można edytować ani usuwać. Imię i nazwisko, adres e-mail oraz numer telefonu klienta można zaktualizować za pomocą checkoutCustomerUpsert.
Utwórz lub zaktualizuj profil bez kupującego
checkoutCustomerProfileAuthenticate wymaga obecności kupującego, ponieważ wystawia jednorazowe hasło dla tej sesji checkout. Gdy chcesz utworzyć lub zaktualizować profil poza sesją checkout — wczytując listę klientów z wyprzedzeniem, synchronizując zmiany profilu z własnego systemu lub dołączając zwolnienia podatkowe przed pierwszym zamówieniem klienta — użyj zamiast tego checkoutCustomerUpsert.
mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) { checkoutCustomerUpsert(input: $input) { customerId email name phone locations { administrativeArea countryCode line1 line2 locality postalCode } }}Profile są dopasowywane na podstawie customerId, więc wielokrotne wywołanie aktualizuje ten sam profil zamiast tworzyć duplikaty. Można je bezpiecznie uruchamiać dla całej listy klientów zgodnie z harmonogramem.
Trzy rzeczy, które warto wiedzieć o działaniu aktualizacji:
- Pominięte pola pozostają bez zmian. Wysłanie samego pola
nameaktualizuje imię i nazwisko, pozostawiając adres e-mail i numer telefonu bez zmian. - Wartości nie można wyczyścić. Wysłanie pustej wartości jest traktowane tak samo jak pominięcie pola, więc nie ma sposobu na usunięcie imienia i nazwiska, adresu e-mail ani numeru telefonu po ich ustawieniu.
- Adresy są wyłącznie dodawane. Lokalizacja, która już istnieje w profilu, nie zostanie zduplikowana, a lokalizacje pominięte w żądaniu nie zostaną usunięte.
Profile klientów
Wstępnie załaduj informacje kupujących do Zonos Checkout.Profile klientów usprawniają doświadczenie zakupowe, umożliwiając klientom posiadającym konto wstępne załadowanie danych adresowych i informacji o płatności.
Ta funkcja jest obecnie dostępna tylko dla niestandardowych integracji API. Ta funkcja nie jest jeszcze dostępna dla handlowców korzystających z wtyczek Checkout.
Jeśli sprzedajesz odsprzedawcom, agencjom rządowym lub organizacjom non-profit, możesz również zsynchronizować ich certyfikaty zwolnienia podatkowego z profilem klienta.