Aller au contenu
Livraison offerte dès 60€ | Retours gratuits 30 jours
Estella Lingerie – Accueil

Documentation technique

Brancher votre boutique sur notre catalogue

Quatre adresses suffisent : lire le catalogue, lire une fiche, envoyer une commande, suivre une commande. Les prix renvoyés sont ceux de votre compte, remise comprise. Tout est en JSON, en UTF-8, et les montants sont en centimes — jamais en décimales, pour qu'aucun arrondi ne se glisse entre nous.

Pas encore de compte ? Demandez-en un : il faut une clé pour appeler ces adresses.

Avant tout

Votre clé

Chaque appel porte votre clé dans l'en-tête Authorization. Elle commence par pro_ et ne doit jamais apparaître dans une adresse, dans du code envoyé au navigateur, ni dans un dépôt partagé : elle donne le droit de commander en votre nom.

Nous ne conservons pas votre clé, seulement son empreinte. Elle ne vous est montrée qu'au moment où nous la créons. Perdue, elle ne se retrouve pas : nous en créons une autre et nous révoquons l'ancienne. Vous pouvez avoir plusieurs clés en même temps — une par boutique, ou une pour vos essais — et en révoquer une sans toucher aux autres.

L'en-tête, sur chaque appel

Authorization: Bearer pro_VotreCleIci

Vérifier que tout fonctionne

curl -s -H "Authorization: Bearer pro_VotreCleIci" \
  "https://www.estellalingerie.com/api/pro/v1/catalogue?limite=1"

Les prix

Ce que renvoie le catalogue, et ce qui sera facturé

prixProCents est le prix au premier palier de votre compte. C'est un plancher de prudence : le palier réel se calcule sur le sous-total au prix public de la commande, qu'un catalogue ne peut pas connaître à l'avance. Votre facture sera donc égale ou inférieure à ce que le catalogue annonce, jamais supérieure.

Le barème part dans chaque réponse de catalogue, sous bareme : si vous voulez afficher le bon prix dans votre propre interface, calculez-le vous-même à partir du sous-total public. Et POST /commandes renvoie de toute façon le chiffrage ferme, ligne par ligne.

Quand origine vaut grille, le prix vient d'un accord négocié sur ce produit : il ne bouge pas avec le montant de la commande.

Jusqu'à 500 € de sous-total public
−30 %
À partir de 500 € de sous-total public
−35 %
À partir de 2 000 € de sous-total public
−40 %

Les adresses

Quatre points d'entrée

Toutes relatives à https://www.estellalingerie.com/api/pro/v1

GET/catalogue

Le catalogue, à vos prix

Une ligne par produit, une entrée par variante (taille et couleur). Le stock est celui de l'entrepôt au moment de l'appel : c'est la même valeur que celle qui décide d'accepter une commande.

La pagination se fait par curseur et non par numéro de page : le catalogue bouge pendant une synchronisation, et un numéro de page ferait sauter ou répéter des fiches.

Avec depuis, une fiche remonte dès qu'une de ses variantes a changé — un prix, un code-barres, ou simplement le stock. Une synchronisation de nuit suffit donc à tenir vos ruptures à jour, sans relire tout le catalogue. En revanche elle peut remonter plus que nécessaire : nos propres imports réécrivent parfois des variantes sans rien y changer. Trop, jamais trop peu.

limite
De 1 à 100 fiches par page. 50 par défaut.
apres
Curseur : la valeur de suite renvoyée par la page précédente. Reprenez tant que suite n'est pas null.
depuis
Date ISO. Ne renvoie que les fiches modifiées depuis — et une fiche compte comme modifiée dès qu'une de ses variantes bouge, prix ou stock. C'est donc avec cela qu'on suit les ruptures.

Exemple

curl -s -H "Authorization: Bearer pro_VotreCleIci" \
  "https://www.estellalingerie.com/api/pro/v1/catalogue?limite=50"

# page suivante
curl -s -H "Authorization: Bearer pro_VotreCleIci" \
  "https://www.estellalingerie.com/api/pro/v1/catalogue?limite=50&apres=clz8k2p0a0001"

# depuis hier : fiches, prix et stocks modifiés depuis
curl -s -H "Authorization: Bearer pro_VotreCleIci" \
  "https://www.estellalingerie.com/api/pro/v1/catalogue?depuis=2026-10-31T00:00:00Z"

Réponse (extrait)

