Changelog· Page 4

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

· v1.350

Bounced subscribers, automatic pausing and Resend suppression sync

Bounced subscribers management

This feature allows store owners to see which subscribers have bounced and provides the option to reactivate them. Managing your subscriber list effectively helps maintain better email deliverability and engagement.

Automatic subscriber pausing on bounces

Subscribers whose email addresses bounce permanently will automatically be paused. This reduces the chance of sending to invalid addresses and enhances overall email list quality.

Syncing paused subscriber addresses

Store owners can now sync subscribers on pause from Resend’s suppression list. This ensures that your email outreach is compliant and reduces undeliverable attempts.

Also shipped

  • Show paused subscribers in the public API
  • Attribute webhook events to campaigns
  • Browse the list without the campaign body
  • Fetch campaign stats from Resend
  • Link a campaign's bounces to the paused subscribers
  • List the most clicked links of a campaign
  • Offer to turn stats on from the campaign report
  • Query campaign stats by newsletter id
  • Rebuild the list on the products pattern
  • Report page for sent campaigns
  • Save campaign stats on a schedule
  • Show Resend's numbers in the report and the list
  • Tag campaign emails with their campaign id
  • Keep campaign stats on the newsletter
  • Link email events to campaigns
  • Record why a subscriber can't be emailed
  • Derive open and click tracking state from the Resend domain
  • Turn on open and click tracking for new sending domains
  • Show the tracking DNS record
  • Skip paused addresses when sending
Fixes10
  • [api]Change email tracking only once the settings request is accepted
  • [bin]Keep a tracking switch the merchant turned off
  • [campaigns]Give the status tabs their translations
  • [campaigns]Save the longest-unsaved campaign stats first
  • [campaigns]Show status, opens and clicks on small screens
  • [email]Keep a verified domain verified on Resend errors and pending tracking DNS
  • [email]Record opens and clicks whenever Resend reports them
  • [restock]Keep a paused address's back-in-stock watch
  • [settings]Stop polling Resend while a tracking record stays pending
  • [subscribers]Don't promise a way back after a spam complaint
· v1.349

Easier discount codes, side-by-side test orders and VAT on delivery

Easier discount code usage

The discount-code field is now more accessible during checkout, making it simpler for customers to apply promotions. This can help increase conversion rates and customer satisfaction.

Side-by-side viewing of orders

Store owners can now view live and test orders next to each other in the admin area. This feature aids in better order management and troubleshooting during testing phases.

VAT charging on deliveries

You can now automatically charge VAT on delivery options. This ensures compliance with tax regulations and helps store owners avoid unexpected costs.

Also shipped

  • Report counter sales as their own in-store channel
  • Expose the store's low-stock band on GET /api/v1/settings
  • Let the brand DAO find or create by name
  • Freeze line prices when a payment starts
  • Keep a collection targeted by stock pricing manual
  • Carry the manufacturer in product import and export
  • Let direct text edits change copy mixed with code
  • Let the merchant untick DNS records before the move
  • Let an evaluation model gate store writes the approval list doesn't name
  • Support VND currency and Vietnamese storefront locale
  • Translate the variant stock guard and the partial CSV group error
  • Add brand and category selects to the Stock toolbar
  • Add variant matching and a stock-identity read
  • Filter the Stock rows and counts by brand and category
  • Look up an exact SKU or barcode from the Stock search box
  • Resolve the low-stock band from store settings
  • Accept counter orders in the admin reserved-order actions
  • Add the counter order switch and chips to the admin UI
  • Add the counter reserved-order primitives
  • Create counter reserved orders on the shared write path
  • Draft orders with invoices, payment terms and discounts
  • Explain how a counter order differs from a draft order
  • Give a counter order the store's in-store shipping method
  • Keep counter sales out of buyer mail, KSeF and the refund PSPs
  • Take card payments on the order pay link itself
  • Adopt a stored variant when an option dimension is added
  • Carry variant ids through the CSV import and refuse partial groups
  • Filter the product list by brand and category
  • Filter the product list by brand and category search params
  • Refuse a save that would delete a variant holding stock
  • Let merchants set the low-stock threshold
  • Add the module and price products from a stock ladder
  • Add the settings page for the price ladder
Fixes68
  • [admin]Hide the Cookiebot bubble and open cookie settings from the user menu
  • [admin]Make the test/live switch show its result
  • [api]Set the store language from defaultLanguage in settings
  • [billing]Show remaining AI credits per source instead of lifetime totals
  • [bundles]Price and tax bundles consistently across cart, API and editor
  • [checkout]Keep the mobile checkout column within the screen
  • [checkout]Return Stripe redirect payments to /checkout/stripe-return
  • [checkout]Stop blocking payment for pickup rates without a carrier
  • [checkout]Stop leaking phone field props onto the stacked address input
  • [counter]Keep a priced in-store method off the counter default
  • [csv]File imported brands whose name spells no slug
  • [csv]Stop a blank brand_name column from clearing a product's brand
  • [customers]Stop requesting the shopper's name as an avatar image
  • [design]Stop design workspaces that hang while reported running
  • [domains]Show Vercel's per-domain DNS recommendation
  • [ai]Catch the chat up when its tab regains focus
  • [ai]Load support translations on the AI assistant page
  • [ai]Pass the selected store into Super AI assistant background tools
  • [getresponse]Match the web-push worker and name shoppers to Web Connect
  • [getresponse]Register the web-push worker for the whole storefront
  • [getresponse]Report client-side navigations to Web Connect
  • [getresponse]Send newsletter consent with checkout.started
  • [i18n]Correct the low-stock email and threshold hint copy
  • [i18n]Correct the Polish counter order hint
  • [inpost-pay]Reshape delivery[] to the documented contract
  • [inpost-pay]Send the products list in every basket payload
  • [inpost-pay]Stamp binding_place on every mounted widget button
  • [inventory]Give the scan lookup a stable order and a usable index
  • [inventory]Keep scan mode perceivable to keyboards, IMEs and screen readers
  • [inventory]Keep the category subtree walk inside the store
  • [inventory]Keep the scanner in the search box between scans
  • [inventory]Let the Stock brand filter name a paused manufacturer
  • [inventory]Reopen the scanned panel when the same code is scanned again
  • [inventory]Scan the codes the classifier would accept
  • [migration]Refuse cutover when legacy pages changed after the rebuild's export
  • [newsletter]Serve unsubscribe, confirm and download links from the platform domain
  • [orders]Block a counter order that oversells a tracked line
  • [orders]Compare a reserved-order replay against the request, not the price
  • [orders]Find a repeated job number by its exact tag
  • [orders]Identify a reserved-order replay by its goods alone
  • [orders]Keep carrier and manual-payment emails off counter orders
  • [orders]Let merchants correct the customer name and addresses on any order
  • [orders]Open Stripe checkout for reserved order pay links again
  • [orders]Release the goods when an undispatched order is refunded
  • [orders]Require the source column on the counter channel guard
  • [orders]Show pay page errors to the client
  • [orders]Show the job chip only on counter orders
  • [orders]Show the schema's refusal when creating an order fails
  • [orders]Stamp the external payment provider on counter orders at creation
  • [orders]Translate the counter refund refusal
  • [platform]Scope tenant Vercel project names by environment
  • [products]Answer the REST import refusal in English
  • [products]Bound the brand and category search params
  • [products]Derive the CSV preview key from the values the import saves
  • [products]Group the CSV variant preview the way the import does
  • [products]Keep the variant id when the grid is bulk-edited
  • [products]Match the CSV preview's variant coverage to the save's
  • [products]Name ledger history as the blocker when a variant cannot be removed
  • [products]Rebuild variant option rows from the upserted value ids
  • [products]Refuse a partial CSV variant group in the import, not only the preview
  • [products]Refuse a partial CSV variant group in the REST import too
  • [products]Stop adopting a stored variant by option subset
  • [publish]Record a live verdict for a late publish whose build is serving
  • [seo]Keep unlaunched stores and duplicate subdomains out of search
  • [subscriptions]Flush product caches after a renewal order
  • [ui]Keep useDidUpdate from firing on Strict Mode's replayed mount
  • [webhooks]Register payment and carrier webhooks on the platform domain
  • [wholesale]Keep payUrl a string in the order creation response
· v1.348

Stripe API tool, persistent chat and background task reports

Stripe API tool for store accounts

This tool allows store owners to manage payment processing directly through their own Stripe account. With this integration, store owners can maintain greater control over payment transactions and customer experiences.

Persistent chat functionality

Open chat sessions now remain accessible via the URL, allowing store owners to maintain ongoing conversations with customers. This feature enhances customer service continuity and ensures that no discussion is lost.

Improved chat logs and task management

Store owners can now access resumable chat logs and receive background task reports, making it easier to track conversations and manage approvals. This feature helps improve operational efficiency and customer engagement.

Also shipped

  • Pick image and video models by mode or gateway id
  • Attach payment-link subscriptions and bill installments from the root webhook
  • Check_storefront_build runs checks in the background
  • AI assistant:health report over eve_sessions
  • Progress labels and deadlines on every tool
  • Save memory without asking unless it overwrites the merchant's words
Fixes6
  • [billing]Keep deferred installment invoices in draft until their scheduled date
  • [ai]Re-resolve instructions and onboarding tools every turn
  • [ai]Read the open chat from ?thread= on the AI assistant page
  • [ai]Use eve's current connection tool names
  • [inventory]Finish Activity batch filtering follow-up
  • [support]Retried delegation step re-attaches to the running AI assistant turn
· v1.347

In-place storefront copy editing, activity balance view and batch search

In-place storefront copy editing

Store owners can now edit their storefront copy directly from the preview. This simplifies content updates, allowing changes to be made quickly without navigating through multiple menus.

Activity movements view with balance

The new activity movements view displays inventory changes with the current balance shown for each row. This feature helps store owners track inventory levels more efficiently and make informed decisions.

Batch number search and expiry flagging

Store owners can now locate products by their batch numbers and easily identify items nearing expiration. This enhances inventory management and reduces the risk of selling outdated products.

Also shipped

  • Batch presets on the Batches view
  • Clarify activity quantities and product details
  • Show a product's batches in its Stock row
  • Simplify activity details and unify database tests
  • Stamp every ledger call with an operation id
Fixes4
  • [api]Let bundles take a tax rate
  • [inventory]Pending filter tabs and a cached reconcile check
  • [inventory]Prevent Documents tab translation crash
  • [ui]Label the segmented filter control
· v1.346

Custom notes for discount codes, manage product options easily and activity tabs

Custom notes for discount codes

Merchants can now add a customizable note above the discount code field during checkout. This feature allows store owners to provide specific instructions or important information to customers, helping to enhance the shopping experience.

Manage product options easily

Store owners can now list, rename, and delete product options through the API. This capability simplifies inventory management and allows for more accurate product differentiation.

Activity tabs and product search in inventory

The new Activity tabs and product search functionality enable store owners to quickly find and manage their products within the inventory. This improvement facilitates better oversight of stock levels and product details.

Also shipped

  • Keep variant options consistent and add product options
  • Let the store API change a product's badge
  • Attach Stock and Documents tabs to tables
  • Paginate Stock with Needs attention, Last received and a product panel
  • Refine stock views and record count documents
  • Wire count and removal actions into the product panel
Fixes8
  • [api]Accept any UUID version in route id params
  • [api]Expire product caches after store API writes
  • [builder]Hide empty values bars and only offset the first one
  • [builder]Re-fork expired or half-built design sandboxes
  • [coupons]Match non-ASCII codes and restrict codes to Stripe's alphabet
  • [refunds]Record Stripe refunds before the money moves
  • [ui]Remove table search input shadow
  • [variants]Drop options left unused when a variant's options are replaced
· v1.345

Storefront preview screenshots, auto-launched stores and AI-generated media

Storefront preview screenshots

