Changelog· Page 6

The latest updates, improvements, and fixes to Your Next Store. Subscribe via RSS. Curious what's coming? See the roadmap.

· v1.330

Shipment tracking, direct bank transfer and coupon sort and filter

Shipment tracking on storefront order pages

This feature integrates shipment tracking directly on your order pages, allowing customers to see live updates. This transparency improves customer experience and reduces inquiries about order status.

Direct bank transfer as a manual checkout method

Store owners can now offer direct bank transfer as an option for manual checkout, catering to customers who prefer this payment method. This flexibility may lead to increased sales by accommodating diverse customer preferences.

Sort and filter the coupons list

The new sorting and filtering options for the coupons list make it easier for store owners to manage promotional campaigns. This allows for better organization and quicker access to specific discounts, enhancing marketing efforts.

Also shipped

  • Build the home digest from real store data
  • Tracking display and manual entry on the order view
  • Accept carrier and trackingUrl on order tracking updates
  • Expose shipment tracking records on order reads
  • Notifications settings group with the customer-email kill switch
  • SendingDisabled switch and honest enabled semantics on email-templates API
  • Fold bank transfer into the Stripe payment-method list
  • Replace payment-method radios with a hairline divider list
  • Restyle the payment-method list as a flat radio list
  • Add shared email design system
  • Admin preview parity and react-email preview exports
  • Align predefined HTML templates and extend order_items block
  • Link the store account door from order emails
  • Real per-event customer email kill switch
  • Rich refund and withdrawal emails
  • Rich shipped and delivered notification emails
  • Persist shipment tracking in a dedicated shipments table
  • Create the tracking record at label creation for all carriers
  • Granular tracking status updates and shopper display
  • /account/portal, the store door to the cross-store portal
  • Add the cross-store orders portal on the identity host
  • Claim guest orders across every store at central sign-in
  • Make the identity host configurable
  • Portal store links sign the shopper back into the store
  • Send unified-tier shoppers through the central account door
Fixes7
  • [checkout]Drop the tier-off sign-in link to the retired /login page
  • [checkout]Square the last payment-method divider and align the bank row label
  • [checkout]Stop clipping input focus rings and pin selected-row divider
  • [design]Confirm before restoring a builder version
  • [ai]Replay sessions recorded before events carried meta
  • [shopper]Sign shoppers in on the custom domain they are browsing
  • [storefront]Keep sold-out variants out of the cart
· v1.329

Store plan display in admin, event scheduling support in API

Store plan display in admin

Store owners can now view their current store plan directly in the admin switcher. This feature helps you easily identify your plan status and make informed decisions about upgrades or changes.

Event scheduling support in API

The events API has been updated to accept a 'scheduledPublishAt' parameter. This allows store owners to automate content publishing, ensuring timely updates without manual intervention.

Fixes8
  • [admin]Show the deployment's own root domain in store labels
  • [api]Answer 400 for an unparseable multipart body
  • [builder]Stop the path guard rejecting catch-all routes
  • [ai]Keep the session-save schema's event array mutable
  • [ai]Let the planner search, and stop it hunting the wrong filesystem
  • [ai]Move the search guard test out of the tools directory
  • [i18n]Ship the message namespaces six surfaces were missing
  • [storefront]Answer 404, not 500, for malformed percent-escapes
· v1.327

Gateway wordmarks in trust badges, native card rendering and delete gating

Payment gateway wordmarks in trust badges

This feature displays the wordmark of your payment gateway in trust badges during checkout. It helps build customer confidence by reassuring them about the security of their payment method.

Native card rendering and PaymentIntents support

This feature allows you to render saved cards directly in the wallet and charge them using PaymentIntents. This simplifies the payment process for returning customers, enhancing their experience.

Ownership-based store deletion gating

This feature restricts store deletion based on ownership verification and logs who performed the deletion. It ensures better control and accountability for store owners, protecting against accidental deletions.

