Generative Commerce
MLArt’s ranking stack was built in 2022 and it has aged well. Contextual bandits that keep adapting as the offer changes, similarity learned from product descriptions, tagging learned from product images: that combination still decides what to show about as well as anything on the market. The case study behind it holds up, and the technology it runs on is still what we deploy.
What it never had was a way to talk.
The engine can pick the right twelve products for a page and has no way of saying why it picked them. It cannot answer an open question like “will this coat survive a wet commute”. It cannot write the copy for the four hundred items that landed in the catalogue this morning. It cannot take an order-status question off a support queue. None of that was practical in 2022. It is now, and this is the part of MLArt built for it.
A shopping assistant grounded in your catalogue
The assistant answers from your data, not from what a language model happens to remember about your category. Every reply is assembled by retrieving from the live catalogue, current stock and price, and your published delivery and returns policy, and then writing an answer over what came back.
That constraint does the heavy lifting. A model asked to be helpful about a product it cannot see will invent a fabric, a size guide or a returns window. A model handed the actual record has nothing to invent. If retrieval finds nothing that answers the question, the assistant says so and offers the nearest thing it can support, rather than filling the silence.
Three rules hold in every deployment:
- It shows its working. Answers carry the products they were drawn from, as real cards a shopper can click. If a claim cannot be traced to a catalogue field or a policy document, it does not get made.
- It reads the live record. Stock, price and availability come from the same feed the site runs on, so the assistant never recommends something that sold out an hour ago.
- It hands off rather than completes. The assistant fills a basket, opens checkout, or passes the conversation to a person. It does not take a payment.
We evaluate it the same way we evaluate a ranker: against a fixed question set built from your real search logs and support tickets, scored on whether each answer is supported by the retrieved records, not on whether it reads nicely. Fluency is free now. Grounding is the thing worth measuring.
Read more: keeping a shopping assistant grounded.
Merchandising content that keeps up with the catalogue
Most catalogues have a long tail nobody has ever written copy for. Generation closes that gap, but only if it writes from facts.
We generate descriptions, category text, size and care guidance, and search-facing summaries from the structured attributes already attached to each product, including the ones our tagging module produced from images. Brand voice is set from a sample of copy your team already approves, plus your explicit rules about what may and may not be claimed. Every generated field is traceable to the attributes it came from, so a reviewer can check it against the product rather than against their instinct.
Nothing publishes itself. Output lands in a review queue where a merchandiser approves, edits or rejects in batches, and only approved text reaches the site. When an attribute changes, affected copy is flagged for regeneration instead of quietly going stale.
Read more: generative merchandising content.
Agents that act, inside limits you set
An agent is only useful if it can do something, and only safe if there is a short list of things it can do.
We build agents for bounded post-purchase work: where is my order, start a return inside the policy window, tell me when this is back in stock, change a delivery address before dispatch. Each of those is a defined action with defined preconditions, wired to your systems and nothing else.
Anything irreversible stops for a person. Taking a payment, issuing a refund above a threshold you set, changing a price, editing stock, touching customer payment details: the agent prepares the action and a human confirms it. Every step is logged with its inputs, its outcome and who or what authorised it, so a disputed interaction can be reconstructed rather than argued about.
Read more: governing commerce agents.
Why this sits next to the ranking engine, not instead of it
A shopping assistant with no real decision engine behind it is a demo. It talks well, then recommends whatever the retrieval step happened to surface, with no view on what actually converts, no handling of a cold-start product and no way to adapt when the offer changes overnight.
A ranking engine that cannot explain itself has the opposite problem. It makes good decisions that nobody can interrogate, which makes it hard for a merchandising team to trust and hard for a shopper to act on.
Joined together they fix each other. The assistant asks the ranker what to show and inherits its handling of a changing catalogue. The ranker gains a surface where its choices can be explained, and a new stream of stated intent from conversations, which is a far richer signal than a click. Generated copy improves the attributes that similarity models feed on. Agents close the loop after purchase, where most personalisation stops paying attention.
That pairing is what we call Compound Commerce, and it is the shape of every engagement we take on now. If you have a ranking engine and no assistant, or an assistant and no engine, the missing half is the one we would start with.
See what runs underneath it on the technology page, or the ranking side of the offer under solutions. To talk it through, email office@mlart.biz.
The question a search box quietly fails.
Keywords can match a product title. They cannot weigh one specification against a constraint in someone's kitchen. An assistant earns its place when it reasons over the catalogue's real attributes and shows which products it leaned on.
Shopper asks
Our induction hob has 21 cm rings and one small 14 cm ring. Will the 24 cm cast-iron casserole heat evenly on that, or should I take the smaller one instead?
Assistant answerscatalogue-grounded
Even heating on induction comes from the flat ferrous base of the pan rather than its rim, so the 24 cm on the label is not the measurement that settles this. The Fenwick 24 cm Cast-Iron Casserole€96 has a machined base of 19.5 cm, which sits comfortably inside a 21 cm ring, so the full cooking surface is driven and you avoid the cold outer band that wider pans get on this hob size.
The Fenwick 20 cm Casserole€74 is the better answer only if most of your slow cooking happens on the 14 cm ring, where its 16 cm base already overhangs a little. For a four-person braise on the main ring, the 24 cm is the one I would keep.
Catalogue fields usedbase_diameter · base_material · capacity_litres · hob_compatibility
The chapter that didn't exist in 2022
Grounded shopping assistants and governed commerce agents, built on the same decisioning discipline behind our recommendation engines.
