Geauthenticeerde klantgegevens verzenden
Om een klantprofiel te authenticeren, moet uw backend server twee onafhankelijke API-calls uitvoeren. Wij raden aan deze parallel uit te voeren voor betere prestaties:
-
createCart: genereert de Zonos-winkelwagen. Raadpleeg voor uitgebreide richtlijnen het gedeelte Zonos Checkout instellen in de documentatie over de aangepaste integratie. -
checkoutCustomerProfileAuthenticate: verstuurt en valideert de klantgegevens.
Zorg er bij het valideren van de klantsessie voor dat de customerId die u in het verzoek meegeeft overeenkomt met het juiste profiel, zodat de juiste klantgegevens bij checkout worden weergegeven. Houd er rekening mee dat u bij het aanmaken van een winkelwagen geen customerId in de metadata mag opnemen, omdat deze wordt overschreven.
Nadat de klant is geauthenticeerd en de bestelling is geplaatst, is de customerId beschikbaar in order.references bij het ophalen van orderdetails via de order-query, zodat u de bestelling aan de juiste klant kunt koppelen.
Winkelwagen maken met klantprofiel
Nadat u beide mutaties heeft aangeroepen, ontvangt u het volgende:
-
cartIdvan decreateCart-mutation om de winkelwagen te genereren. -
Een
oneTimePasswordvan decheckoutCustomerProfileAuthenticate-mutation voor de klantauthenticatie.
U kunt beide waarden doorgeven in de createCartId-callback van de Zonos.init-functie om de opgegeven klantprofielgegevens in Checkout te laden.
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 || '', }; } },}Klantprofielen beheren
De eerste keer dat u klantgegevens indient, slaat Zonos de opgegeven klantgegevens op. Betaalmethoden worden veilig opgeslagen in Stripe. Elke keer dat nieuwe adres- of betaalmethodegegevens worden doorgegeven, worden deze toegevoegd aan het klantprofiel.
Adressen en betaalmethoden kunnen alleen worden toegevoegd — bestaande gegevens kunnen niet worden bewerkt of verwijderd. De naam, het e-mailadres en het telefoonnummer van een klant kunnen worden bijgewerkt met checkoutCustomerUpsert.
Profiel aanmaken of bijwerken zonder shopper
checkoutCustomerProfileAuthenticate vereist dat de shopper aanwezig is, omdat hiermee een eenmalig wachtwoord voor die checkout-sessie wordt uitgegeven. Wilt u een profiel aanmaken of bijwerken buiten een checkout om — bijvoorbeeld door uw klantenlijst vooraf te laden, profielwijzigingen vanuit uw eigen systeem te synchroniseren, of belastingvrijstellingen te koppelen vóór de eerste bestelling van een klant — gebruik dan in plaats daarvan checkoutCustomerUpsert.
mutation checkoutCustomerUpsert($input: CheckoutCustomerProfileInput!) { checkoutCustomerUpsert(input: $input) { customerId email name phone locations { administrativeArea countryCode line1 line2 locality postalCode } }}Profielen worden gekoppeld op basis van customerId, dus door dit herhaaldelijk aan te roepen wordt hetzelfde profiel bijgewerkt in plaats van dat er duplicaten worden aangemaakt. U kunt dit veilig op een schema uitvoeren voor uw hele klantenlijst.
Er zijn drie dingen die u moet weten over hoe updates worden toegepast:
- Weggelaten velden blijven ongewijzigd. Als u alleen
nameverzendt, wordt de naam bijgewerkt en blijven e-mailadres en telefoonnummer zoals ze waren. - Waarden kunnen niet worden gewist. Het verzenden van een lege waarde wordt op dezelfde manier behandeld als het weglaten van het veld, dus er is geen manier om een naam, e-mailadres of telefoonnummer te verwijderen zodra deze is ingesteld.
- Adressen worden alleen toegevoegd. Een adres dat al in het profiel staat, wordt niet gedupliceerd, en adressen die niet in het verzoek zijn opgenomen, worden niet verwijderd.
Klantprofielen
Laad terugkerende shoppergegevens voor in Zonos Checkout.Klantprofielen stroomlijnen uw checkoutervaring doordat klanten met een account hun adres- en betaalgegevens vooraf kunnen laden.
Deze functie is momenteel alleen beschikbaar voor aangepaste API-integraties. Deze functie is nog niet beschikbaar voor merchants die Checkout-plugins gebruiken.
Als u verkoopt aan wederverkopers, overheidsinstanties of non-profitorganisaties, kunt u ook hun belastingvrijstellingscertificaten synchroniseren met een klantprofiel.