Skip to content

Collect a Google Pay shipping address and option on web - #1006

Merged
Max Harrison (maxharrison) merged 6 commits into
masterfrom
max/card-1057-b-google-pay-web-shipping-address-option-dynamic-price
Sep 8, 2026
Merged

Collect a Google Pay shipping address and option on web#1006
Max Harrison (maxharrison) merged 6 commits into
masterfrom
max/card-1057-b-google-pay-web-shipping-address-option-dynamic-price

Conversation

@maxharrison

@maxharrison Max Harrison (maxharrison) commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Google Pay on web did not expose shipping fields and hardcoded callbackIntents to ["PAYMENT_AUTHORIZATION"]. Merchants could not collect a shipping address, offer shipping options, or update an open payment sheet.

This adds shippingAddress and shippingOptions to the button configuration. Shipping options also enable address collection. Address and option callbacks receive the current shipping state and can return a synchronous or asynchronous partial update for the total, line items, or available options. A callback can instead return a typed Google Pay error.

Callbacks have a 10-second timeout. The SDK validates option IDs and defaults, correlates concurrent iframe replies, preserves partial updates within one sheet session, and resets them before the next session. process() receives the final shippingAddress and full shippingOption.

CARD-1057

Google Pay on web builds no shipping fields and hardcodes callbackIntents
to PAYMENT_AUTHORIZATION, so a merchant cannot collect a shipping address,
offer shipping options, or recalculate the total while the sheet is open.

Add shippingAddress and shippingOptions to the button config, derive
callbackIntents from that config, and wire onPaymentDataChanged to
merchant onShippingAddressChange / onShippingOptionChange callbacks. The
sheet can raise several data changes in one session, so each request
carries an id and the frame resolves only the reply that matches it.
@changeset-bot

changeset-bot Bot commented Sep 7, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: ce28f61

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
Name Type
@evervault/browser Minor
@evervault/js Minor
@evervault/inputs Patch
example-apple-pay Patch
example-react-google-wallet Patch
@evervault/browser-e2e-tests Patch
e2e-tests-ui-components-vanilla-server Patch
example-ui-components Patch
example-custom-theme Patch
google-pay Patch
example-three-d-secure Patch
@evervault/inputs-e2e-tests Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@maxharrison
Max Harrison (maxharrison) marked this pull request as ready for review September 7, 2026 12:41
@maxharrison
Max Harrison (maxharrison) requested a review from a team as a code owner September 7, 2026 12:41
@maxharrison
Max Harrison (maxharrison) added this pull request to the merge queue Sep 8, 2026
Merged via the queue into master with commit a489008 Sep 8, 2026
15 checks passed
@maxharrison
Max Harrison (maxharrison) deleted the max/card-1057-b-google-pay-web-shipping-address-option-dynamic-price branch September 8, 2026 15:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants