Aller au contenu principal
Sur cette page▾

Une commande commence quand votre client confirme un devis dans le configurateur. À partir de ce moment, c’est un enregistrement stocké et signé, et CutOptim vous en informe de deux façons.

Ce qu’est une commande

Un document de commande contient la liste de coupe, les panneaux entiers utilisés, la quincaillerie, les panneaux contrecollés, le plan de coupe, et le devis avec ses lignes et ses totaux en unités monétaires mineures entières. Il est signé, il ne peut donc plus être modifié par la suite. Envoyer deux fois la même requête de commande renvoie la même commande, jamais une seconde.

Comme le prix provient de vos règles publiées côté serveur, votre boutique ne se fie pas au navigateur pour celui-ci. Avant que votre panier n’accepte une ligne, votre serveur demande à CutOptim de vérifier le devis avec votre clé secrète. La solution prête à l’emploi est le plug-in WooCommerce ; pour les autres boutiques, voir les plateformes sur mesure.

Livraison par webhook

Ajoutez un webhook à la liste channels.webhooks de votre configuration (catégorie Advanced, éditeur JSON) et publiez. Chaque entrée comporte un id, une url et les events souhaités. L’URL doit être une adresse HTTPS publique ; les adresses privées, locales et internes sont refusées à l’enregistrement, puis de nouveau à l’envoi. Deux événements sont envoyés :

  • order.created lorsqu’un client passe une commande.
  • order.status_changed lorsque vous faites passer une commande à un nouveau statut.

Chaque livraison est une requête POST avec un corps JSON canonique et ces en-têtes : CutOptim-Signature, CutOptim-Event-Id, CutOptim-Event-Type, CutOptim-Delivery-Attempt et CutOptim-Delivery-Id. La signature est t=<unix seconds>,v1=<hex>, un HMAC-SHA256 de <t>.<raw body> avec le secret du récepteur. Votre récepteur doit :

  1. lire le corps brut avant de l’analyser ;
  2. vérifier que l’horodatage date de quelques minutes au plus et comparer la signature en temps constant ;
  3. accepter n’importe laquelle de plusieurs valeurs v1, qui apparaissent pendant la rotation d’un secret ;
  4. répondre rapidement par un statut 2xx, et ne traiter qu’une seule fois un identifiant d’événement.

Le secret du récepteur est révélé à votre serveur par POST /cfg/v1/admin/webhooks/<id>/secret sur le service, avec votre clé secrète. Il n’est pas affiché dans la console.

Une réponse non 2xx, un délai dépassé ou une redirection compte comme un échec. Les nouvelles tentatives attendent 1, 5, 25 et 125 minutes, puis 6 heures, et la sixième tentative échouée marque la livraison comme morte. Une nouvelle livraison répète le même identifiant d’événement afin que votre récepteur puisse la reconnaître. Les autres types d’événements présents dans la configuration, comme les événements de devis ou de projet, sont acceptés mais jamais envoyés.

E-mail

Dans la section channels.email de votre configuration, vous listez les adresses destinataires de la boutique (tenantRecipients) et pouvez activer une copie au client (sendCustomerCopy). L’e-mail de la boutique contient une fiche de travail et un PDF d’étiquettes ; la copie au client n’est envoyée que si vous l’avez activée et que la commande porte une référence client avec une adresse enregistrée, et y répondre atteint votre premier destinataire. L’e-mail de statut n’est envoyé que si vous le demandez lors d’un changement de statut. Un échec d’envoi ne bloque jamais la commande. Un sandbox n’écrit qu’à l’adresse confirmée du propriétaire et jamais à un client.

La console des commandes

La zone Orders de la console liste les commandes par statut et par date, et ouvre une commande pour en afficher la liste de coupe, les lignes de prix, les totaux et l’historique. Le propriétaire et l’administrateur voient aussi les journaux de livraison des webhooks et des e-mails, avec un bouton Redeliver qui met en file une copie d’une livraison terminée, échouée ou morte. Une livraison encore en attente ou en cours ne peut pas être renvoyée.

Pour changer un statut, vous choisissez le statut suivant, ajoutez une note facultative et décidez d’envoyer ou non un e-mail au client. Les passages autorisés sont :

De Vers
reçue (received) confirmée (confirmed), annulée (cancelled)
confirmée (confirmed) en production (in production), annulée (cancelled)
en production (in production) expédiée (shipped), annulée (cancelled)
expédiée (shipped) terminée (completed)