The AI assistant can now capture storefront previews, making it easier for store owners to review changes visually. This feature aids in assessing design updates without needing to navigate away from the platform.

Automatic store go-live process

New stores will automatically be set to live, reducing the steps needed for launch. For draft stores, an explicit 'Go live' option ensures owners have control over their launch timing.

AI assistant content creation capabilities

The AI assistant can now create images and videos based on your store's needs. This helps store owners enhance their visual content without needing advanced design skills.

Also shipped

  • Adopt the new bag mark as the platform favicon
  • Publish popover reads the lifecycle; Go live, Publish changes, Try again
  • Move a merchant domain to YNS-managed DNS on Cloudflare
  • Let AI assistant wait with eve's durable sleep tool
  • Run publishing and media generation in the background
  • Show what each tool call is doing while it runs
  • Teach Super AI assistant to answer platform funnel questions
  • Validate staging configuration before deployment
  • Toast feedback when saving the addon settings
  • Compact receiving editor with header edits and Record another delivery
  • Replace Movements with a grouped Activity feed
  • Shared contracts for the Stock and Activity redesign
  • Stale-safe counts, per-row bulk counts and variant-level write-off
  • Score accessibility on every Lighthouse run
  • Lifecycle facts, publish attempt ids and an atomic publish claim
  • Add, edit and unsubscribe subscribers from the admin
Fixes15
  • [addons]Record consent proof and stop gating test mode
  • [admin]Keep chat link previews of admin pages to a small thumbnail
  • [checkout]Keep checkout edits to a picked address on the cart's own row
  • [checkout]Reconcile the form against the Stripe session
  • [checkout]Run the InPost Pay bootstrap through next/script
  • [design]Follow the server's attempt id and phase; go live claims at creation
  • [ai]Keep every unanswered card answerable and let pinned notes send
  • [ai]Keep merchant photos out of the storefront repo
  • [inventory]Conserve stock and simplify receiving
  • [inventory]Store a printed tax rate as a percentage, not as text
  • [orders]Flip to paid once and send confirmations at least once
  • [paynow]Take the finalize lock before writing the cart
  • [publish]Keep the attempt marker until the verdict is recorded
  • [publish]Scoped config writes on the deploy tail and a safe retry of the first build
  • [store]Treat an abandoned publish as a failed outcome everywhere
· v1.344

Voice input for chat, one-button warehouse and drag-and-drop uploads

Voice input for chat composer

This feature allows customers to interact with the chat via voice, making it easier to communicate and ask questions. It enhances the customer experience by providing a convenient alternative to typing.

One-button warehouse activation

Store owners can now activate their warehouse with a single click, simplifying the setup process. This saves time and reduces the complexity of getting inventory ready for sales.

Drag-and-drop supplier document uploads

Store owners can easily upload supplier documents by dragging and dropping them into the specified upload box. This simplifies document management and speeds up inventory processing.

Also shipped

  • Let AI assistant generate video clips through the store API
  • Make the mic the send button and enable voice on every AI assistant surface
  • Add ledger, lot and receiving schema
  • Compact scanned PDFs before extraction
  • Count stock through a dialog on Warehouse stores
  • Filter the stock list by goods expiring within 30 days
  • Let merchants write off and trace a stock layer
  • Let test mode move stock like live
  • Make the Movements tab readable and exportable
  • Open layers when lot tracking is switched on
  • Post corrections against a named layer
  • Re-encode photographed documents before upload
  • Replace the reconcile cron with a daily expiry sweep
  • Route every stock write through the ledger
  • Show opening layers and pick correction targets
  • Show warehouse quantities only where they exist
  • Store stock layers on receipt lines
  • Supplier documents, receipts, lots and warehouse activation
  • Sweep supplier documents that no receipt references
  • Warehouse admin UI with Stock, Incoming, Movements and Lots
  • Correction invoices from refunds, checkout NIP check, retry
  • Send the signup placement as a subscriber field
  • Dispatch and release inventory inside the status transition
  • Flag lot-missing and traceability-gap orders in the list
  • Make the sidebar's stock section answer for the dispatch
  • Say whether a refund releases or returns the goods
  • Let the store API attach digital download files to variants
  • Record first-time onboarding milestones
  • Tag support-origin Linear issues with a Support label
