Product tables and order forms Pro
Pro: show products as a searchable, sortable table so a buyer can order forty lines without opening forty pages.
Updated August 26, 2026
A saved view is a query plus a presentation: which products, which columns, whether shoppers can search, sort, page and tick multiple lines. Build it once under StoreMaster → Product tables and place it anywhere with a shortcode.
[storemaster_table view="0198a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b"]
Choosing the products
Filter by category, tag, product type, stock and sale status, or name specific products to include or exclude.
One source is worth calling out: previously ordered. It builds the view from the signed-in customer’s own order history, which turns a table into a reorder form — the single fastest path for a repeat trade buyer. It combines with the other constraints rather than replacing them.
Columns
Image, name, SKU, price, availability, categories, tags, description, weight, dimensions, rating, lead time, a quantity box and a buy control. You choose which appear, in which order, and you can override any heading.
The price column shows the price that shopper would pay: it comes from the same pricing pipeline as the product page, so a trade customer sees their trade price in the table without you configuring anything twice.
The order form
Turn on multi-add and each row gains a checkbox and a quantity box, with a single Add selected to basket button.
Every line goes through exactly the same validation a single add-to-cart does — quantity rules, access, stock, purchasability. When a line fails:
- it is named, so the buyer knows which one and why;
- the other lines are added anyway, unchanged;
- nothing is silently adjusted. A buyer who asks for 7 of something sold in sixes is told, not quietly given 6 or 12.
Products with choices to make — variations, for instance — show a link to the product page rather than a buy button, because the real form and its validation live there.
Search, sort and paging
All three are plain links and a plain form, so they work with JavaScript off, they are crawlable, and a filtered table can be linked to.
Two tables on one page do not interfere: each namespaces its own query parameters.
Accessibility
A real <table> with a caption stating what it contains and how many rows,
column headers scoped correctly, sortable headers announcing their direction,
and a labelled checkbox per row naming its product. The buy button’s accessible
name includes the product, so a screen-reader user hears "Add Trade Bracket"
rather than forty buttons all called "Add".
Still stuck? Email [email protected].