Invia informazioni del cliente autenticato
Per autenticare un profilo cliente, il tuo server backend deve effettuare due chiamate API indipendenti, che consigliamo di eseguire in parallelo per migliori prestazioni:
-
createCart: genera il carrello Zonos. Per istruzioni dettagliate, consulta la sezione Configura Zonos Checkout nella documentazione sull'integrazione personalizzata. -
checkoutCustomerProfileAuthenticate: invia e convalida le informazioni del cliente.
mutation checkoutCustomerProfileAuthenticate($input: CheckoutCustomerProfileAuthenticateInput!) { checkoutCustomerProfileAuthenticate(input: $input) { email customerId organizationId name phone locations { administrativeArea countryCode locality line1 line2 postalCode } oneTimePassword }}Quando convalidi la sessione del cliente, assicurati che il customerId passato nella richiesta corrisponda al profilo corretto, in modo da mostrare informazioni accurate sul cliente al checkout. Tieni presente che, quando crei un carrello, non devi includere customerId nei metadati perché verrà sovrascritto.
Dopo l'autenticazione del cliente e l'invio dell'ordine, customerId sarà disponibile in order.references quando recuperi i dettagli dell'ordine tramite la query dell'ordine, consentendoti di associare l'ordine al cliente corretto.
Crea un carrello con il profilo cliente
Dopo aver chiamato entrambe le mutation, riceverai quanto segue:
-
cartIddalla mutationcreateCartper generare il carrello. -
Un
oneTimePassworddalla mutationcheckoutCustomerProfileAuthenticateper l'autenticazione del cliente.
Puoi passare entrambi questi valori nel callback createCartId della funzione Zonos.init per caricare in Checkout le informazioni del profilo cliente fornite.
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 || '', }; } },}Gestisci i profili cliente
La prima volta che invii informazioni sul cliente, Zonos memorizzerà le informazioni fornite. I metodi di pagamento verranno archiviati in modo sicuro in Stripe. Ogni volta che vengono trasmessi nuovi dettagli dell'indirizzo o del metodo di pagamento, verranno aggiunti al profilo del cliente.
Indirizzi e metodi di pagamento possono essere solo aggiunti: quelli esistenti non possono essere modificati o rimossi. Nome, email e telefono del cliente possono essere aggiornati con checkoutCustomerUpsert.
Crea o aggiorna un profilo senza un acquirente
checkoutCustomerProfileAuthenticate richiede la presenza dell'acquirente, poiché genera una password monouso per quella sessione di checkout. Quando vuoi creare o aggiornare un profilo al di fuori di un checkout — ad esempio caricando in anticipo l'elenco dei clienti, sincronizzando le modifiche al profilo dal tuo sistema o allegando le esenzioni fiscali prima del primo ordine di un cliente — utilizza invece checkoutCustomerUpsert.
mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) { checkoutCustomerUpsert(input: $input) { customerId email name phone locations { administrativeArea countryCode line1 line2 locality postalCode } }}I profili vengono abbinati in base al customerId, quindi richiamare questa mutation più volte aggiorna lo stesso profilo invece di crearne duplicati. È sicuro eseguirla periodicamente su tutto l'elenco clienti.
Tre cose da sapere su come vengono applicati gli aggiornamenti:
- I campi omessi non vengono modificati. Inviando solo
namesi aggiorna il nome, lasciando invariati email e telefono. - I valori non possono essere cancellati. Inviare un valore vuoto viene trattato come l'omissione del campo, quindi non è possibile rimuovere nome, email o telefono una volta impostati.
- Gli indirizzi vengono solo aggiunti. Una località già presente nel profilo non viene duplicata, e le località non incluse nella richiesta non vengono rimosse.
Profili cliente
Precarica in Zonos Checkout le informazioni degli acquirenti abituali.
I profili cliente semplificano l'esperienza di checkout consentendo ai clienti con un account di precaricare l'indirizzo e i dettagli di pagamento.
Questa funzionalità è attualmente disponibile solo per integrazioni API personalizzate. Non è ancora disponibile per i commercianti che utilizzano i plugin Checkout.
Se vendi a rivenditori, enti pubblici o organizzazioni no profit, puoi anche sincronizzare i loro certificati di esenzione fiscale con un profilo cliente.