Fixes42
  • [admin]Track actual action promises for loading state
  • [api]Refuse Warehouse half-states in PATCH /api/v1/modules
  • [api]Resolve legal pages by the store's own href
  • [auth]Drop the "http://undefined" trusted origin
  • [auth]Pin better-auth back to 1.7.2
  • [builder]Check save results before feedback and navigation
  • [builder]Keep store secrets out of sandbox command text
  • [catalog]Honor selected IDs in lite product browsing
  • [checkout]Reject foreign carts before payment finalization
  • [checkout]Scope address saves to the requested store
  • [checkout]Store a signed-in shopper's typed address as the cart's own row
  • [checkout]Wait for successful saves before confirming payment
  • [cron]Skip the WAL tick when another run holds the slot
  • [domains]Stop logging routine domain states as errors
  • [ai]Pass a numeric low-stock threshold to the daily triage query
  • [furgonetka]Gracefully skip non-Furgonetka shipping methods in auto-fulfill
  • [hooks]Use the latest debounced callback and cancel on unmount
  • [instaview]Surface HikerAPI rejections and stop retrying a dead key
  • [inventory]Answer a duplicate supplier document with a conflict
  • [inventory]Clear a correction's layer pick on re-match
  • [inventory]Dispatch even when the delivery note cannot be built
  • [inventory]Gate every Warehouse surface on one predicate
  • [inventory]Keep untracked variants untracked on an order edit
  • [inventory]Let a correction into an expired layer be voided
  • [inventory]Make a refused external stock sync visible
  • [inventory]Normalise document extraction into one draft shape
  • [inventory]Record a carrier dispatch of an unassigned lot line
  • [inventory]Reduce committed lines when a legacy order is refunded
  • [inventory]Resolve a named layer in the store before adjusting it
  • [inventory]Scope document line variants to the writing store
  • [inventory]Show the supplier's own quantity on a document line
  • [inventory]Store extracted unit prices in minor units
  • [inventory]Store supplier documents in a private Blob store
  • [inventory]Surface inventory issues in the Issues view
  • [inventory]Switch environments in a fixed number of statements
  • [inventory]Take the ledger scope lock before order and variant rows
  • [inventory]Translate stock history reasons and page the sheet
  • [mailerlite]Keep the product catalog in sync after connect
  • [orders]Drop reserved from the status dropdown
  • [orders]Lock the cart during finalize and confirm a paid order once
  • [orders]Tidy the order write path around the inventory ledger
  • [vercel]Stop an unparseable API error body masking the real failure
· v1.343

Numbered PDF orders, event attendee photos and optional custom domain

Order download as numbered PDF

Store owners can now download order details as a PDF item list with numbering, making it easier to manage orders and keep track of products. This feature simplifies order handling and improves record keeping.

Profile photo upload for event attendees

Attendees can now upload profile photos for their tickets, personalizing the check-in and event experience. Store owners get a more recognizable attendee list at the door.

Optional custom domain setup

Store owners can choose whether to attach a custom domain during setup, simplifying onboarding for new merchants. This flexibility allows easier brand management without mandatory configurations.

Also shipped

  • Direct KSeF e-invoicing addon, mutually exclusive with eParagony
  • Numbered lines on invoice PDFs
  • Newsletter signup alerts for merchants
  • Rolling subscriptions with curated cycles and add-ons
