Personnaliser dynamiquement les options d'expédition
Actualisez les options de livraison en fonction de l'adresse de livraison du client.
Découvrez comment mettre à jour automatiquement les options de livraison en fonction de l’adresse que votre client saisit dans Checkout.
Cas d’utilisation
- Valider une adresse : Confirmez si vous pouvez expédier un produit à l’adresse d’un client en utilisant vos propres règles de validation personnalisées. Vous pouvez également créer une interface utilisateur personnalisée permettant aux clients de confirmer leur adresse préférée.
- Afficher les options de livraison pertinentes : Affichez uniquement les modes de livraison disponibles, en fonction de l’adresse du client. Par exemple, proposez la livraison le lendemain uniquement pour les adresses dans votre pays.
- Calculer de manière dynamique les frais de livraison : Calculez et affichez les frais de livraison en fonction de l’adresse de livraison du client.
- Mettre à jour les frais de livraison en fonction du montant total de la commande : Proposez des frais de livraison basés sur l’adresse de livraison ou le montant total de la commande (par exemple, la livraison gratuite pour les commandes supérieures à 100 USD). Pour les paiements autorisant les changements de quantité ou les ventes croisées, consultez la page Mise à jour dynamique des postes.
Limitations
- Uniquement pris en charge en mode paiement. Les frais de livraison ne sont pas disponibles en mode abonnement.
Configurer les autorisations de mise à jour de Checkout SessionCôté serveur
Définissez le champ shipping_address_collection.allowed_countries sur la liste des pays auxquels vous souhaitez offrir des services de livraison.
Transmettez permissions.update_shipping_details=server_only lors de la création de la session Checkout pour activer la mise à jour de l’adresse de livraison et des options de livraison à partir de votre serveur. La transmission de cette option désactive également la méthode updateShippingAddress, ce qui garantit que toutes les mises à jour transitent par votre serveur.
Personnaliser les options d'expéditionCôté serveur
À partir de votre serveur, créez un nouvel endpoint pour calculer les options d’expédition en fonction de l’adresse de livraison du client.
- Récupérer la session Checkout en utilisant l’
identifiant
checkoutSessionId` du corps de la demande. - Validez les informations de livraison du client fournies dans le corps de la demande.
- Calculez les options d’expédition en fonction de l’adresse de livraison du client et des articles de la session Checkout.
- Modifiez la session Checkout avec les shipping_details et les shipping_options du client.
Tester l'intégration
Suivez ces étapes pour tester votre intégration et vous assurer que vos options de livraison personnalisées fonctionnent correctement.
Configurez un environnement de test qui reflète votre configuration en mode production. Utilisez les clés API d’environnement de test Stripe pour cet environnement.
Simulez différentes adresses de livraison pour vérifier que votre fonction
calculateShippingOptions
traite correctement les différents scénarios.Vérifiez la logique côté serveur en utilisant des outils de journalisation ou de débogage pour confirmer que votre serveur :
- Récupère la session Checkout.
- Valide les informations de livraison.
- Calcule les options de livraison.
- Ajoute de nouvelles informations et options de livraison à la session Checkout. Assurez-vous que la réponse de modification contient les nouvelles informations et options d’expédition.
Vérifiez la logique côté client en effectuant plusieurs fois le processus de paiement dans votre navigateur. Observez la façon dont l’interface utilisateur se met à jour après avoir saisi les informations de l’expédition. Vérifiez que :
- La fonction
runServerUpdate
est appelée comme prévu. - Les options de livraison sont correctement mises à jour en fonction de l’adresse fournie.
- Les messages d’erreur s’affichent correctement lorsque l’expédition n’est pas disponible.
- La fonction
Saisissez des adresses de livraison non valides ou simulez des erreurs de serveur pour tester la gestion des erreurs, côté serveur et côté client.