Back to Blog
Product UpdatesOctober 27, 2026

Meet the New Product Page

Most visits to a product change one thing: a cost, a description, a photo. The old product page was a single form that saved everything at once, and that is where products lost data. The new page reads first and writes only what you change. Click a price, type, press Enter, and that price is saved.

What’s New

  • Read first. Prices, how each variant is sold, stock, photos and where the product is priced are all on screen, without opening anything.
  • Edit in place. Click a default price or cost, type, press Enter. Tab moves to the same field on the next variant.
  • Each change saves on its own, and only if nobody else changed it while you were typing.
  • A drawer for each variant, with every price list and customer price beside its default price.
  • Remove archives. Deleting a variant that’s in use takes a confirmation, after a list of what will go.
  • New products start as drafts, with a checklist of what customers need before they can order.
  • Photos save as you add them, and one click puts a photo on every variant.
  • It stays current. When someone else saves the product, your page refreshes on its own.
  • It works on a phone.

Why We Rebuilt It

The old product page was one long form. Labels and custom fields saved the moment you changed them, and everything else waited for Save, which wrote the product, every variant, its photos, categories and custom fields in one go. It wrote them from the copy of the form in your browser, and that copy wasn’t always current.

Before the redesign, here’s what that cost:

Variants added on the page, then deleted by the next save

40%

over 90 days, most put straight back under a new id

Tables a removed variant was deleted from

12

its prices, carts, favourites, notes and integration links, with no undo

Saves that failed with one generic message

1.5%

over the two weeks we checked, and when the page crashed, the error never reached us

None of it was about big products: 97% of products have a single variant. It was about what one Save did. So the new page doesn’t save a form. It saves the field you changed, and checks first that nobody changed it while you were typing.

What changing one cost touches

Old product form

Every keystroke sends the whole formSaveRewrite the productRewrite every variantRewrite images, categories and custom fieldsTell connected apps about every variant

New product page

Click the costType, press EnterCheck nobody changed it meanwhileWrite that one costTell connected apps about that variant
Writing everything at once is what let a stale copy of the form delete variants and undo other people’s changes. Writing one field can’t.

Faster, and It Stays Fast

Opening a product got about twice as fast for everyone after the October 23 release. More than half of the old page’s database time went into a warehouse menu that counted orders it never showed, and that’s gone. The fix reached every account, on the old page as well as the new one.

How long a product took to open, in production

Server time to load the product, across every account, before and after the October 23 release.

Before(Sep 27 – Oct 22)After(Oct 23 – 27)

Typical

median

≈125 ms
64 ms

1 in 20

95th percentile

≈185 ms
110 ms

1 in 100

99th percentile

≈345 ms
174 ms
0 ms100 ms200 ms300 ms400 ms
Show the numbers
Page loadBeforeAfter
Typical (median)120–130 ms64 ms
1 in 20 (95th percentile)180–190 ms110 ms
1 in 100 (99th percentile)340–350 ms174 ms
Slowest3.7 s572 ms

“Before” comes from 10 ms buckets, so each value is within 5 ms.

The bigger change is how the time grows. On the old form every variant added a row of inputs to the page and a row to every save, so a 25-variant product took a third of a second to open, and the first keystroke after opening took as long again. The new page shows text until you click something. Opening a big product costs about what opening a small one does, and typing a price or cost sends nothing until you press Enter.

Server time to open a product

The old form drew an input for every field of every variant.

Old form(same code, flag off)New page(same code, flag on)

1 variant

43 ms
35 ms

5 variants

73 ms
19 ms

25 variants

330 ms
39 ms

100 variants

1.5 s
77 ms
0 ms400 ms800 ms1.2 s1.6 s
Show the numbers
ProductOpen: old / newFirst keystroke: oldSave one price: old / new
1 variant43 ms / 35 ms31 / 30 queries14 ms21 ms / 19 ms17 / 24 queries
5 variants73 ms / 19 ms31 / 30 queries58 ms23 ms / 21 ms21 / 24 queries
25 variants330 ms / 39 ms31 / 30 queries342 ms46 ms / 26 ms41 / 24 queries
100 variants1.5 s / 77 ms31 / 30 queries1.9 s378 ms / 71 ms116 / 24 queries
Measured on our machines on October 27, against one build with the new page switched off and on, at the median of several runs. Times are server work for the event and its render. No product in production has 100 variants; that row shows the trend.

For a one-variant product, which is almost all of them, both pages were quick and still are. Saving a price on the new page takes about as long as it did on the old form at that size, with a few more database queries, and it stays there as the product grows.

Opening a product, typical

64 ms