Fixes26
  • [admin]Collapse the order sidebar when its slot renders nothing
  • [builder]Let retry heal a dead dev server in a running sandbox
  • [builder]Parse the sandbox-health poll body instead of asserting it
  • [builder]Resume a stopped sandbox from AI assistant's preview card
  • [builder]Treat a stated template tone as a filter, not a tiebreaker
  • [cart]One subscription line per cart
  • [cart]Scope variant lookups to the store and refuse draft products
  • [checkout]Keep a failed background sync from blanking the page
  • [checkout]Stop the InPost Pay slot from breaking hydration
  • [domains]Stop telling merchants to add a second DMARC record
  • [ai]Cap run_storefront_command at the length the server accepts
  • [ai]Do not require approvals for read only neon queries
  • [ai]Place a supplied image instead of rebuilding it in code
  • [ai]Stop discarding storefront loopback failure causes
  • [invoices]Render PDFs with Geist so Polish diacritics survive
  • [ksef]Send a full timestamp in DataWytworzeniaFa
  • [orders]Price manual orders in gross for tax-inclusive stores
  • [orders]Stop legacy variant attribute shape from failing order parsing
  • [publish]Let stores without a design workspace publish remote main
  • [sandbox]Explain known workspace failures instead of a generic error
  • [subscriptions]Fulfil paid renewals regardless of local status
  • [subscriptions]Make checkout.session.completed idempotent
  • [subscriptions]Send the confirmation email for renewal orders
  • [subscriptions]Stop replaying the checkout coupon on renewals
  • [subscriptions]Stop rolling box heading contradicting the upcoming line
  • [support]Upload attachments straight to Blob instead of a server action
· v1.342

Cart totals, free-shipping state and tax behavior, gross prices and tax rates

Cart totals, free-shipping state and tax behavior

Store owners can now access detailed cart totals alongside the free-shipping status and tax behavior settings. This helps in providing clearer pricing and shipping options to customers.

Gross prices and tax rates on catalog responses

Catalog responses now include gross prices and the applicable tax rates. This is crucial for transparency in pricing and can help store owners better manage customer expectations.

ICANN contact verification requirements

After a purchase, store owners will be prompted to verify their ICANN contact information. Ensuring compliance with ICANN regulations is vital for maintaining ownership of domain names.

Also shipped

  • Gross prices for bundle group items and order line items
Fixes3
  • [checkout]Make address autocomplete reachable on AI-builder storefronts
  • [domains]Stop trusting Vercel's misconfigured flag for cert repair
  • [tax]Keep gross prices constant when tax rates are assigned in inclusive stores
· v1.341

Campaign image uploads, subscriber management capabilities and multi-currency

Campaign image uploads

This feature allows merchants to add images directly to their marketing campaigns. Visually appealing campaigns can increase customer engagement and drive sales.

Subscriber management capabilities

Merchants can now easily remove subscribers from their mailing lists directly through the admin interface. This helps maintain an up-to-date subscriber base and ensures compliance with marketing regulations.

Multi-currency support for AED and NGN

Store owners can now accept transactions in AED and NGN, broadening their market reach to customers in the UAE and Nigeria. This flexibility can cater to diverse customer preferences and increase sales opportunities.

Fixes19
  • [addons]Keep MailerLite and GetResponse connected after go-live
  • [admin]Reposition the Cookiebot widget away from the sidebar footer
  • [auth]Let a signed-in visitor reach the reset-password form
  • [builder]Resolve a diverged storefront workspace instead of failing publish
  • [checkout]Keep the buyer's tax ID and company on the Stripe receipt
  • [coupons]Offer store-wide as a scope you can pick
  • [deploy]Sweep stale jobs on claim, not only in the cron
  • [design]Drop the fullscreen mode that hid the storefront preview
  • [domains]Issue TLS certificates when a custom domain is attached
  • [ai]Anchor the message hover actions to the bubble
  • [ai]Classify input requests by kind, not by the prompt wording
  • [ai]Say why a queued prompt is waiting instead of looking frozen
  • [ai]Steer follow-ups explicitly so they stop vanishing
  • [i18n]Translate the reserved-order action errors and status dot
  • [onboarding]Stop one bad template pick failing the whole suggestion
  • [onboarding]Stop the pickup address blocking go-live
  • [sandbox]Keep the builder sandbox awake and bound every storefront op
  • [shipping]Block payment for a point rate with no picker
  • [support]Sort the queue newest-first and unstack the case header