E-commerce 6.1.5
5 August 2026
This release has upgrade notes. Read them before updating — they describe behaviour changes that need your attention.
E-commerce v6.1.5
Release Date: August 5, 2026 Tags: STOREFRONT, PRODUCTS, GALLERY, IMAGES, CATALOGUE, CATEGORIES, CART, CHECKOUT, WISHLIST, CURRENCY, DESIGN SYSTEM, LOADING STATES, ACCESSIBILITY, BUG-FIXES
Overview
Version 6.1.5 is the customer-facing half of the store, where 6.1.4 was the admin half. Products can now carry more than one picture, the product page has been rebuilt around them, and the other eight storefront pages have been brought onto the same frame.
Rebuilding them turned up controls that had never worked. On the catalogue, picking a category emptied the grid on every installation — the filter compared category names against category ids and could never match. A price filter nobody could see was clamping the catalogue at 1000, so anything dearer was simply absent. And there was no pagination control at all: page two of your catalogue was unreachable by any means.
Two pages could also strand a customer on a screen of grey placeholders forever — the product page and the category page treated a failed request as an unfinished one, so their "not found" states had never been seen by anyone.
Nothing here changes an amount of money. One thing changes what a figure is labelled: a basket holding more than one currency no longer prints a single total in dollars. Read Upgrade Notes for that one.
Requires Core v6.6.2.
Update Instructions
pnpm updatorUpgrade Notes
A basket holding two currencies no longer shows one total in dollars
The cart added up every line's price and printed the word USD under the result. A product carries its own currency, so a basket holding one item at BTC 1.00 and one at USD 12.00 was being presented as 13.00 USD — a figure that is not true in any currency and matches nothing the customer is asked to pay.
Checkout has always known better: it groups the basket by wallet and currency and settles each group from its own wallet.
- Changed the cart summary to name the currency when the basket is in one currency, and to list a subtotal per currency when it is in several, which is what the next screen will ask for.
- No arithmetic changed and no amount changed. What changed is the claim: the total your customers were shown was mislabelled, not miscalculated.
Your catalogue may appear to gain products
Two filters on the catalogue were narrowing it without saying so. A hidden price ceiling of 1000 was applied on every render, in the store's own units, so a product priced above it never appeared in a listing — and on a store pricing in a unit where 1000 is a small number, that could be most of the catalogue. The category filter, meanwhile, matched nothing at all, so choosing a category emptied the grid rather than narrowing it.
- Fixed both. Nothing was deleted and nothing was hidden deliberately; products that were always in your catalogue will now be visible in it.
- The price filter's range is now taken from your own catalogue's highest price, and it applies only once you move it.
Added
Products can carry a gallery
- Added a Gallery field to the product form, holding up to twelve additional images beside the existing cover image. Several files can be dropped in at once, each tile can be moved earlier or later, and the order they are in is the order a customer pages through them.
- Added the gallery to the product's view panel in the admin, so the images can be checked without opening the form.
- The cover image is unchanged and still does everything it did: it is the picture on cards, in the cart, on order lines and in the customer's order history. The gallery is what comes after it.
The product page is built around the pictures
- Added a gallery viewer on the product page: a large stage with a thumbnail rail beside it, a position counter, previous and next controls, and arrow-key navigation.
- Added hover-to-zoom on the stage, which magnifies around the pointer rather than the middle of the frame. It does not apply for visitors who have asked their system to reduce motion.
- Added a full-screen viewer with its own previous and next controls, a filmstrip of the whole set and a zoom control. It opens on the image the customer was looking at and closes leaving the page on the one they left it on.
- Added a More from this category band at the foot of the product page.
- Added a fixed purchase bar on phones, carrying the product, the running total and Add to Cart. On a phone the panel those controls live in is a screen away by the time the customer has read the description.
- Added a share control that copies the product's address.
Catalogue controls that were missing
- Added a pagination control to the catalogue. Page size has always been configurable and the page has always calculated its page count — it simply never drew anything a customer could click, so only the first page could be reached.
- Added an In stock filter and a filter count on the Filters button, so it is visible from the toolbar that the list is being narrowed.
- Added a loading state and an empty state to the catalogue, the category page and the category index. Each page previously drew its heading over a blank while it loaded, and a search with no matches was indistinguishable from a page that had failed.
Changed
The product page
- Changed the page from an even split into a wider gallery beside a narrower purchase panel, so the images are worth looking at and the panel stays with the customer as they scroll.
- Changed quantity, running total and Add to Cart into one card. They were three separate bordered boxes stacked above each other, which pushed the buy action below the fold on a laptop.
- Changed the three delivery and returns promises from three cards into one hairline strip. A delivery promise does not carry the weight of the price.
- Changed the stock line to state In stock, Only n left or Out of stock in words beside its colour, rather than relying on the colour alone.
- Changed the quantity stepper to stop at the quantity you actually have, instead of counting past it and letting the customer discover the limit at checkout.
- Changed the rating row into a link to the reviews.
- Changed the sticky panel to hold its position with a style rule rather than by measuring the page on every scroll event, which the old page did dozens of times a second.
One frame across the storefront
- Changed all nine storefront pages onto one page header — the same breadcrumb, heading, count and actions — one empty state and one pagination control. Three pages previously opened with a centred marketing hero, three had a breadcrumb (each spelled differently), and the rest opened straight onto content with no heading at all.
- Changed the category banner from a 400-pixel poster with a six-times-heading to a 280-pixel band, so the products it introduces are on screen with it rather than a scroll below it.
- Changed the wishlist's "clear wishlist" confirmation from the browser's own dialog to the platform's. The browser dialog cannot be themed, cannot be dismissed with the page's own controls and freezes the page while it is open.
- Removed a "Continue shopping" card from the foot of the wishlist — a full card inviting the customer to look at products, on a page that is a grid of products. It is a link in the header now.
A product with no picture looks like a product
- Changed every place a product image appears — catalogue cards, the cart, checkout, order history, the wishlist, the header's cart drawer, category cards and the landing page's rails — to draw a product icon and the product's initial when there is no image to show. The old placeholder was a stock illustration drawn on a 1200-pixel canvas with its artwork confined to the middle third, so at card size it collapsed into an almost-empty box. Being a separate file it also could not see the site's theme, so it stayed light in dark mode.
- Changed the product gallery to drop an image whose file is missing rather than showing an empty frame for it. Records outlive their files, and a product whose cover has gone missing was showing a blank stage while perfectly good pictures sat unreachable in the strip beside it.
Sort and filter controls that now do something
- Changed the category index's sort control from decoration into a working sort. It was not connected to anything, so a customer choosing Alphabetical saw the same order and concluded the page was broken.
- Changed the catalogue's grid and list toggle so the list view is a real list. It previously only changed the spacing between the same cards.
Fixed
The product page and the category page could hang on placeholders forever
Both pages treated "the data has not arrived" and "the request came back empty" as the same state. When a product or category could not be loaded — because it was unpublished, deleted, or the address was mistyped — the page waited for data that was never coming and sat on grey placeholders indefinitely.
- Fixed both pages to key on whether the request has come back rather than on whether it brought anything. Their not found screens are now reachable; before this they could not be shown at all.
Choosing a category on the catalogue emptied it
- Fixed the catalogue's category filter comparing a hardcoded list of four English category names against your categories' identifiers. The list was Electronics, Clothing, Books — names from no installation in particular — so the comparison could never succeed and every choice returned nothing. The filter is now built from your own categories. See Upgrade Notes.
A hidden price limit was cutting the catalogue short
- Fixed a price filter that applied a ceiling of 1000 whether or not it had been opened, on both the catalogue and each category page. Products above it were absent from the listing with nothing on screen to say a filter was in effect. See Upgrade Notes.
Page two of the catalogue could not be reached
- Fixed the catalogue offering no way to move between pages. The page divided your products into pages correctly and then drew no control, so a store with more products than its page size had the rest of them unreachable from the storefront.
The In stock filter did nothing
- Fixed the catalogue recording the In stock choice and never applying it to the list.
The image viewer opened with the page showing through it
- Fixed the full-screen image viewer opening with no dimming behind it, so the page's navigation, prices and buttons stayed at full brightness on top of and around the photograph. The repair is in the platform's dialog layer rather than in the store, so every dialog in the product now dims its background — the store's image viewer is simply where the absence was impossible to miss. The Scrim strength control in Site Design governs it, and had been governing nothing.
A category with no description broke the category search
- Fixed the category index searching a description without checking there was one. Description is optional, so typing in the search box on a store with any such category threw the page away.
Sorting or filtering could strand a customer on an empty page
- Fixed the catalogue keeping its page position when the result set shrinks. Narrowing a search from page five of eight left the customer on page five of one, looking at nothing.