Product · simple — a shop
The case. A fabric shop wants agents to find its articles. The order is completed on its own site.
What the example shows. One read API, one skill with kinds, a live search, and a handover
submit that sends the person to the site with their selection. No playbook: choosing is the whole
journey.
examples/actuelle/product-simple.yaml
# Product · simple — a shop whose order is completed on its own site.
# One API, one skill. No playbook: browsing and choosing is the whole journey.
station:
id: maison-indigo
name: Maison Indigo
global:
language: fr
currency: EUR
locale: fr-FR
domain:
domain_type: retail
entity_name: article
entity_name_plural: articles
agent:
tone: friendly
name: Maison Indigo
persona: "une conseillère textile qui connaît chaque tissu de l'atelier"
rules:
- "Ne jamais inventer un article ou un prix : tout vient de l'outil."
- "Citer le prix exact, en euros, avec le signe €."
portals:
web:
widget:
origins: [https://maison-indigo.example.fr]
apis:
- name: boutique
openapi_url: https://api.maison-indigo.example.fr/openapi.json
base_url: https://api.maison-indigo.example.fr
operations: # allowlist: nothing else is reachable
- {id: searchProducts, access: read}
auth: {type: none}
skills:
- name: articles
cognitive:
objective: "aider à trouver le tissu ou le vêtement qui correspond au projet"
diagnose: [l'usage, la couleur, le budget]
invoke: {method: searchProducts}
kinds: {article: {}}
present:
fields:
name: {from: name, type: text, role: title}
price: {from: price, type: price, role: billed}
image: {from: image_url, type: image}
page: {from: slug, type: url, role: link, template: "{tenant_url}/article/{value}"}
submit:
- name: commande
mode: handover # the customer finishes on the shop's own site
url: "{tenant_url}/commande?add={items}"
render: {component: carousel}
catalog:
from_skill: articles
mode: live
query_arg: q
submit_guard:
confirm: true
What happens
| the person or the agent | Core | result |
|---|---|---|
| "a blue wax print for a dress" | articles → searchProducts with q | a carousel of articles, with prices and images |
| adds two articles | no guard: they enter the selection | total in euros |
| clicks "Finalise" | confirm checked | a link to /commande?add=… on the tenant's site |
Key points
catalog.mode: livequeries the tenant's search on every question: stock is always up to date.- The
presentfields are typed and have a role:titlethe name,billedthe price. Thepagefield (role: link) gives the link to the article's page on the tenant's site, from itsslug. Without alinkfield, the card has no link. handoverexecutes nothing at the tenant: its site takes the payment.