Versandoptionen dynamisch anpassen
Aktualisieren Sie die Versandoptionen basierend auf der Versandadresse eines Kunden/einer Kundin.
Erfahren Sie, wie Sie Versandoptionen dynamisch aktualisieren können, basierend auf der Adresse, die Ihre Kundin oder Ihr Kunde bei Verwendung der eingebetteten Version von Checkout eingibt. Dynamische Aktualisierungen sind bei der von Stripe gehosteten Version von Checkout nicht verfügbar.
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.
- Unterstützt keine Aktualisierungen als Reaktion auf Änderungen von außerhalb der Bezahlseite.
Checkout-Sitzung erstellenServerseitig
Erstellen Sie von Ihrem Server aus eine Checkout-Sitzung.
- Legen Sie ui_mode auf
embeddedfest. - Legen Sie die permissions.update_shipping_details auf
server_fest.only - Legen Sie shipping_address_collection.allowed_countries auf die Liste der Länder, in die Sie den Versand anbieten möchten.
- Legen Sie die shipping_options.shipping_rate_data fest, mit der eine Dummy-Versandrate mit einem Versandbetrag von 0 USD erstellt wird.
Standardmäßig aktualisiert der Client von Stripe Checkout automatisch die shipping_details des Checkout Session-Objekts mit den Versandinformationen, die die Kundin/der Kunde eingibt, einschließlich des Namens und der Adresse der Kundin/des Kunden.
Warnung
Wenn permissions.update_shipping_details auf server_ festgelegt ist, wird die automatische clientseitige Aktualisierung deaktiviert, und nur Ihr Server kann die Versanddaten mithilfe Ihres Stripe-Geheimschlüssels aktualisieren.
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
checkoutSessionIdaus 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.
Checkout verbindenClientseitig
Vorsicht
Geben Sie immer ein Promise aus Ihrer onShippingDetailsChange zurück und lösen Sie es mit dem ResultAction-Objekt auf.
Der Checkout-Client aktualisiert die Nutzeroberfläche basierend auf dem Ergebnis Ihrer onShippingDetailsChange-Funktion.
- Wenn das Ergebnis
type: "accept"hat, werden auf der Checkout-Nutzeroberfläche die Versandoptionen angezeigt, die Sie auf Ihrem Server festgelegt haben. - Wenn das Ergebnis
type: "reject"hat, zeigt die Checkout-Nutzeroberfläche die Fehlermeldung an, die Sie im Ergebnis festgelegt haben.
Optional können Sie onShippingDetailsChange abhören und eine benutzerdefinierte Nutzeroberfläche erstellen, in der Kundinnen/Kunden ihre bevorzugte Adresse aus mehreren möglichen Adressen auswählen und bestätigen können.
Checkout wird in einem iFrame gerendert, der Zahlungsdaten sicher über eine HTTPS-Verbindung an Stripe sendet.
Häufiger Fehler
Vermeiden Sie es, Checkout in einem anderen iFrame zu platzieren, da bei einigen Zahlungsmethoden die Weiterleitung an eine andere Seite zur Zahlungsbestätigung erforderlich ist.
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
calculateShippingOptionsverschiedene 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
onShippingDetailsChangewird 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.