Aller au contenu principal

Boutique

La « boutique » est le conteneur de plus haut niveau des produits, commandes, clients, etc. Chaque clé est liée à exactement une boutique. Il n'existe aucun moyen de requêter les boutiques d'autres marchands.

GET /v1/store

Retourne le profil de la boutique à laquelle appartient la clé appelante.

Auth : n'importe quelle clé plateforme active liée à la boutique. Note : en v1, le scope store:read n'est pas vérifié sur cet endpoint — les endpoints de lecture sont protégés uniquement par une clé valide et le cloisonnement par boutique. Les seuls scopes réellement appliqués en v1 sont products:write, orders:write, landing_pages:write, webhooks:read, webhooks:write et usage:read.

Mis en cache pendant 30 s (par clé API + query string) — une modification faite dans le tableau de bord peut mettre jusqu'à 30 s à apparaître via api.dzbuild.app. Vérifiez l'en-tête de réponse X-Cache: HIT|MISS. L'alias dzbuild.com/api/v1/store n'est pas mis en cache.

Requête

curl https://api.dzbuild.app/v1/store \
-H "Authorization: Bearer $DZ_KEY"

Réponse 200

{
"data": {
"id": 13,
"name": "DZBuild",
"slug": "dzbuild",
"language": "ar",
"description": "DZBuild Offers Preview",
"logo": "/uploads/logos/13/8e19a05f0e4205bbcd861469ec0f9257.webp",
"favicon": null,
"banner": null,
"theme": {
"primary_color": "#f59e0b",
"secondary_color": "#fbbf24",
"background_color": "#ffffff",
"font_family": "Cairo"
},
"subdomain": "dzbuild.minacef.app",
"custom_domain": null,
"custom_domain_verified": false,
"public_url": "https://dzbuild.minacef.app",
"hide_branding": false,
"created_at": "2026-01-13 14:58:23"
},
"meta": { "request_id": "...", "api_version": "v1" }
}

Référence des champs

ChampTypeNotes
idintIdentifiant interne stable. Identique à store_id partout ailleurs.
namestringNom d'affichage. Apparaît dans la navbar et les emails.
slugstringIdentifiant compatible URL. Utilisé dans <slug>.dzbuild.app, etc.
languageenumar ou fr. Détermine le sens RTL/LTR de la vitrine.
descriptionstring|nullTagline courte.
logostring|nullChemin sur cdn.dzbuild.app s'il est défini. Préfixez l'URL CDN pour l'afficher.
faviconstring|nullMême logique.
bannerstring|nullMême logique.
theme.primary_colorhex stringCouleur dominante des boutons et accents.
theme.secondary_colorhex stringHover / accents secondaires.
theme.background_colorhex stringFond de page.
theme.font_familystringTypographie (par défaut Cairo).
subdomainstring|nullSous-domaine émis par DZBuild. Normalement présent ; null si aucun sous-domaine n'est encore configuré pour la boutique.
custom_domainstring|nullDomaine personnel du marchand. Défini uniquement s'il a été ajouté depuis le tableau de bord.
custom_domain_verifiedboolVrai uniquement si DNS + SSL sont opérationnels.
public_urlstring|nullURL où arrivent réellement les clients. Préfère un custom_domain vérifié ; retombe sur le sous-domaine ; null si aucun des deux n'existe.
hide_brandingbool« Powered by DZBuild » caché dans le footer. Plan Illimité.
created_attimestampHeure de création de la boutique, heure d'Alger (UTC+01:00).

Erreurs

HTTPCodeCause
401unauthorizedClé invalide ou manquante
402quota_exceededQuota mensuel de requêtes de la boutique épuisé — voir Limites de débit
403forbiddenMode pilote : clé non enrôlée (« API is in pilot mode; key not enrolled »)
404not_foundLa boutique a été supprimée pendant que vous utilisiez la clé (très rare)
429rate_limitedPlafond par minute atteint pour cette clé ; respectez Retry-After — voir Limites de débit

PATCH /v1/store (à venir en v1.1)

Mettre à jour les champs du profil boutique (nom, slug, couleurs du thème, domaine personnalisé).

Cet endpoint est réservé — la surface est verrouillée mais l'implémentation fait partie du jalon v1.1. En attendant, les modifications passent par le tableau de bord.

Les clés portent déjà un scope store:write, mais aucun endpoint d'écriture ne le consomme encore. PATCH /v1/store renvoie aujourd'hui 405 method_not_allowed, et non 404 — et via api.dzbuild.app vous obtenez d'abord 400 bad_request si vous omettez l'en-tête Idempotency-Key.