Aller au contenu
Pour les shops de comptoirs · un produit de KonAutomate

Le catalogue sur votre propre site.

Collez le widget pour afficher les modèles de vos fournisseurs à vos couleurs, ou appelez l'API depuis votre serveur pour construire vos propres pages. Chaque clé ne voit que les fournisseurs avec qui votre entreprise fait affaire.

Widget, sans développeur

Collez ces deux lignes à l'endroit où le catalogue doit apparaître. Le widget ajuste sa hauteur, garde un fond transparent et n'affiche que « Powered by KonAutomate » en bas.

<div id="veina-catalogue"></div>
<script src="https://stone-canvas-hub.lovable.app/widget/v1.js" data-key="hc_pk_…" async></script>

Attributs facultatifs :

  • data-lang="fr | en"
  • data-accent="#1f4d43"
  • data-font="Montserrat" (toute police Google Fonts)
  • data-theme="light | dark | auto"
  • data-bg="transparent | #ffffff"
  • data-radius="0–16" · data-columns="2–5"
  • data-type="slab | sink | faucet | vanity"
  • data-target="id d'un autre conteneur"
  • data-analytics="off" (aucune mesure d'utilisation)

Le widget ne s'affiche que sur les domaines inscrits sur sa clé.

Clés

Les clés sont remises par l'équipe Veina. Il en existe deux sortes :

  • hc_pk_… publique : pour le widget et les pages web, seulement sur les domaines autorisés.
  • hc_sk_… secrète : de serveur à serveur seulement. Refusée si elle est appelée depuis un navigateur. Ne la mettez jamais dans une page web.
Authorization: Bearer hc_sk_…

Adresses

Adresse de base : https://stone-canvas-hub.lovable.app/api/public/v1. Les réponses sont en JSON. Ajoutez lang=en pour les libellés et descriptions en anglais.

GET/suppliersVos fournisseurs, logo et nombre de produits
GET/productsProduits filtrés et paginés
GET/products/{id}Un produit
GET/filtersFiltres disponibles avec compteurs (product_type=…)
POST/quote-requestsDemande de soumission d'un visiteur

Filtres des produits

Combinez les paramètres librement ; séparez plusieurs valeurs par des virgules.

product_typeslab, sink, faucet, vanity
suppliertce-stone,kasa-quartz
materialquartz, granite, marble, quartzite, porcelain…
colorwhite, grey, black, beige, brown, gold, blue, green, red, multi
lookveined, solid, speckled, patterned, concrete, terrazzo
finishpolished, honed, matte, leathered, textured
thickness2, 3
price_tiereconomy, mid, upper_mid, premium
mount_typeundermount, topmount, dual_mount, farmhouse…
attr.<clé>filtre propre au fournisseur, ex. attr.series=KSV
qtexte dans le nom ou le code
is_new, book_matchtrue | false
updated_since2026-10-01T00:00:00Z
sortnewest | name
page, per_pageper_page ≤ 100 (24 par défaut)
{
  "data": [{
    "id": "6f1c…", "product_type": "slab",
    "supplier": { "slug": "tce-stone", "name": "TCE Stone", "short_name": "TCE", "price_tier": "economy" },
    "code": "TCE 2049", "name": "Calacatta Dorato", "material": "quartz",
    "color_families": ["white", "gold"], "look": "veined", "finishes": ["polished"],
    "thicknesses_cm": [2, 3], "slab_size": "126\" x 63\"",
    "images": [{ "kind": "detail", "url": "https://stone-canvas-hub.lovable.app/api/public/img/…", "thumb": "…" }],
    "product_url": "https://tcestone.com/products/…"
  }],
  "pagination": { "page": 1, "per_page": 24, "total": 212, "total_pages": 9 }
}

Erreurs et limites

401missing_api_key, invalid_api_key
403key_revoked, business_suspended, origin_not_allowed, origin_required, secret_key_in_browser
404not_found (aussi pour un produit hors de vos fournisseurs)
429rate_limited — attendez Retry-After secondes
400invalid_parameter
{ "error": { "code": "origin_not_allowed", "message": "origin_not_allowed" } }

Chaque clé a une limite par minute (60 par défaut). Les images ont des adresses stables et peuvent être mises en cache.

Exemples

cURL

curl -H "Authorization: Bearer hc_sk_…" \
  "https://stone-canvas-hub.lovable.app/api/public/v1/products?product_type=slab&color=white&look=veined"

JavaScript (Node)

const res = await fetch("https://stone-canvas-hub.lovable.app/api/public/v1/products?supplier=tce-stone&per_page=48", {
  headers: { Authorization: `Bearer ${process.env.VEINA_SECRET_KEY}` },
});
const { data, pagination } = await res.json();

PHP (WordPress)

$res = wp_remote_get("https://stone-canvas-hub.lovable.app/api/public/v1/products?product_type=sink", [
  "headers" => ["Authorization" => "Bearer " . VEINA_SECRET_KEY],
]);
$catalogue = json_decode(wp_remote_retrieve_body($res), true);