{
  "compte": { "entreprise": "Votre Boutique", "reglement": "Sur encours à 30 jours",
              "colisNeutre": true, "expeditionDirecte": false, "remiseNegocieePct": null },
  "bareme": [{"aPartirDeCents":0,"remisePct":30},{"aPartirDeCents":50000,"remisePct":35},{"aPartirDeCents":200000,"remisePct":40}],
  "produits": [
    { "handle": "ensemble-dentelle-noir", "titre": "Ensemble dentelle noir",
      "ligne": "Jardin Secret", "type": "Ensemble",
      "image": "https://…/photo.webp", "maj": "2026-10-28T09:14:00.000Z",
      "variantes": [
        { "id": "clz…", "sku": "ENS-DN-M", "ean": "3701234567890",
          "titre": "Noir / M", "couleur": "Noir", "taille": "M",
          "stock": 14, "prixPublicCents": 5900, "prixProCents": 4130, "origine": "palier" }
      ] }
  ],
  "suite": "clz8k2p0a0001"
}

GET/produits/{handle}

Une fiche complète

Le handle est celui de l'adresse publique (/products/{handle}) : une pièce repérée sur la boutique se demande directement, sans table de correspondance. La réponse ajoute la description et toutes les photos.

Exemple

curl -s -H "Authorization: Bearer pro_VotreCleIci" \
  "https://www.estellalingerie.com/api/pro/v1/produits/ensemble-dentelle-noir"

POST/commandes

Envoyer une commande

La commande part directement en préparation : il n'y a pas de validation intermédiaire, pas de panier à confirmer, et pas de paiement en ligne. Le règlement suit le mode convenu pour votre compte.

Réponse 201 à la création, 200 avec doublon: true si la référence existe déjà. Si un appel échoue sans réponse claire, réessayez avec la même référence : c'est précisément à cela qu'elle sert.

Le stock est vérifié ligne par ligne avant d'écrire quoi que ce soit. En cas d'insuffisance, rien n'est créé et la réponse dit ce qui reste disponible.

reference
Votre numéro de commande. Obligatoire, et c'est lui qui empêche les doublons : deux envois de la même référence ne créent qu'une commande.
lignes[].variantId / sku / ean
L'un des trois suffit à désigner la variante. Deux lignes sur la même variante sont additionnées.
lignes[].quantite
De 1 à 999. 200 lignes au maximum par commande.
livraison
Adresse de livraison. Obligatoire si votre compte est en expédition directe : c'est celle de votre cliente.
note
500 caractères au plus, lus par la personne qui emballe.

Exemple

curl -s -X POST \
  -H "Authorization: Bearer pro_VotreCleIci" \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "CMD-2026-0042",
    "lignes": [
      { "sku": "ENS-DN-M", "quantite": 3 },
      { "ean": "3701234567890", "quantite": 2 }
    ],
    "livraison": {
      "nom": "Marie Durand",
      "ligne1": "12 rue des Lilas",
      "codePostal": "75011", "ville": "Paris", "pays": "FR",
      "telephone": "+33600000000"
    },
    "note": "Cadeau : merci de ne pas joindre de prix."
  }' \
  "https://www.estellalingerie.com/api/pro/v1/commandes"

Réponse (extrait)

{
  "doublon": false,
  "commande": {
    "id": "clz…", "numero": 10482, "reference": "CMD-2026-0042",
    "statut": "en préparation", "totalCents": 20650, "devise": "eur",
    "chiffrage": {
      "sousTotalPublicCents": 29500, "sousTotalProCents": 20650,
      "economieCents": 8850, "remiseEffectivePct": 30, "palierPct": 30,
      "prochainPalier": { "remisePct": 35, "manqueCents": 20500 },
      "lignes": [ { "variantId": "clz…", "quantite": 3, "prixPublicCents": 5900,
                    "prixUnitaireCents": 4130, "totalCents": 12390, "origine": "palier" } ]
    }
  }
}

GET/commandes et /commandes/{id}

Suivre vos commandes

statut est écrit en français, pour être affiché tel quel à votre cliente ; statutCle est stable et sert à brancher du code (PREPARING, SHIPPED, DELIVERED, CANCELLED, REFUNDED).

suivi apparaît dès l'expédition. C'est là que vous récupérez le numéro de suivi à transmettre à votre cliente — nous ne le lui envoyons jamais nous-mêmes.

limite
De 1 à 100 commandes. 25 par défaut.
apres
Curseur, comme pour le catalogue.

Exemple

# vos dernières commandes
curl -s -H "Authorization: Bearer pro_VotreCleIci" "https://www.estellalingerie.com/api/pro/v1/commandes"

# une commande, par identifiant ou par numéro
curl -s -H "Authorization: Bearer pro_VotreCleIci" "https://www.estellalingerie.com/api/pro/v1/commandes/10482"

Réponse (extrait)

{
  "commande": {
    "id": "clz…", "numero": 10482, "reference": "CMD-2026-0042",
    "statut": "expédiée", "statutCle": "SHIPPED", "totalCents": 20650,
    "suivi": { "numero": "6A12345678901", "transporteur": "Colissimo",
               "expedieLe": "2026-11-03T08:12:00.000Z" },
    "creeLe": "2026-11-01T17:40:00.000Z",
    "lignes": [ { "produit": "Ensemble dentelle noir", "variante": "Noir / M",
                  "sku": "ENS-DN-M", "quantite": 3,
                  "prixUnitaireCents": 4130, "totalCents": 12390 } ]
  }
}

