Changelog· Page 2

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

· v1.352

Customizable newsletter text color, unlisted services and product views report

Customizable newsletter text color

Store owners can now customize the text color in their newsletters. This helps create visually appealing emails that align with their brand identity.

Unlisted services from admin tools

Services can now be unlisted from the sidebar and admin search, allowing store owners to declutter their interface and focus on the most relevant features.

Product and collection views reporting

Store owners can now report product and collection views directly to Web Connect. This integration provides valuable insights into customer engagement and product performance.

Fixes6
  • [domains]Stop blaming the merchant's plan for Resend's domain cap
  • [ai]Let merchants attach a CSV from Safari and Windows
  • [ai]Make AI assistant's traces findable by store
  • [evals]Grade the whole reply and the tool AI assistant actually uses
  • [mailerlite]Let merchants pick a subscriber group
  • [mailerlite]Stop forcing sign-ups to a confirmed status
· v1.351

PayPal payments, loyalty card in the order summary and simplified panels

PayPal payment method

Store owners can now offer PayPal alongside Stripe at checkout, giving customers more flexibility in payment options. This addition can help increase conversion rates by catering to a wider audience who prefer different payment methods.

Loyalty card in order summary

The loyalty card is now prominently displayed in the order summary during checkout. This integration makes it easier for customers to track their loyalty points and redeem them, potentially increasing repeat purchases.

Simplified loyalty and address panels

The loyalty and saved address sections have been simplified for a cleaner, more user-friendly experience. This simplification helps store owners manage customer information more efficiently and improves the overall checkout process.

Also shipped

  • Add shared list layouts and accessible controls
  • Pin Services above Settings in the sidebar
  • Compact saved address selection
  • Compute order summary rows that reconcile with loyalty points
  • Add service engagement, history and interest tables
  • Point merchants at Services
  • Convert major-unit amounts to minor units exactly
  • Add the services texts in four languages
  • Validate redemptions against holds, cap and ownership
  • Add shared status, summary and feed components
  • Add the management fee calculator and the saved estimate type
  • Add the merchant actions
  • Add the service catalog and lifecycle rules
  • Add the service engagement data layer
  • Add the services page, request form and request page
  • Add the Slack, email and Linear messages
  • Lead merchant requests with status and updates
  • Pair every engagement write with its audit row and messages
  • Publish the ads fee schedule and save the estimate with a request
  • Save public submissions atomically
  • Show the fee estimate on the ads form and slim the catalog cards
  • Unify operator work in one composer
Fixes26
  • [admin]Move the store plan to the right of each store row
  • [admin]Show the plan as a compact mark in the store switcher
  • [checkout]Keep applied loyalty points across a shipping change
  • [checkout]Keep the loyalty card's offer inside a ceiling that moves
  • [checkout]Keep the saving rows readable on a dark summary background
  • [checkout]Let a tap on the covered wallet buttons retry failed saves
  • [checkout]Line the testimonials box up with the order summary
  • [checkout]Link an arriving cart to the signed-in shopper
  • [checkout]Make the order summary rows add up when points are applied
  • [checkout]Make the order summary's cart writes safe around payment
  • [checkout]Set the order summary total row in sentence case
  • [checkout]Stop printing the currency code twice in the order total
  • [checkout]Translate the phone and tax ID lines in the address pickers
  • [domains]Write Vercel's per-project DNS targets in the domain-move wizard
  • [ai]Move Sentry onto eve's instrumentation directory
  • [evals]Grade judged assertions with eve's t.judge
  • [inpost-pay]Answer order create with the whole order
  • [loyalty]Drop a stored redemption when the cart changes owner
  • [loyalty]Earn on discounted merchandise and convert points with currency decimals
  • [loyalty]Settle earn and redeem through one transactional path
  • [paypal]Re-judge a stored loyalty redemption before pricing the PayPal order
  • [services]Report only a real status conflict as one on cancel and stop
  • [services]Say what the monthly budget pays for, per service
  • [services]Store deliverable links in the form the feed renders
  • [slack]Bound alert headers and escape merchant text in the services alert
  • [subscriptions]Keep one-time loyalty redemptions out of renewals
· 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