Versandoptionen dynamisch anpassen
Aktualisieren Sie die Versandoptionen basierend auf der Versandadresse eines Kunden/einer Kundin.
Erfahren Sie, wie Sie die Versandoptionen basierend auf der Adresse, die Ihr Kunde/Ihre Kundin beim Bezahlvorgang eingibt, dynamisch aktualisieren können.
Anwendungsszenarien
- Adresse validieren: Bestätigen Sie, ob Sie ein Produkt an die Adresse eines Kunden/einer Kundin senden können, indem Sie Ihre eigenen nutzerdefinierten Validierungsregeln verwenden. Sie können auch eine individuelle Nutzeroberfläche für Kundinnen/Kunden erstellen, um ihre bevorzugte Adresse zu bestätigen.
- Relevante Versandoptionen anzeigen: Nur verfügbare Versandmethoden basierend auf der Kundenadresse anzeigen. Zeigen Sie beispielsweise den Versand über Nacht nur für Lieferungen in Ihrem Land an.
- Versandraten dynamisch berechnen: Berechnen und Anzeigen der Versandkosten basierend auf der Lieferadresse eines Kunden/einer Kundin.
- Versandkosten basierend auf der Bestellsumme aktualisieren: Bieten Sie Versandkosten basierend auf der Versandadresse oder der Bestellsumme an, z. B. kostenlosen Versand für Bestellungen über 100 USD. Informationen zu Bezahlvorgängen, bei denen Mengenänderungen oder Cross-Selling zulässig sind, finden Sie unter Dynamische Aktualisierung von Posten.
Beschränkungen
- Wird nur im Zahlungsmodus unterstützt. Versandraten sind im Abonnementmodus nicht verfügbar.
Berechtigungen zum Aktualisieren der Checkout-Sitzung konfigurierenServerseitig
Legen Sie shipping_address_collection.allowed_countries auf die Liste der Länder, in die Sie den Versand anbieten möchten.
Übergeben Sie permissions.update_shipping_details=server_only, wenn Sie die Checkout-Sitzung erstellen, um die Aktualisierung der Versandadresse und Versandoptionen über Ihren Server zu aktivieren. Durch Übergeben dieser Option wird auch die Client-Methode updateShippingAddress deaktiviert, wodurch sichergestellt wird, dass alle Aktualisierungen Ihren Server durchlaufen.
Versandoptionen anpassenServerseitig
Erstellen Sie von Ihrem Server aus einen neuen Endpoint, um die Versandoptionen basierend auf der Versandadresse der Kundin/des Kunden zu berechnen.
- Rufen Sie die Checkout-Sitzung anhand der
checkoutSessionId
aus dem Anfragetext ab. - Überprüfen Sie die Versanddetails der Kundin/des Kunden aus dem Anfragetext.
- Berechnen Sie die Versandoptionen basierend auf der Versandadresse der Kundin/des Kunden und den Einzelposten der Checkout-Sitzung.
- Aktualisieren Sie die Checkout-Sitzung mit den shipping_details und den shipping_options der Kundin/des Kunden.
Integration testen
Befolgen Sie diese Schritte, um Ihre Integration zu testen und sicherzustellen, dass Ihre nutzerdefinierten Versandoptionen korrekt funktionieren.
Richten Sie eine Sandbox-Umgebung ein, die die Einrichtung Ihrer Produktionsumgebung widerspiegelt. Verwenden Sie Ihre Sandbox-API-Schlüssel von Stripe für diese Umgebung.
Simulieren Sie verschiedene Versandadressen, um zu überprüfen, ob Ihre Funktion
calculateShippingOptions
verschiedene Szenarien korrekt verarbeitet.Überprüfen Sie die serverseitige Logik, indem Sie Log- oder Debugging-Tools verwenden, um zu bestätigen, dass Ihr Server Folgendes tut:
- Ruft die Checkout-Sitzung ab.
- Überprüft die Versanddetails.
- Berechnet die Versandoptionen.
- Aktualisiert die Checkout-Sitzung mit den neuen Versanddetails und -optionen. Stellen Sie sicher, dass die Aktualisierungsantwort die neuen Versanddetails und -optionen enthält.
Überprüfen Sie die clientseitige Logik, indem Sie den Bezahlvorgang mehrmals in Ihrem Browser abschließen. Achten Sie darauf, wie die Nutzeroberfläche aktualisiert wird, nachdem Sie die Versanddetails eingegeben haben. Stellen Sie sicher, dass:
- Die Funktion
runServerUpdate
wird erwartungsgemäß aufgerufen. - Die Versandoptionen werden basierend auf der angegebenen Adresse korrekt aktualisiert.
- Fehlermeldungen werden ordnungsgemäß angezeigt, wenn der Versand nicht verfügbar ist.
- Die Funktion
Geben Sie ungültige Versandadressen ein oder simulieren Sie Serverfehler, um den Umgang mit Fehlern sowohl serverseitig als auch clientseitig zu testen.