Sans développeur

Le catalogue en fichier

La même information, en CSV : une ligne par variante, un point-virgule en séparateur, et un en-tête que Shopify, WooCommerce, Wix et PrestaShop savent lire. Les prix sont en euros avec deux décimales dans ce fichier — c'est ce que les importateurs attendent.

Colonnes : handle, produit, ligne, type, variante, taille, couleur, sku, ean, stock, prix_public_eur, prix_pro_eur, origine_prix, image, modifie_le.

Si votre boutique sait envoyer un en-tête Authorization sur une importation planifiée, pointez-la sur cette adresse et elle se tiendra à jour seule. Beaucoup n'en sont pas capables : dans ce cas, dites-le-nous et nous vous envoyons le fichier chaque matin par e-mail.

Télécharger le fichier

curl -s -H "Authorization: Bearer pro_VotreCleIci" \
  -o catalogue.csv \
  "https://www.estellalingerie.com/api/pro/v1/catalogue.csv"

WordPress et WooCommerce

Le module

Le module fait, depuis l'administration de WordPress, ce que fait l'API : il importe les fiches, les photos et les tailles, applique votre marge, tient le stock à jour et renvoie vos commandes chez nous. Vous n'y collez qu'une chose, votre clé.

Il n'est pas encore en téléchargement libre. Nous l'installons avec vous, sur demande, pendant l'ouverture de votre compte — et nous préférons le dire plutôt que de vous laisser chercher un lien qui n'existe pas. Indiquez « module WordPress » dans votre demande et nous prenons rendez-vous.

Entre-temps, une extension d'importation CSV planifiée fait très bien le travail avec le fichier décrit ci-dessus.

Limites

Ce que l'API accepte

Lectures
120 appels par minute et par clé. Une synchronisation nocturne de tout le catalogue tient largement dedans.
Créations de commande
20 par minute et par clé.
Taille d'une commande
200 lignes, 999 pièces par ligne.
Pagination
100 fiches ou commandes par page au maximum.
Dépassement
Code 429 et le message dit combien de temps attendre. Aucune pénalité : le compteur se remet à zéro après 60 secondes.
Mise en cache
Aucune. Les réponses contiennent vos prix : ne les mettez pas dans un cache partagé, chez vous non plus.

Erreurs

Chaque refus dit quoi faire

Toutes les erreurs ont la même forme : { error: { code, message, details? } }. Branchez votre code sur code, montrez message à l'utilisateur.

CodeHTTPQue faire
cle_absente401L'en-tête Authorization manque. Vérifiez que votre client l'envoie bien : certaines bibliothèques le retirent en suivant une redirection.
cle_invalide401La clé n'existe pas. Recopiez-la sans espace ni retour à la ligne ; si le doute persiste, demandez-nous une nouvelle clé.
cle_revoquee401La clé a été désactivée. Nous vous en créons une autre : écrivez-nous.
compte_suspendu403Le compte est fermé, le plus souvent pour une facture en attente. Rien ne se débloque côté technique.
compte_inactif403Le compte n'est pas encore ouvert. Nous revenons vers vous sous 48 heures ouvrées.
debit_depasse429Trop d'appels dans la minute. Attendez une minute, puis espacez vos appels — une synchronisation n'a pas besoin d'aller plus vite.
champs_invalides422Un champ de la commande est mal formé. La réponse contient details : la liste exacte des champs, un par ligne.
ligne_introuvable422Une référence ne correspond à aucun article en vente. Relisez le catalogue : la pièce a pu être retirée.
stock_insuffisant409Le stock ne suffit pas. La réponse dit, pour chaque ligne, ce qui reste disponible. Rien n'a été créé.
plafond402Votre encours dépasse le plafond accordé. Réglez une facture en attente ou réduisez la commande.
livraison_requise422Votre compte est en expédition directe : l'adresse de votre cliente est obligatoire.
erreur_interne500Rien n'a pu être enregistré. Réessayez avec la MÊME référence : elle ne créera pas de doublon.

Une question, un cas qui n'entre pas dans ce qui précède, un besoin de champ supplémentaire ? Écrivez à contact@estellalingerie.com : c'est la même adresse que pour le reste, et c'est nous qui répondons.

Demander un compte revendeur

Newsletter

Rejoignez la communauté Estella

Inscrivez-vous et recevez -10 % sur votre première commande, plus nos nouveautés et offres exclusives.

En vous inscrivant, vous acceptez de recevoir nos communications. Désinscription possible à tout moment.