PayNow payments, updated wallet payment UI and shopper wallet at checkout
PayNow payments
This feature allows shoppers to make payments using PayNow directly at checkout. It provides an additional, convenient payment option for customers, potentially increasing conversion rates.
Updated wallet payment UI
The payment UI has been updated to show a saved-cards list along with an add-card modal. This change simplifies the payment process for shoppers, making it easier to use saved payment methods.
Shopper wallet at checkout
The introduction of a shopper wallet at checkout allows customers to select from stored payment methods. This enhances the user experience by making transactions faster and easier.
Also shipped
- Sync only shoppers who opted in to marketing tools
- Reap expired auth rows on a daily cron
- Wallet cleanup in the auth-retention cron
- Budgets for enrollment halves, account upgrades and step-up
- Reverse handoff from a storefront session to a central account
- Stamp storeId on inline checkout OTP sessions
- Offer the account upgrade after a purchase
- Restyle payment element tabs as minimal underlines
- Save a wallet card without typing it twice
- Shopper wallet schema
- Report failed tool calls to Sentry
- Add French and Italian storefront locales
- Copy for the shopper account page and post-purchase upgrade
- Payment methods panel on the account page
- Replace the consent checkbox with passive legal text
- Session-bound reads and mutations for shopper accounts
- Shopper account and security page
- Pick the subscriber group from a list
- Announce subscriber.created from every signup path
- Support direct remote deployments
- ShopperWallet store flag
- Vault DAO and Stripe wallet module
Fixes
- [auth]Move nextCookies last in the plugins array
- [auth]Revoke the storefront session a new mint orphans
- [auth]Spell the oauth client PKCE column as better-auth's requirePKCE field
- [auth]Stop address deletion cascading into user rows
- [checkout]Recreate wallet checkout sessions older than two hours
- [checkout]Stop cartless OTP requests sharing one global rate-limit bucket
- [ai]Restore image and PDF attachments in chat
- [ai]Restore the context-usage breakdown in AI assistant chat
- [events]Drop a hook called from the optimistic reducer
- [identity]Never let an upgrade redemption replace another user's central session
- [identity]Read a fresh session before passkey enrollment
- [identity]Return real 404s for invalid identity requests
- [identity]Scope the session-list copy to the current browser
- [identity]Serve frame-ancestors 'none' on the identity host
- [wallet]Call elements.submit() before confirmSetup
- [wallet]Stamp billing details so saved cards pass the redisplay filter
- [workflows]Stop the shared logger failing every workflow run