Enviar información de cliente autenticada
Para autenticar un perfil de cliente, su servidor backend debe realizar dos llamadas API independientes, que recomendamos ejecutar en paralelo para un mejor rendimiento:
-
createCart
: Genera el carrito de Zonos. Para obtener orientación detallada, consulte la sección Configurar Zonos Checkout dentro de la documentación de integración personalizada. -
checkoutCustomerProfileAuthenticate
: Envía y valida la información del cliente.
Mutación
mutation checkoutCustomerProfileAuthenticate(
$input: CheckoutCustomerProfileAuthenticateInput!
) {
checkoutCustomerProfileAuthenticate(input: $input) {
email
customerId
organizationId
name
phone
locations {
administrativeArea
countryCode
locality
line1
line2
postalCode
}
oneTimePassword
}
}
Variable
{
"input": {
"email": "test@zonos.com",
"locations": [
{
"administrativeArea": "BC",
"countryCode": "CA",
"line1": "411-1033 Davie Street",
"line2": "123 testAddress2",
"locality": "Vancouver",
"name": "TestCanada TestCanada",
"postalCode": "V6E1M7"
},
{
"administrativeArea": "UT",
"countryCode": "US",
"line1": "411-1033 Davie Street",
"line2": "123 testAddress2",
"locality": "Saint George",
"name": "TestUS TestLastName",
"postalCode": "84770"
}
],
"customerId": "1234567",
"name": "testFirstName1 testLastName",
"phone": "7022920000"
}
}
Al validar la sesión del cliente, asegúrese de que el customerId
que pasa en la solicitud coincida con el perfil correcto para mostrar información precisa del cliente en checkout. Tenga en cuenta que al crear un carrito, no debe incluir customerId
en los metadatos, ya que será sobrescrito.
Después de que el cliente esté autenticado y se realice el pedido, el customerId estará disponible en order.references
al recuperar los detalles del pedido a través de la consulta de pedido, lo que le permitirá asociar el pedido con el cliente correcto.
Crear carrito con perfil de cliente
Después de llamar a ambas mutaciones, recibirá lo siguiente:
-
cartId
de la mutacióncreateCart
para generar el carrito. -
Un
oneTimePassword
de la mutacióncheckoutCustomerProfileAuthenticate
para la autenticación del cliente.
Puede pasar ambos valores en el callback createCartId
en la función Zonos.init
para cargar la información del perfil de cliente proporcionada en Checkout.
Zonos.init
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 ||
'',
};
}
},
}
Gestionar perfiles de clientes
La primera vez que envíe información del cliente, Zonos almacenará la información del cliente proporcionada. Los métodos de pago se almacenarán de forma segura en Stripe. Cada vez que se envíen nuevos detalles de dirección o método de pago, se agregarán al perfil del cliente.
Actualmente, los perfiles de clientes solo se pueden actualizar con información adicional; los detalles existentes no se pueden editar ni eliminar.
Perfiles de cliente
Cargar previamente la información de compradores recurrentes en Zonos Checkout.
Los perfiles de cliente optimizan su experiencia de checkout al permitir que los clientes con una cuenta carguen previamente su dirección y detalles de pago.
Esta función actualmente solo está disponible para integraciones de API personalizadas. Esta función aún no está disponible para comerciantes que utilizan plugins de Checkout.