Fields you define, once
Text, number, choice, date, boolean, money, rich text and file. Add one and every item gets it; the ones already saved keep working.
Catalogue engine
One catalogue handles cars, property, products and services alike, because the fields are defined per project rather than fixed by the software.
You tell the catalogue what an item is on your site and it generates the filters, the sort orders, the gallery and the structured data from that definition. The same engine runs a car forecourt, a lettings list, a coffee shop and a portfolio of past work with no price on it at all.
Item shape · Vehicle
Generated from the fields
Written from the spec
A 2019 diesel estate with 41,200 miles, manual, one previous keeper. Full service history and a fresh MOT.
Item shapes
A fixed product schema fits one kind of business and fights the rest. These are four real definitions, and none of them required a different catalogue.
| Kind of item | Fields you define | Filters it generates |
|---|---|---|
| Vehicles | Make, model, year, mileage, fuel, transmission, keepers | Fuel, transmission, year range, mileage range, price range |
| Property | Beds, baths, tenure, EPC, floor area, service charge | Beds, tenure, EPC band, price range, area |
| Products | Variant, size, colour, weight, origin, stock | Size, colour, in stock, price range |
| Services | Duration, from-price, who it is for, what is included | Duration, price range, category |
Nothing in that table is a preset. Each row is what somebody typed into the field builder, and the third column is what the engine produced from the second.
What it does
Every one of these exists because the alternative is somebody hand-maintaining it, and hand-maintained filter panels are how a catalogue starts lying about its own stock.
Text, number, choice, date, boolean, money, rich text and file. Add one and every item gets it; the ones already saved keep working.
A choice field becomes a checkbox group. A number field becomes a range. Nobody hand-writes a filter panel, so nobody forgets to update it when a field changes.
Which sounds excessive until you have sold a car. Every image is converted, sized and given dimensions, and the gallery is swipeable on a phone with keyboard access on a desktop.
The AI is given the field values and told to use nothing else. An empty mileage field means the description does not mention mileage, because the text is a claim about a real object.
Product, Vehicle, RealEstateListing or Service markup, built from the same fields the page displays. Price and availability come from the row, so they cannot contradict it.
With agent access switched on, the catalogue adds two tools to the site’s MCP server: one that searches it by words, category and price bounds, and one that returns a single item in full. Published items only, and the same rows a visitor would see.
Free text across the fields that are text, exact matching on the ones that are not, and a result count that updates as filters are applied.
A rule worth stating
It is trivial to emit a five-star rating for an item nobody has reviewed, and it will work for a while. Then it stops working, and it takes the rest of yourrich results with it.
So the catalogue emitsprice and availability from the row that renders on the page, ratings only where reviews exist, and nothing at all for a field left empty. The markup and the page cannot disagree, because they read the same data.
Q&A
Hundreds today, with every listing and filter page rendered instantly at the edge. A server-side path for catalogues in the thousands is planned, for the point where a purely static build stops being the right shape.
Not yet as a bulk CSV or feed import, that is planned rather than built. Today, items are entered and edited one at a time, or one field at a time, through the admin panel.
The descriptions are written from the field values provided for the item and the system is instructed to use nothing else, so an unfilled field is omitted rather than mentioned. Every description is a version you can edit or reject before it goes live.
It works normally. Price is a field like any other, so a portfolio of completed work, a menu without prices, or a "price on application" listing are all ordinary cases rather than workarounds.
Yes, at a stable URL, with its own title, meta description, Open Graph image and structured data derived from its fields. That is what makes a catalogue worth having: the individual pages are what get found.
Yes, once agent access is switched on. The catalogue contributes a search tool and an item tool to the site’s MCP server, so an assistant working for a buyer asks the catalogue directly instead of scraping the listing pages and guessing which number is the price. It sees published items only.
Yes, when the forms module is installed. The enquiry arrives with the item attached, so you are not reading "is this one still available" with no idea which one.
Say what an item is on your site and the first listing page is usually up within a build. Getting the fields wrong costs one sentence to correct.