in production since October 23, down from about 125 ms

Opening a 25-variant product

39 ms

down from 330 ms on the old form, in our tests

Server work while you type a price

None

until you press Enter; the old form’s first keystroke took 342 ms at 25 variants

A Tour of the Page

Everything about a product is on one page: its variants, photos and description on the left, and a card for availability, organization and pricing on the right.

The product page with numbered callouts
  1. 1Status and next step. Active, Draft or Archived, beside the name. The button on the right is the next step: Make active on a draft, Restore on an archived product, View on storefront once it’s live.
  2. 2Edit in place. Click a default price or cost to change it on the row. The margin and the price per case update when you save.
  3. 3How it’s sold. Each variant says it in a phrase: By the lb, or 1 case = 10 lb.
  4. 4Stock. What’s available at the warehouse you pick, in the variant’s own unit: 86 lb, or 8.6 cases.
  5. 5Variant menu. Edit opens the variant drawer. Remove archives it, and Archived variants under the table brings it back.
  6. 6Photos. They save as you add them. Drag to reorder; the first is the main image.
  7. 7Cards. Availability, Organization and Pricing, each changed in place. Pricing lists the price lists that cover the product and its customer prices.

Changing a Price or Cost

Click a default price or cost and type. Enter saves, Tab saves and opens the same field on the next variant, Shift+Tab goes back, and Esc cancels. Clicking somewhere else saves too. Under the box you can see what the value was.

A variant's cost being edited in place, with the old value shown under the box
Edit a cost in place. Enter saves that one cost.

If someone changed that price while you were typing, your edit isn’t saved over theirs. The page tells you, for example “Someone changed the price of Per lb to $15.10 while you were editing.”, and shows their value.

The Variant Drawer

Click a variant’s name to open its drawer. It has the name and codes, how it’s sold, the default quantity and lead time, the price and cost with the margin, every price list and customer price for that variant, its stock, its custom fields and how it syncs to your integrations. Save writes only the fields you changed.

The variant drawer for a case variant, showing 1 case holds 10 lb and what customers will see
In cases: one line says what a case holds, and what customers will see.
The variant drawer for a variant sold by the lb, with its price list and customer prices
Each price list and customer price for the variant, beside its default.

How it’s sold is one choice: By the lb, or In cases with one line, 1 case = 10 lb. The drawer then says what customers will see, such as “$196.00 / case ($19.60 / lb). An order of 2 reserves 20 lb.” Each list price links to that price on its list, and each customer price to that customer’s prices.

Photos

Drop photos on the Images card or pick them from your library. Each one saves as it’s added, and uploads finish processing in the background. Drag to reorder; the first is the main image. Use for all variants puts a photo on every variant in one step, and a variant you add starts with the main image. To give one variant its own photo, click its thumbnail.

The Images card with three photos, each offering Use for all variants
Use for all variants is on every photo. On touch screens the buttons always show.

Name, Description and Categories

Edit on the Description card turns the card into a small form for the name and description, and leaves the rest of the page as it is. Categories are added and removed right on the Organization card: + Add, type, pick.

The description card in edit mode with the name field and a rich-text editor
The name and description are edited on the card itself.
Adding a category from a searchable list on the Organization card
Search and add a category without leaving the page.

On a Phone

The product page on a phone, with cards folded into one-line summaries
On a phone, the cards fold into one-line summaries.

On a narrow screen the cards fold into one-line summaries, such as “Active”, “2 categories” and “2 price lists · 1 customer price”, that open with a tap. Variants stack with their price and cost labelled, and photo controls are always visible, since there’s no hover on a phone.

The page also keeps itself current. When someone else saves the product, or an integration updates it, your page refreshes within half a second. It waits while you have a drawer, dialog or edit open, so nothing moves under your cursor.

Staff who can view products but not change them see the same page, as text.

Removing a Variant

On the old page, removing a variant deleted it, and everything attached went with it: its price on every list and for every customer, carts, favourites, notes, and the links QuickBooks and Business Central use to find it. Orders kept the line but lost the link.

Now Remove, in the variant’s ⋯ menu, opens a dialog that says what the variant is on and offers Archive first.

The remove dialog for a variant in use, with Archive variant as the main button and Delete variant behind a confirmation
A variant in use: archive it, or confirm before deleting.

Archiving takes the variant off the storefront, carts and new orders, and frees its name for a new variant. Orders, standing orders and its prices keep it. If you sync items, QuickBooks marks the item inactive and Business Central blocks it.

Archived variants are listed under the variants table, with Restore to bring one back and Delete to remove it for good.