Les commandes terminées et annulées ne bougent plus. Les commandes ne sont jamais supprimées depuis la console ; ce sont des documents commerciaux.

La page de suivi

Le lien de suivi du client affiche le numéro de commande, le nom de votre boutique, les étapes du statut avec l’heure de chacune, le nombre de pièces et le total, dans l’une des dix langues. Il n’affiche ni adresse ni e-mail, ni liste de coupe, et jamais vos notes, et il ne contient aucun script. Le lien ne peut pas être deviné, appartient à une seule commande et expire 365 jours après la commande. Si vous avez besoin du lien pour un appel téléphonique, votre serveur peut le demander avec la clé secrète ; la console ne l’affiche pas.

Fichiers de production

Chaque commande peut être téléchargée sous forme de sept fichiers depuis le détail de la commande :

Fichier Usage
Liste de pièces (CSV) les pièces avec dimensions et quantités
Positions (CSV) l’emplacement de chaque pièce sur chaque panneau
Dessin (SVG) le plan, à consulter ou à imprimer
Dessin CNC (DXF) pour les logiciels de CNC
Étiquettes (PDF) étiquettes de pièces
Fiche de travail (PDF) une fiche pour l’atelier
Extrait ERP (JSON) pour votre système ERP

Les PDF sont reconstruits à partir de la commande, et refusés lorsque le plan ne peut pas être reproduit exactement ; dans ce cas, les autres fichiers restent disponibles. Les PDF sont en anglais. Il n’existe pas d’export Excel pour une commande, et les commandes 1D ou bois n’existent pas encore, rien n’est donc exporté pour elles.

Ce qui n’est pas couvert

  • Le configurateur n’encaisse aucun paiement ; le paiement et l’exécution restent dans votre boutique.
  • Il n’y a pas de changement de statut en masse.
  • Un lien de suivi ne peut pas être révoqué individuellement ; il expire de lui-même.

FAQ

Comment recevoir une commande ?
De deux façons à la fois, selon votre configuration : un webhook signé vers votre serveur, et un e-mail aux adresses que vous listez. L’e-mail contient une fiche de travail et des étiquettes en fichiers PDF. Chaque commande est en outre enregistrée et visible dans la console, si bien qu’un webhook manqué ne fait jamais perdre une commande.
Comment savoir qu’un webhook provient bien de CutOptim ?
Chaque envoi porte un en-tête CutOptim-Signature, un HMAC-SHA256 calculé sur les octets exacts du corps avec un horodatage. Votre serveur le recalcule avec le secret du récepteur, qu’il obtient auprès de CutOptim avec sa clé secrète, et refuse une signature erronée ou un horodatage ancien. Vérifiez le corps brut avant de l’analyser et ignorez un identifiant d’événement déjà traité, car la livraison est au moins une fois.
Que se passe-t-il si mon serveur est indisponible quand une commande arrive ?
La commande est d’abord enregistrée, puis la livraison est retentée : après 1, 5, 25 et 125 minutes, puis 6 heures. Après la sixième tentative échouée, la livraison est marquée comme morte (dead). Les propriétaires et administrateurs voient le journal de livraison dans la console et peuvent mettre en file une nouvelle livraison du même événement en un clic.
Quels sont les statuts d’une commande ?
Reçue, confirmée, en production, expédiée et terminée, plus annulée. Une commande avance d’une étape à la fois et peut être annulée tant qu’elle n’est pas expédiée ; terminée et annulée sont définitives. La base de données l’impose, aucun chemin ne peut donc faire reculer une commande. Chaque changement est enregistré avec son auteur.
Mon client peut-il suivre la commande ?
Oui. Quand vous changez un statut, vous pouvez cocher une case pour envoyer un e-mail au client ; ce message contient un lien de suivi. La page affiche le numéro de commande, le nom de votre boutique, les étapes du statut et la date de chacune, le nombre de pièces et le total. Elle n’affiche ni adresse, ni liste de coupe, ni aucune de vos notes. Le lien cesse de fonctionner 365 jours après la commande.
Quels fichiers de production puis-je télécharger ?
Sept, par commande : la liste de pièces (CSV), les positions (CSV), un dessin du plan (SVG), un dessin CNC (DXF), un PDF d’étiquettes, un PDF de fiche de travail et un extrait ERP (JSON). Les fichiers SVG, DXF et de positions sont identiques à ceux que produit l’Engine API pour le même plan.

Mis à jour: 19 octobre 2026