Online store

Sell from your own website.

A complete online store — catalogue, cart, orders, stock, VAT, payment — built on the same editor as the rest of the site. Product pages come from a template: you design one, and it publishes as many as you have items.

  1. Record types: you choose the fields
  2. Physical goods, services, subscriptions, courses
  3. Cart, orders, and stock for whatever can run out
  4. VAT and currency set once for the whole site
  1. Schema.org data generated automatically
  2. Filterable lists that fill themselves
  3. The “Learn more” link builds itself
  4. A new product appears without touching a single page

How it is set

The template is built like any other page: tokens are plain text in it, replaced at render time.

Declare a record type and its fields

POST /api/agent/v1/modeles/creer/
{
"nom": "Plan", "slug": "plan",
"gabarit_de_page": 87, "est_un_produit": true,
"champs": [
{"code": "tagline", "libelle": "Tagline", "type": "text"},
{"code": "details", "libelle": "Details", "type": "rich_text"}
]
}

List the products of one type, with the automatic link

PUT /api/agent/v1/blocs/606/contenu/
{
"type": "DYN_RESOURCE_GRID",
"dyn_resource_grid": {
"source": "PRODUCT",
"type_de_produit": "subscription",
"colonnes_ordinateur": 3,
"colonnes_telephone": 1,
"libelle_bouton": "Learn more"
}
}

The buying journey

Complete and hosted on your side, with no redirect to a third-party platform. Visitors stay on your domain from catalogue to payment — which matters as much for trust as it does for search rankings.

Catalogue → product pages generated from a template
Cart → quantities, updates, removal
Checkout → contact details, summary incl. VAT
Payment → configurable gateway
Confirmation → email in your branding, as the record
Follow-up → status, shipping, refund

Product types

What a product is decides how it behaves. Shippable goods consume stock; a service, a subscription or a course consumes none and stays available at all times. Telling them apart keeps a subscription from showing as sold out just because nobody entered a quantity.

POST /api/agent/v1/types-de-produit/creer/
{
"nom": "Monthly subscription",
"code": "subscription",
"nature": "service",
"modele": "plan"
}

→ « expedition » becomes false: the product
consumes no stock, is always available,
and its Schema.org markup says InStock

Natures: physical · service · course
questionnaire · appointment

Store settings

VAT, currency and the free-shipping threshold are set for the whole site, under Store ▸ Settings. These values are the defaults for new product types: they never rewrite existing products or past orders.

Store ▸ Settings

Default VAT 20.00 %
Currency EUR
Free shipping from — (empty = never)

The rate is bounded to [0, 100]: the database
would accept 250 %, and the price incl. VAT would
turn absurd without any page looking wrong.

Structured data

The Schema.org markup of every product — name, SKU, brand, price, currency, availability — is produced from the real data. Nothing is entered twice, so the page and what a search engine reads can never drift apart.

{ "@context": "https://schema.org",
"@type": "Product",
"name": "One-hour coaching session",
"sku": "COACH-1H",
"brand": { "@type": "Brand", "name": "Your brand" },
"offers": {
"@type": "Offer",
"price": "96.00",
"priceCurrency": "EUR",
"availability": "https://schema.org/InStock"
} }