Also shipped

  • Let AI assistant orchestrate the store API with sandboxed JavaScript
  • Fail campaigns whose scheduled send never fired
  • Heartbeat the deployment marker so a dead publish unlocks in 2 minutes
  • Move builder sandboxes to the Ubuntu universal image
  • Scale the builder snapshot TTL with the store's plan
  • Purge soft-deleted stores 30 days after deletion
Fixes21
  • [admin]Prefix the download and redirect URLs that bypass YnsLink
  • [builder]Stop the storefront pill hanging on "Starting"
  • [checkout]Don't pass email to confirm() on wallet sessions
  • [checkout]Link guest carts to the shopper at wallet session mint
  • [checkout]Self-heal wallet sessions Stripe stops serving saved cards for
  • [dashboard]Count low-stock SKUs instead of hard-coding twelve
  • [domains]Keep an unpublished store's custom domain off its storefront
  • [ai]Stop rebuilding what the store already has
  • [ai]Stop view_attachment failing the turn on unfetchable URLs
  • [ai]Tell the merchant why a chat attachment failed
  • [ai]Upload chat attachments straight to Blob
  • [events]Make scheduled go-live discoverable and unconfusable with the event date
  • [imports]Settle a catalog import whose workflow run died
  • [import]Stop a wedged catalog import from running forever
  • [inpost-pay]Accept sandbox token scopes and payment-methods envelope
  • [publish]Record why a publish did not go live
  • [sandbox]Delete a sandbox's snapshots along with the sandbox
  • [sandbox]Give per-store builder snapshots a real expiration
  • [stores]Free a store slot as soon as one is deleted
  • [wallet]Fail closed when a store cannot receive card clones
  • [wallet]Set allow_redisplay after attach, not on clone create
