Changelog

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

· 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
· v1.319

Marketing attribution, analytics widgets and product costs

Marketing attribution

The storefront records first- and last-touch attribution against a client session and sorts each visit into a channel, then carries that attribution from the cart onto the finished order. Sales-by-channel and traffic-by-channel widgets on the dashboard answer which channels bring visitors and which bring revenue, which is rarely the same ranking.

Analytics widgets

The dashboard gained a cohort retention heatmap, trend widgets, cart abandonment stats, a gross/net toggle, order-derived KPIs as widgets and daily traffic-source rollups. Between them you can see whether repeat purchases are holding up month over month rather than guessing from a single revenue line.

Product costs and profitability

Record a cost per variant and the dashboard reports profit alongside revenue, with a cost-coverage figure showing how much of the catalogue has costs filled in so you know how far to trust the figure.

Also shipped

  • Meta CAPI purchase events sent server-side — purchases reach Meta from your server, so ad reporting survives blockers and dropped cookies
Fixes4
  • [analytics]Net refunds and correct customer and top-product metrics
  • [analytics]Revalidate the analytics route after widget-config saves
  • [analytics]Qualify order columns in the hand-written top-products query
  • [checkout]Store a real totalNet on finalized orders
· v1.318

Newsletter campaigns, back-in-stock emails and blog post translations

Newsletter campaigns

Pick a preset audience with live subscriber counts, feature products in the body, and schedule the send through a durable workflow that fires whether or not anyone is watching. Test sends go to any address you name, and a readiness checklist now tells you what's still missing instead of a guard that blocked you from building the campaign at all.

Back-in-stock emails

Customers who asked to be told when a sold-out variant returns get an email the moment stock comes back. A shopper who would otherwise have drifted elsewhere gets pulled back without anyone on your team remembering to follow up.

Per-locale blog post translations

Blog posts carry a translation per locale, and published posts are picked up by the store translation workflow alongside the rest of your content.

Also shipped

  • Hyperlinks in product descriptions — point at a size guide, a material spec or a companion product from inside the description
  • Legacy Storebuilder stores convert in place — move a Storebuilder store onto the AI Builder without rebuilding it from scratch
  • Unsubscribe link and List-Unsubscribe headers on welcome and coupon-expiry emails
Fixes13
  • [ai]AI assistant dashboard links follow the real admin navigation
  • [ai]AI assistant provisions the Builder sandbox instead of refusing the store
  • [checkout]Ship /account messages to the checkout client
  • [emails]Don't skip the merchant order confirmation when the customer email dedupes
  • [emails]Let product names wrap in the order confirmation
  • [emails]Skip abandoned-cart recovery email for unsubscribed recipients
  • [emails]Wrap raw Resend error objects in real Errors
  • [newsletters]Close race windows in the send/delete state machine
  • [newsletters]Compare schedule instants, not strings, in the fire-time guard
  • [newsletters]Settle the editor on the row a test send or schedule created
  • [newsletters]Surface a missing store address in test sends
  • [posts]Re-host images supplied through the API
  • [storefront]Unsubscribe via an explicit action, not a page-render side effect
· v1.317

Catalogue translation write endpoints

Product and catalogue translations can now be written through the API, not only read. Translations can be kept in sync programmatically or pushed in from an external translation tool, instead of being retyped in the admin one locale at a time.

Fixes1
  • [api]Restore the OpenAPI document by adding the schema metadata it needs
· v1.316

Login and signup placeholders

The login and signup forms show example values in each field, so what belongs where is obvious before you start typing.

Fixes1
  • [ai]AI assistant resolves the store from your session
· v1.315

Attendee CSV export

Export an event's attendee list as a CSV straight from the event. That gives you a check-in sheet, a badge print run or a mail merge without anyone copying names out of the admin by hand.

Also shipped

  • AI-guided onboarding by default — new merchants set their store up by talking to the AI assistant rather than working through a setup form
Fixes1
  • [furgonetka]Show the pickup point's code and address, not just its name
· v1.314

Store-scoped admin URLs

The whole admin now lives under /s/<store-slug>. Every screen resolves its store from the URL rather than from whatever store your session last touched, and the slug is carried through OAuth provider callbacks in a signed cookie so connecting an integration lands you back where you started. Links and bookmarks point at one specific store, teams running several stores stop acting on the wrong one by accident, and every store id arriving in a request is membership-checked before anything is read or written.

Fixes5
  • [admin]Keep server-side redirects inside the current store
  • [admin]Keep the current section when switching store
  • [admin]Scope the credits poll to the store in the URL
  • [products]Refresh the list for the merchant who just saved
  • [products]Scope bulk product writes to the session's store
· v1.313

Faster admin lists and collection browsing by variant

Faster admin lists

Every list table in admin picked up numbered pagination with pending indicators, optimistic updates for deletes, bulk actions and module toggles, and loading skeletons shaped like the rows they stand in for. Table search stays mounted and responsive as you type, so working through a few thousand products feels like a local app instead of a round trip per keystroke.

Collection browsing by variant

Collections gained a products endpoint and browse one card per variant, so a collection of shirts shows each colour as its own card rather than hiding them behind a single entry.

Also shipped

  • Domains settings leads with connecting a domain — the page opens on the action most merchants came for instead of burying it below the list
Fixes10
  • [admin]Make sidebar group identity and active state consistent
  • [admin]Optimistic-list edge cases and streaming for the remaining lists
  • [admin]Pagination a11y and prefetch, URL-driven hub tabs
  • [admin]Read the URL at call time in search and filter controls
  • [admin]Replace the remaining native confirms with AlertDialog
  • [admin]Stop reporting success on failed mutations
  • [domains]Keep unpublished stores' custom domains off the storefront
  • [domains]Revalidate the whole settings subtree and return checkout to /buy
  • [i18n]Close audited namespace gaps and trim the admin root page
  • [support]Mark cases read from a client mount, not during render
· v1.312

Faster publishing for migrated stores and Gallery lightbox

Faster publishing for migrated stores

Migrated stores publish directly, without spinning up a Builder sandbox first. Pushing a change live becomes a matter of seconds rather than a wait long enough to walk away from.

Images in the storefront Gallery block open in a click-to-enlarge lightbox, letting shoppers inspect the detail on a product shot without leaving the page they're on.

Also shipped

  • Clearer preferred carrier at checkout — the carrier you've marked as preferred stands out visually in the shipping step, nudging more orders onto the courier you'd rather work with
Fixes4
  • [checkout]Honor the preferred carrier whenever the store offers it
  • [ai]AI assistant keeps queued prompts in the order you sent them
  • [search]Make suggestions and the results page agree
  • [search]Unify product matching and ranking with browse
· v1.311

Email marketing addons and capability-scoped API keys

Mailerlite and GetResponse addons

Connect Mailerlite or GetResponse with an OAuth click and your customers, orders and product activity sync across on their own. The list on the email side stays current without a CSV export in between, so campaigns can be targeted by what people actually bought.

Capability-scoped store API keys

A store API key now grants only the capabilities you pick when you create it. A key handed to an inventory script can read stock and nothing else, which makes integrations and outside contractors far less risky to give credentials to.

Also shipped

  • Blog editor with visual and HTML modes — write posts in a rich editor or drop down to raw HTML, and pasted text arrives clean instead of dragging in formatting from wherever it was copied
Fixes5
  • [api]Close a cross-tenant write and billing bypass in /api/v1
  • [coupons]Open the edit form on the coupon's actual scope
  • [events]Run add-on handlers after the response so they aren't cut off
  • [search]Cover product descriptions and translations
  • [setup]Bound store creation and honour the billable flag