Ask your customers anything, suggest the right next product, price in the shopper’s currency — and let AI assistants discover your catalogue without you lifting a finger.
Solidshop Core 1.3.0 is available now. The headline is custom fields — on products, at checkout, on addresses and on individual cart lines — the largest single feature we have shipped since 1.0. Around it: a related products strip, a currency switcher, and something no other Joomla cart has — a built-in MCP server that lets AI assistants like Claude search your catalogue and send shoppers to your own product pages.
All of it is in free Core. Several of these are features other carts sell separately — custom fields at checkout and on cart lines is a €120 tier elsewhere in the Joomla world, and a paid add-on in the WooCommerce one. We think they belong in the box.
Custom fields on products
Every catalogue eventually outgrows name-price-description. A bookshop needs an ISBN and a page count; an electronics store needs wattage and warranty; a fashion store needs fabric and care instructions. 1.3.0 answers this the Joomla way: product attributes are defined in Joomla’s own Custom Fields screens, reachable from Solidshop › Custom fields.
That one decision buys a lot. All 19 Joomla field types, required and pattern validation, per-field view levels, field groups, ordering and language assignment come from Joomla itself — nothing about your fields lives in a Solidshop-only format, and if you have ever added a field to an article, you already know the screens. Values save and roll back with the product, exactly like the built-in fields.
On the storefront, fields appear automatically in a
Specifications tab on the product page —
grouped the way you grouped them, hidden when a product has nothing
to show. You can also place a single field inline in a description
with Joomla’s placeholder. And the
reach goes further than the page:
- Structured data — fields you mark for it
are emitted as Schema.org
additionalPropertyentries on the product’s existing JSON-LD, so search engines and AI answer engines can read your specifications. Neither Shopify nor WooCommerce does this from their field systems without an app. - Smart Search — product field values are indexed, and a field can double as a search facet.
- CSV import/export — each field marked for
CSV gets its own
Field: {name}column, and export round-trips back through import unchanged. - REST — the products API reads and writes field values through the same language- and store-scoped path as the storefront.
…and at checkout, on addresses, on cart lines
The same field engine now runs everywhere a store needs to ask the customer something:
- At checkout — an Additional information panel collects whatever you need at the point of sale: a gift message, a delivery slot, a PO number. Required and pattern rules are enforced on the server before the order is created, so a rejected value never becomes an order.
- On addresses — a VAT number, a buzzer code, a company registration — on the customer’s address book, the admin customer screen and both checkout addresses. A field can be restricted to the shipping side, the billing side, or asked on both, so nobody types a VAT number twice.
- On individual cart lines — an engraving, a recipient’s name, a delivery date, asked on the product page before the item goes in the cart. Assign the field to product categories to decide which products ask. Two of the same product with different answers stay two separate lines, so both get made as asked; identical answers merge and bump the quantity. Answers show next to the item in the cart and mini-cart, and can be edited from the cart without removing the item.
The part that quietly matters: everything a buyer enters is frozen onto the order, labels and all. Rename a field, change its type or delete it outright, and every order placed before the change still renders exactly as it was placed. Captured values appear on the order screen (where staff can edit them, with the same validation the shopper’s form used, and a timeline entry recording the change), on the customer’s order detail page, and in the confirmation and shipment emails — the person packing the box sees the engraving too. Per-field switches decide which of those surfaces each field appears on. The full walkthrough, context by context, is in the Custom Fields documentation.
Related products
A new Related tab on the product edit screen lets you pick the products to suggest on that product’s page and drag them into order. The storefront shows them under the description as ordinary product cards, so they inherit whatever your template already does with a card.
The link works one way by default — putting an accessory on a flagship product does not make the flagship advertise itself on the accessory’s page. If you want both directions, turn on Show the relation both ways in Options › Products. That switch is a display rule, not a data change: nothing is written to the other product, and switching it off restores exactly what you arranged — no mirror rows to clean up by hand afterwards. The strip only ever shows what the visitor could open anyway: unpublished products, products outside their publish window and products above the visitor’s access level drop out silently.
A currency switcher
Publish the new Solidshop - Currency Switcher
module (mod_sshop_currency) and shoppers can read your
catalogue, cart and checkout in a currency of their own — as
a dropdown or a row of links, labelled by code, sign or name. The
sidebar price filter follows along: its range displays, and
accepts input, in the currency being read.
It is a display feature, and it says so where it matters. The order, the invoice, the emails, your reports and the amount that reaches the payment gateway are all in your store’s currency, whatever the shopper was reading — and the checkout summary states the charging currency and the exact amount next to the total. No surprise conversions, no invented exchange rates in your bookkeeping. The switcher lists published currencies that have an exchange rate, and hides itself when that leaves only one.
Your store, readable by AI assistants
A growing share of shoppers ask an AI assistant before they ever open a search engine. 1.3.0 makes sure the assistant can answer with your products: every Solidshop store now exposes a read-only catalog API in two flavours — conventional REST endpoints, and an MCP server that agent runtimes such as Claude call directly as tools:
https://www.example.com/api/index.php/v1/solidshop/mcp
Five tools: search products, get a product in full detail (variants, availability, specifications — your custom fields again), list categories, list brands, and read the store profile. Every response carries the canonical URL of the page it describes, so when an assistant recommends one of your products, the shopper lands on your product page, your cart, your checkout. It is a discovery layer, not a sales channel of its own.
The API is a guest: it serves exactly what an anonymous visitor sees in your storefront HTML. Stock is a yes/no answer, never a quantity; cost prices and customer data are not exposed at all; and hidden products answer like products that don’t exist. It is on by default because discovery only works when it is open — an assistant that cannot read your catalogue anonymously moves on to a competitor’s — but a single plugin switch puts the whole surface behind Joomla API tokens if you disagree.
Endpoints, filters, the claude mcp add one-liner to
try it against your own store, and the access switch are all in the
Catalog API & MCP
documentation.
Updating
1.3.0 is a one-click update from System › Update; the database changes (two order columns and the related-products table) are applied automatically. Three things to know:
-
Product descriptions now run through Joomla’s
content plugins. This is what makes
render — and it enables every other content plugin on descriptions too. If your descriptions contain literal{…}braces a plugin would consume, turn it off under Options › Run content plugins on product descriptions. - The currency switcher installs unpublished, like every module — publish it to a template position when you are ready. If you use Joomla’s System - Page Cache plugin, leave it off on pages with prices: it serves one cached copy per URL to all guests, whatever currency each was reading.
- The confirmation and shipment emails gained custom-field blocks. If you have customised either body, the email editor’s drift banner will offer you the change.
For the complete, itemised list of changes, see the Solidshop changelog.