· v1.326

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
Fixes17
  • [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
· v1.325

Speed audit skill, instant publish popover and redesigned merchant support inbox

Speed audit skill

This feature provides insights into your store’s performance through speed audits. It helps store owners identify areas for improvement, ultimately enhancing the shopping experience and potentially increasing sales.

Instant publish popover

The new instant publish popover allows you to quickly and easily publish changes to your store. This feature ensures clarity on the status of each publication, reducing confusion during updates.

Redesigned merchant support inbox

The master-detail inbox for merchant support organizes communications more effectively, making it easier for store owners to manage support inquiries and track responses.

Also shipped

  • Elevate Support to the top of the sidebar
  • Expose page speed history on /api/v1 for AI assistant
  • Expose serial numbers on /api/v1 for AI assistant
  • Add passkeys table
  • Register passkey plugin on the identity RP, gate /passkey/* internal-only
  • Make DNS records copyable in domain settings
  • Add per-event pause for ticket sales
  • Expose passkey ceremonies through the identity auth bridge
  • Passkey sign-in and post-OTP enrollment on the login page
  • Require a marketing-permissions checkbox on signup forms
  • Add serial number tracking module
  • Keep the sidebar unread badge fresh
Fixes9
  • [addons]Drop "Coming soon" from Stripe Tax and Stripe Invoices
  • [api]Answer 404 when a polled deployment doesn't exist
  • [api]Answer 4xx instead of 500 when a store can't publish
  • [cart]Stop a guest add-to-cart clearing the cart's customer
  • [design]Make localised storefront pages selectable in the page picker
  • [events]Improve event controls
  • [i18n]Ship the products namespace on every storefront page
  • [loyalty]Return safe fallbacks instead of throwing for unauthorized callers
  • [support]Refine support inbox
· v1.324

Merchant identity branding, OTP delivery tracking and campaign formatting

Merchant branding for identity login

This feature allows store owners to customize the identity login page with their branding, creating a cohesive brand experience for customers. This personalization can enhance trust and recognition during the login process.

Real OTP delivery tracking

Store owners can monitor the delivery of one-time passwords (OTPs) through Resend webhook tags. This feature provides better insights into customer authentication and helps identify any delivery issues.

Campaign editor formatting controls

The new formatting controls in the campaign editor enable store owners to customize the appearance of their newsletters more effectively. Improved formatting can lead to better engagement with subscribers.

Also shipped

  • Add identity login consent
  • Add internal shopper-session mint endpoint
  • Mint a fresh storefront session in the shopper identity handoff
  • Refine shopper identity login
  • Add shopper handoff session-mint columns
Fixes63
  • [auth]Add the accounts.issuer column better-auth 1.7 requires
  • [auth]Reject expired shopper flows in SQL, not by string comparison
  • [build]Restore directives displaced during i18n translation
  • [checkout]Keep inline OTP under unified shopper accounts
  • [checkout]Stop blur auto-send when a usable OTP is already out
  • [checkout]Stop the flow-cookie delete from wiping the minted session cookies
  • [i18n]Drop "successfully" from the email and addon copy
  • [i18n]Ship the namespaces four routes were missing
  • [i18n]Translate addresses page, checkout error and coming-soon page
  • [i18n]Translate builder block labels and shared input controls
  • [i18n]Translate cart modal quantity controls and the PKD price gate
  • [i18n]Translate cart summary, subscription portal sections and the storefront error boundary
  • [i18n]Translate checkout delivery, loyalty and menu quick-add
  • [i18n]Translate footer, country picker and checkout trust badges
  • [i18n]Translate inline JSX across 43 single-namespace admin files
  • [i18n]Translate inline JSX in the setup flow, landing sections and AI assistant chat
  • [i18n]Translate inline JSX text in builder settings and promotion forms
  • [i18n]Translate media, hub, sets and subscription list screens
  • [i18n]Translate product grid, reviews and restock panel
  • [i18n]Translate storefront nav, banner, account nav and values block
  • [i18n]Translate strings that start with two capitals
  • [i18n]Translate the 404 heading, AI assistant composer and shared inputs
  • [i18n]Translate the accept-invitation route and 25 admin leaf screens
  • [i18n]Translate the account wishlist, subscriptions and order success pages
  • [i18n]Translate the add-on setup and connection copy
  • [i18n]Translate the addons, menus, events and AppSumo pages
  • [i18n]Translate the admin explanatory copy
  • [i18n]Translate the auth recovery pages and debug panel
  • [i18n]Translate the block picker preview copy
  • [i18n]Translate the builder block settings forms
  • [i18n]Translate the builder block settings sections
  • [i18n]Translate the builder block Suspense fallbacks
  • [i18n]Translate the CSV import and newsletter summary emails
  • [i18n]Translate the customer subscription detail page
  • [i18n]Translate the AI assistant product landing page
  • [i18n]Translate the AI assistant store-ready and changes-applied emails
  • [i18n]Translate the AI assistant v2 landing and shared conversation view
  • [i18n]Translate the Furgonetka, GetResponse, Shippo, Allegro and InPost panels
  • [i18n]Translate the identity login, feeds docs and transfer email
  • [i18n]Translate the integration and reservation-expiry emails
  • [i18n]Translate the loyalty pages
  • [i18n]Translate the loyalty, orders and checkout copy
  • [i18n]Translate the menu editor and link selector
  • [i18n]Translate the newsletter email shell
  • [i18n]Translate the NIP validation messages
  • [i18n]Translate the NoviCloud add-on description
  • [i18n]Translate the order and subscriber detail sidebars
  • [i18n]Translate the points-expiry, contact-form and low-stock emails
  • [i18n]Translate the predefined HTML email templates
  • [i18n]Translate the remaining addon panels
  • [i18n]Translate the remaining builder block configs
  • [i18n]Translate the remaining toast messages
  • [i18n]Translate the set and bundle builders
  • [i18n]Translate the shared shadcn primitive labels
  • [i18n]Translate the shopper identity login and delete prompts
  • [i18n]Translate the sidebar and chat primitive labels
  • [i18n]Translate the storefront 404, maintenance and account screens
  • [i18n]Translate the subscription portal actions
  • [i18n]Translate the support case emails
  • [i18n]Translate the team invitation emails
  • [i18n]Translate the unsubscribe page and subscription products list
  • [i18n]Translate the upload inputs and clone popover
  • [publish]Surface publish failures that outlive the tab
· v1.323

Email OTP auth, redesigned sign-in popup and simplified card payment

Secure email OTP authentication

This feature allows store owners to implement secure email one-time password (OTP) authentication. It increases the security of customer accounts during the login process.

Redesigned OTP sign-in popup

The OTP sign-in process has been redesigned to appear as a Shop-style anchored popup. This user-friendly approach enhances the checkout experience and can help reduce cart abandonment.

Simplified single-card payment form

The payment process has been made more straightforward with a simplified single-card payment form. This change is designed to improve the customer experience and speed up transactions.

Also shipped

  • Add central shopper identity handoff
  • Autofocus the search input on the store selector page
  • Native admin forgot/reset password forms
  • Add guest-safe OTP identity flow
  • Detect shopper accounts on email-field blur
  • Polish account and address selection
  • Add restic DB backups to Hetzner Storage Box
  • Validate storefront Origin per store instead of trusting it
  • Native auth forms, drop the auth catch-all
Fixes27
  • [account]Derive shopper handoff origins from the store base URL
  • [analytics]Load GTM, MailerLite and Web Connect on builder storefronts
  • [builder]Hide Publish button for mid-migration stores
  • [build]Let Cache Components prerender bailouts through route catch blocks
  • [checkout]Accept the tenant proxy's platform-origin marker
  • [checkout]Align card payment fields
  • [checkout]Allow OTP on alternate storefront domains
  • [checkout]Anchor the OTP popup on every provider and polish it
  • [checkout]Forward a JSON body on bridge sign-out
  • [checkout]Harden the OTP auth surface end to end
  • [checkout]Keep guest state safe across the OTP dialog
  • [checkout]Normalize both sides of the OTP bridge origin check
  • [checkout]Plain try-again-later message for long OTP send waits
  • [checkout]Route storefront logout through the checkout bridge
  • [checkout]Separate guest email from shopper identity
  • [checkout]Tighten card geometry
  • [checkout]Translate the account chip and logout button
  • [db]Complete the v2 relations graph
  • [ai]Flag a chat whose session can't be resumed
  • [ai]Stop the activity row opening onto an empty panel
  • [getresponse]Send a 2-letter locale when creating the shop
  • [getresponse]Use the account's own Web Connect script URL
  • [loyalty]Require authenticated customer ownership
  • [ops]Use pg_dump 18 bindir in backup CI, bypassing pg_wrapper
  • [proxy]Compare storefront origins normalized, not as raw strings
  • [routing]Reserve identity infrastructure subdomains
  • [storefront]Validate login redirects and reroute stray sign-in links
· v1.322

Profile page, base currency change and ticket capacity from stock

Profile page for editing name and email

This new feature allows store owners to easily edit their profile information, including name and email. Keeping your contact information up to date helps ensure effective communication with customers.

Settings option for changing base currency

Store owners can now change their store's base currency directly through the settings endpoint. This flexibility enables better management of pricing and transactions for international markets.

Ticket sales capacity linked to variant stock

This feature allows store owners to automatically limit ticket sales based on the available stock of variants. This ensures that event capacities are accurately reflected and helps avoid overselling.

Also shipped

  • Gate AI assistant's approval policy on fields, not just operations
  • Add email template, booking slot, invoice and wishlist endpoints
  • Give every grouped store setting one patch rule
  • Add error boundaries for storefront and store admin
  • Index carts by store and recency, drop a duplicate
  • Rework command-menu scope chip into a scope bar
  • Schedule automatic go-live for draft events
  • Sync purchase history, custom events and unsubscribes
  • Resolve Zod validation messages through the catalog
  • Finalise orders, push parcels and handle refunds
  • Map carts onto InPost's basket format
  • Serve the merchant backend API
  • Show the widget on storefronts
  • Store merchant credentials and call the Basket App
  • Verify inbound request signatures
  • Record which provider took the payment
  • Simplify reservation creation
  • Add a profile page for editing your own name
Fixes93
  • [analytics]Render AOV and customers widgets on the client
  • [blog]Show the right products in every post embed
  • [checkout]Offer the payment methods the merchant enabled in Stripe
  • [context]Key the application-context memo on primitives
  • [design]Add a page picker to the preview address bar
  • [ai]Rename the approval "deny" option to "cancel"
  • [errors]Stop showing shoppers a raw stack trace
  • [getresponse]Send alpha-3 country codes and a valid processedAt
  • [i18n]Backfill missing translation providers across admin routes
  • [i18n]Close out AI assistant chat, builder message, event attendees and page switcher
  • [i18n]Close the last five translation provider gaps
  • [i18n]Finish onboarding tips, promotion cards and the AI assistant new-chat label
  • [i18n]Fix the wishlist server/client boundary and give themes a provider
  • [i18n]Give API settings a provider and translate five more surfaces
  • [i18n]Give the settings segment a translation provider
  • [i18n]Restore the NPS survey popup's translation provider
  • [i18n]Route every admin validation error through the catalog
  • [i18n]Ship admin.plans on /design and translate the onboarding poll
  • [i18n]Stop pinning admin date and time formatting to en-US
  • [i18n]Stop server components calling the client translation hook
  • [i18n]Translate action bar defaults, SEO previews, hub and builder dialogs
  • [i18n]Translate admin error boundaries and not-found
  • [i18n]Translate admin page titles
  • [i18n]Translate billing plans, image studio, restock and modules
  • [i18n]Translate brand, category and collection validation messages
  • [i18n]Translate builder settings, domain validation and the themes page
  • [i18n]Translate category import example, plan list, task card and error boundary
  • [i18n]Translate currencies, blog comments and the media gallery
  • [i18n]Translate dialog titles, empty states and inline labels
  • [i18n]Translate domain status badges and DNS instruction panels
  • [i18n]Translate AI assistant dock, hub insights and builder controls
  • [i18n]Translate AI assistant panels, promotions page and seven more surfaces
  • [i18n]Translate event log titles at render time
  • [i18n]Translate fallback strings, AI assistant window, publish retry and widget picker
  • [i18n]Translate feedback stepper and Allegro prerequisites
  • [i18n]Translate hub tabs and services, support attachments and post fields
  • [i18n]Translate inbox filters, AI assistant memory, tax rates and subscription detail
  • [i18n]Translate localization, store chat card, go-live, CSV import and hub
  • [i18n]Translate login, shippo labels and analytics widgets
  • [i18n]Translate order status labels, support thread and blog categories
  • [i18n]Translate pickup point validation messages
  • [i18n]Translate plan pricing, upgrade prompt, editor hints and media picker
  • [i18n]Translate promotion validation and bulk toggle errors
  • [i18n]Translate remaining page headings and single-string surfaces
  • [i18n]Translate remaining placeholders and aria-labels across the admin
  • [i18n]Translate shared channel and support-ticket label constants
  • [i18n]Translate six admin surfaces and add admin.oauth to the auth layout
  • [i18n]Translate status badges, promotion actions and store builder settings
  • [i18n]Translate store provisioning, module titles and store chat stats
  • [i18n]Translate support, events, operations and template browsing
  • [i18n]Translate tax rate errors, restock page, issues page and email preview
  • [i18n]Translate ten more admin surfaces
  • [i18n]Translate ternary labels across analytics, AI assistant, billing and studio
  • [i18n]Translate the AI store setup flow
  • [i18n]Translate the Allegro publish checklist
  • [i18n]Translate the analytics charts, tables and date range picker
  • [i18n]Translate the analytics dashboard and its widgets
  • [i18n]Translate the bookings, plans and subscribers screens
  • [i18n]Translate the crash report form, sets, hub overview and wishlist stats
  • [i18n]Translate the design chat header, AI assistant history and volume pricing
  • [i18n]Translate the editor toolbar, blog post form, promotions and AI assistant chat
  • [i18n]Translate the email domain card, create-order page and reserved panel
  • [i18n]Translate the events and bookings screens
  • [i18n]Translate the feedback session review form
  • [i18n]Translate the manage-domain and buy-domain dialogs
  • [i18n]Translate the onboarding dashboard
  • [i18n]Translate the order edit form, refund dialog and order comments
  • [i18n]Translate the post editor and store picker
  • [i18n]Translate the posts table, AI assistant messages, NPS survey and addon categories
  • [i18n]Translate the promotion edit form
  • [i18n]Translate the prompt editor toolbar, promotions list and event forms
  • [i18n]Translate the redirects settings page
  • [i18n]Translate the remaining validation messages
  • [i18n]Translate the shipping methods and pickup address screens
  • [i18n]Translate the store chat and reserved order settings forms
  • [i18n]Translate the store-creation landing page
  • [i18n]Translate the store-creation prompt composer
  • [i18n]Translate the store-creation result screens
  • [i18n]Translate the trial and billing warning banners
  • [i18n]Translate theme apply, support case actions and subscription cancel
  • [i18n]Translate toasts across builder, tax rates, orders, menus and support
  • [i18n]Translate transfer acceptance, signup, editor toolbar and refund actions
  • [i18n]Translate wishlist tables, site sidebar and four more surfaces
  • [invoices]Link the invoice list from the sidebar
  • [invoices]Scope invoiceGet to the authenticated store
  • [onboarding]Take the new store's currency from the country the user confirmed
  • [reviews]Scope the review detail page to the authenticated store
  • [support]Stop retried submits from opening duplicate cases
  • [tests]Stop React's taint API taking whole suites down
  • [tests]Stop the cart spec failing on its own assumptions
  • [types]Drop the type predicate from Set.has and Array.includes
  • [ui]Use stable keys in editable lists
  • [vercel]Downgrade deployment_not_ready to expected log level
· v1.321

Public pay-link pages, bundle auto-publish and compact create-order form

This feature allows store owners to create a public pay-link page for reserved orders using Stripe. It provides an easy and secure way for customers to complete their purchases.

Auto-publish draft constituents when bundles are published

Store owners can now automatically publish draft items when a bundle is published. This simplifies the process of releasing new products and ensures that all components are available to customers immediately.

Compact create-order form with instant pickers

The create-order form has been redesigned to be more compact and user-friendly, featuring instant pickers for quick item selection. This improvement speeds up the ordering process, making it easier for store owners to manage sales.

Also shipped

  • Report masked server-action errors to Sentry tagged with their ref
  • Add keyboard shortcuts panel on cmd+/
  • Polish store picker and fix search scroll
  • Unify keyboard shortcut display
  • Add favorite conversations
  • Add rich composer interactions
  • Contextualize chat prompts
  • Linear-style empty state and page-context toggle
  • Polish chat activity and message affordances
  • Refine contextual chat composer
  • Refine conversation presentation
  • Refine response activity
  • Refine thread navigation
  • Rework the agent threads dock
  • Show the storefront preview in chat
  • Treat a store language change as a sweep, not an edit
  • Anchor the list filter tabs to the left of the header
  • Auto-expire reserved orders via hourly cron
  • Reserved B2B orders created in admin, with stock reservation
  • Rework the create-order form with client picker and inline product search
  • Serve merchant redirects on Elliot storefronts
Fixes8
  • [admin]Match shortcuts overlay to marketing menu wash
  • [allegro]Surface config errors, guard refresh races, block duplicate publishes
  • [ai]Preserve chat context controls
  • [ai]Quote the translate-storefront skill description
  • [ai]Show empty-chat waves only in the floating window
  • [orders]Keep every list row a fixed height
  • [orders]Serve the reserved-order pay link from the platform root domain
  • [orders]Stop showing waived delivery as a discount in the order sidebar
· v1.320

Store Chat, global event search and admin URL redirects

Store Chat

Store Chat puts an AI shopping assistant on your storefront: shoppers ask about sizing, availability or which product suits them and get answers drawn from your real catalogue, complete with the products themselves. A merchant page covers configuration and analytics, so you can tune how the assistant behaves and read what customers are actually asking for. Store Chat is included in the Pro plan.

Events and attendees are searchable from anywhere in the admin, scoped to the screen you're on, with a dedicated attendee search on the event detail page. The events list is ordered sensibly with upcoming events split from past ones, and a per-event policy decides which attendee details are shown.

Admin-managed URL redirects

Create and manage URL redirects from the admin. A renamed product, a retired campaign page or a URL that lives on in someone's newsletter sends visitors somewhere useful instead of a dead end.

Also shipped

  • One search control per list – list search folded into a single expandable control in the table header, consistent across the admin
  • Voice intake for support – describe a support case out loud and it arrives transcribed in the case
  • Store module toggles on the Store API
  • Store Chat widget configuration exposed on the /api/v1/me endpoint
  • Product embeds in blog posts can feature a single variant
Fixes44
  • [acp]Fix percentage coupon scale in checkout total mappers
  • [acp]Scope agentic checkout sessions to their own protocol
  • [acp]Deduplicate checkout session creation on the idempotency key
  • [acp]Stop dropping webhook config off the settings schema
  • [analytics]Correct revenue SQL for legacy orders, shipping and refunds
  • [analytics]Honest widget numbers and labels
  • [api-types]Add tracked to the published inventory SDK type
  • [api]Keep variant cost out of the public product types
  • [bundle]Scope variant rewrite to store, surface orphaned rows
  • [bundles]Price, stock and cart-add from what a customer can actually build
  • [cart]Scope line-item and shipping actions to the caller's cart
  • [cart]Skip abandoned-cart email when the cart is empty
  • [categories]Reject a parent change that would cycle the tree
  • [checkout]Correct totalNet, bundle tax and order money snapshots
  • [currencies]Name the value that failed to convert
  • [customers]Drop the non-existent phone column from PATCH
  • [eparagony]Validate tax ids against real EU VAT prefixes
  • [fakturownia]Fall back to the shipping address on invoices
  • [feed]Normalize currency case, blank inventory for untracked variants
  • [furgonetka]Convert parcel weight from grams to kilograms
  • [import]Parse European decimal separators, stop inventing prices
  • [inventory]Count distinct ids in the bulk stock ownership check
  • [inventory]Mark untracked variants instead of reporting sold out
  • [inventory]Scope stock writes to the owning store
  • [klaviyo]Scale reported amounts by the currency's own decimals
  • [loyalty]Quote below-minimum redemption in the store's currency
  • [loyalty]Report actual points expired, scope lookups by store
  • [loyalty]Scope storefront loyalty lookups to the caller's own id
  • [novicloud]Scope the stock sync query to the store
  • [pricing]Compare currency codes case-insensitively
  • [pricing]Floor set discount at zero, fix free-shipping tax blindness
  • [privacy]Redact variant cost from storefront and API surfaces
  • [products]Accept the CSV files spreadsheets actually produce
  • [products]Fix variant grouping position and cross-type merging
  • [products]Show variant attributes unless they are explicitly hidden
  • [refund]Bound the payment-intent match window, anchor the id pattern
  • [refund]Scope restock to the order's own lines, reject a zero amount
  • [search]Return each matching variant as its own result
  • [settings]Wire the shipping-methods search to the URL query
  • [shippo]Refuse to quote an address with no country
  • [storefront]Make consent decline work outside Chromium
  • [storefront]Scope address actions to the owning user
  • [tax-rates]Guard the country lookup against prototype keys
  • [utils]Resolve relative media URLs, validate subdomain suffix