What Remove offers, depending on what the variant is on

  1. Nothing uses it

    Delete it for good in one click, or archive it.

  2. It’s in use: on prices, orders, carts and more

    Archive is the main button. Delete stays off until you tick “I understand deleting it can’t be undone”, after a list of what deleting removes.

  3. A fee or discount applies to it alone

    Delete is blocked. Without the variant, that fee or discount would apply to every product, so take it off first.

The dialog counts what the variant is on when it opens, and the server counts again before anything is deleted.
The variants table with an Archived variants section listing one archived variant with Delete and Restore
Archived variants stay with the product until you restore or delete them.

A standing order that includes an archived variant keeps ordering it until you take it off the standing order, so a regular customer isn’t surprised by a missing line.

Starting a New Product

The New product dialog with name, first variant, price and category
Name it and say how it’s sold. The rest comes next.

New product on the products list opens a short dialog: the name, the first variant (by the unit or in cases), its price and, if you like, a category. Create draft takes you to the product’s page.

A draft is hidden from customers. Its page lists what’s left before they can order it: name it and add how it’s sold, choose a category, price it on a price list, and add a photo. Customers only see products that a price list or customer price covers, which is why pricing is on the list.

A draft product with the checklist Before customers can order it, two of four done
A draft lists what’s left before customers can order it. Make active when you’re ready, and the checklist goes away.

We added the checklist because, across all accounts, a third of products had no price on any list and seven in ten had no photo.

Already Better on Every Account

Some of this didn’t wait for the new page. Since October 23, on every account and on the old page too:

  • New variants stay put. Adding a variant and saving again no longer deletes and re-creates it.
  • Removing a variant archives it instead of deleting it, so its prices, orders and integration links are kept.
  • Opening a product is about twice as fast.
  • Staff with view-only access can open every product. Products with a tax code used to show them an error.
  • A save that fails no longer changes the lot cost.
  • Saving without changes writes nothing. Connected apps hear only about the variants that changed, and new and removed variants reach QuickBooks and Business Central as new and removed items.
  • Errors reach us. When the product page hits a problem, we’re told, so we can fix it.

Quick Reference

Keyboard

KeyWhereWhat it does
EnterEditing a price or costSaves it
TabEditing a price or costSaves and opens the same field on the next variant
Shift+TabEditing a price or costSaves and opens the same field on the previous variant
EscEditing a price or costCancels the change
Click elsewhereEditing a price or costSaves it
EscIn a drawerCloses a menu if one is open, otherwise the drawer

How It’s Sold

ChoiceWhat it meansCustomers see
By the lbPriced per lb. Customers order any amount.$18.40 / lb
In cases, 1 case = 10 lbPriced per lb and ordered in whole cases. Each case takes 10 lb of stock.$196.00 / case, and ($19.60 / lb) with Also show the price per lb

Archive or Delete

ArchiveDelete
Storefront, carts, new ordersHiddenGone
Existing orders and invoicesUnchangedKeep the line by name and price, unlinked
Standing ordersKeep ordering it until you take it offKeep ordering it, unlinked, until you take it off
Price lists and customer pricesKeptDeleted
QuickBooks and Business CentralMarked inactive, or blockedLinks removed
UndoRestoreNot possible

Product Status

StatusWhat it means
DraftHidden from customers. The page shows what’s left to do, and Make active.
ActiveCustomers can order it, if a price list or customer price covers it. View on storefront opens it.
ArchivedHidden from customers. Restore brings it back.

Where Things Moved

You used to…Now
Press Save at the bottomEach change saves on its own
Change the status in the formMake active or Restore in the header; ⋯ → Move back to draft or Archive product
Trash a variant, then SaveVariant ⋯ → Remove
Set case size and masked unitsVariant drawer → How it’s sold
Edit lot cost on the rowThe stock’s page, linked from the variant drawer
Edit other variant fieldsVariant drawer: default quantity, lead time, barcode, custom fields
Pick a variant image in the rowClick the variant’s thumbnail
Use the category pickerOrganization card → + Add
Read the price lists sidebarPricing card, with customer prices; ⋯ → Recent pricing
Fill in the new product formNew product dialog, then the draft’s page

For Developers

Variants now have an archived_at. Through Workflow automation (MCP), variants_search leaves archived variants out unless you pass include_archived, and three tools follow the dialog’s rules: variants_archive, variants_restore, and variants_delete, which refuses a variant in use unless confirm_in_use is set, and always refuses one that a fee or discount targets alone.

Getting the New Page

We’re turning the new product page on account by account. If you’d like it switched on for your team, email us at [email protected].

We’d love to hear how it works for you, especially if you keep a large catalog.