Product · simple — une boutique
Le cas. Une boutique de tissus veut que les agents trouvent ses articles. La commande se termine sur son propre site.
Ce que l'exemple montre. Une API en lecture, une skill à kinds, une recherche en direct, et un
submit handover qui renvoie la personne sur le site avec sa sélection. Pas de playbook : choisir
est tout le parcours.
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
Ce qui se passe
| la personne ou l'agent | Core | résultat |
|---|---|---|
| « un wax bleu pour une robe » | articles → searchProducts avec q | un carrousel d'articles, avec prix et images |
| ajoute deux articles | aucune garde : ils entrent dans la sélection | total en euros |
| clique « Finaliser » | confirm vérifié | un lien vers /commande?add=… sur le site du tenant |
À retenir
catalog.mode: liveinterroge la recherche du tenant à chaque question : le stock est toujours à jour.- Les champs de
presentsont typés et ont un rôle :titlele nom,billedle prix. Le champpage(role: link) donne le lien vers la page de l'article sur le site du tenant, à partir de sonslug. Sans champlink, la carte n'a pas de lien. handovern'exécute rien chez le tenant : c'est son site qui encaisse.