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.
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 your rich results with it.
So the catalogue emits price 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
Tens of thousands. Listing and filter pages are built as static HTML where the catalogue changes rarely, and rendered at the edge where it changes constantly, so the size of the catalogue does not decide the speed of the page.
Yes. A CSV or spreadsheet is mapped onto your fields once, and after that the same mapping runs on a schedule if your stock comes from a feed.
They are written from the field values on the item and instructed to use nothing else, so an unfilled field is simply not mentioned. Every description is a draft you can edit or reject.
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, 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.