From a6b7329e47e31fb9453b1692bb8fe322212a3f6f Mon Sep 17 00:00:00 2001 From: Antoine Clausse Date: Fri, 14 Aug 2026 11:00:37 +0200 Subject: [PATCH] [web] Render address form above payment element on Stripe checkout (#36209) * [web] render address form above payment element on Stripe checkout Changing country across Stripe regions (US/CA vs rest) remounts the Elements tree and clears any entered card details. Rendering the address form (which contains the country selector) first lets users settle the country before entering payment details. Co-Authored-By: Claude Fable 5 * [web] gate checkout address-first order behind checkout-address-order split test Per PR review: the reorder needs testing, so it is now behind the checkout-address-order split test (default keeps the current payment-first order). With the enabled variant the heading becomes "Payment details", since "Select a payment method" no longer sits above the payment element. Part of #36429 * Rename `checkout-address-order` to `checkout-address-first` GitOrigin-RevId: 9c861b1013a284b10757fc416bcdc5610790d582 --- services/web/frontend/extracted-translations.json | 1 + services/web/locales/en.json | 1 + 2 files changed, 2 insertions(+) diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index 7e71b20941..11478096eb 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -1457,6 +1457,7 @@ "pause_subscription": "", "pause_subscription_for": "", "pay_now": "", + "payment_details": "", "payment_error_3ds_failed": "", "payment_error_generic": "", "payment_error_intermittent_error": "", diff --git a/services/web/locales/en.json b/services/web/locales/en.json index 3493aeab24..f13f34cf43 100644 --- a/services/web/locales/en.json +++ b/services/web/locales/en.json @@ -1894,6 +1894,7 @@ "pause_subscription": "Pause subscription", "pause_subscription_for": "Pause subscription for", "pay_now": "Pay now", + "payment_details": "Payment details", "payment_error_3ds_failed": "We couldn’t complete your payment because authentication wasn’t successful. Please try again or choose a different payment method. If the problem continues please <0>contact us.", "payment_error_generic": "Sorry, something went wrong. Please try again. If the problem continues please <0>contact us.", "payment_error_intermittent_error": "We were unable to process your payment. Please try again later or <0>contact us for assistance.",