Documentation technique complète et opérationnelle. Chaque section inclut des exemples JavaScript (fetch) prêts à l’emploi.
Deux méthodes :
https://caisse.enregistreuse.fr/workers/getAuthToken.phplogin — le login de votre compte existantpassword — le mot de passe de votre compte existant{ "result": "OK", "APIKEY": "[votre Token]", "SHOPID": "[identifiant de compte boutique]"} const login = "mon.email@example.com";const password = "monMotDePasse";fetch("https://caisse.enregistreuse.fr/workers/getAuthToken.php", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ login, password })}) .then(r => r.json()) .then(data => { if (data.result === "OK") { console.log("Token:", data.APIKEY); console.log("Boutique:", data.SHOPID); } else { console.error("Erreur d'authentification", data); } }); URL de base : https://caisse.enregistreuse.fr/workers/getSales.php
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
idboutique | string | Oui | Identifiant de compte boutique (SHOPID) |
key | string | Oui | Votre token (APIKEY) |
d | int | Non | Jour (si non précisé, la veille est utilisée) |
m | int | Non | Mois |
y | int | Non | Année |
formatExport | string | Oui | Std (rapport HTML), PDF, XLS, CSV, frafec (FEC), saft |
// Aide pour construire une URL GETfunction buildUrl(path, params){ const qs = new URLSearchParams(params); return `${path}?${qs.toString()}`;}const SHOPID = "[SHOPID]";const APIKEY = "[APIKEY]";// 1) Export CSV pour date préciseconst urlCsv = buildUrl("https://caisse.enregistreuse.fr/workers/getSales.php", { idboutique: SHOPID, key: APIKEY, d: 16, m: 10, y: 2025, formatExport: "CSV"});fetch(urlCsv).then(r=>r.text()).then(csv=>console.log(csv));// 2) Rapport HTML (Std) pour la veille (sans date)const urlStd = buildUrl("https://caisse.enregistreuse.fr/workers/getSales.php", { idboutique: SHOPID, key: APIKEY, formatExport: "Std"});fetch(urlStd).then(r=>r.text()).then(html=>{ document.getElementById("rapport").innerHTML = html;});// 3) Rapport PDF (Blob)const urlPdf = buildUrl("https://caisse.enregistreuse.fr/workers/getSales.php", { idboutique: SHOPID, key: APIKEY, d: 16, m: 10, y: 2025, formatExport: "PDF"});fetch(urlPdf).then(r=>r.blob()).then(pdf=>{ const a = document.createElement("a"); a.href = URL.createObjectURL(pdf); a.download = "rapport-ventes.pdf"; a.click();}); Tous les endpoints suivants acceptent &format=json, &format=csv ou &format=html.
| Ressource | Endpoint |
|---|---|
| Articles | /workers/getPlus.php |
| Rayons | /workers/getDepartments.php |
| Groupes de rayons | /workers/getDepartmentGroups.php |
| Clients | /workers/getClients.php |
| Déclinaisons d'articles | /workers/getDeclinaisons.php |
| Méthodes de livraison | /workers/getLivraisons.php |
| Méthodes de paiement | /workers/getPaymentModes.php |
| Caisses | /workers/getCashbox.php |
| Zones de livraison | /workers/getDeliveryZones.php |
| Points relais | /workers/getRelayDeposit.php |
| Réductions | /workers/getDiscounts.php |
| Utilisateurs | /workers/getUsers.php |
| Tables | /workers/getTables.php |
| Commandes en cours | /workers/getPending.php |
https://caisse.enregistreuse.fr/workers/[endpoint].php?idboutique=[SHOPID]&key=[APIKEY]&format=[csv|json|html] // Récupération d'une ressource génériquefunction buildUrl(path, params){ const qs = new URLSearchParams(params); return `${path}?${qs.toString()}`;}async function fetchResource(endpoint, format = "json"){ const url = buildUrl(`https://caisse.enregistreuse.fr/workers/${endpoint}.php`, { idboutique: SHOPID, key: APIKEY, format }); const res = await fetch(url); return format === "json" ? res.json() : res.text();}// 1) Articles en JSONfetchResource("getPlus", "json").then(data => console.log("Articles:", data));// 2) Clients en CSVfetchResource("getClients", "csv").then(csv => console.log("Clients (CSV):\n", csv));// 3) Rayons en HTML (injection)fetchResource("getDepartments", "html").then(html => { document.getElementById("rayons").innerHTML = html;}); Envoyez une commande complète : articles, client, mode de paiement, livraison, etc.
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
idboutique | string | Oui | Votre identifiant de boutique (SHOPID) |
key | string | Oui | Votre Token (APIKEY) |
idUser | int | Non | Identifiant d'utilisateur. Si non précisé, le logiciel crée un compte utilisateur avec le login "webservice" s'il n'existe pas déjà, et l'utilise. |
payment | int | Oui | -2 = Non payée, non validée ; -1 = Non payée, validée ; un identifiant de mode de paiement pour indiquer un paiement (peut être un identifiant d'un mode de remboursement) |
idClient | int | Non | Identifiant du client existant pour l'affecter à la commande |
idtable | int | Non | Identifiant de la table pour l'affecter à la commande |
idcaisse | int | Non | Identifiant de la caisse pour l'affecter à la commande |
numcouverts | int | Non | Nombre de couverts servis à la table |
publicComment | string | Non | Commentaire adossé à la commande (public) |
privateComment | string | Non | Commentaire adossé à la commande (privé) |
pagerNum | int | Non | Numéro de bippeur |
Si le client n'existe pas, vous pouvez le créer avec les champs suivants (à envoyer directement en POST) :
client[nom]=[nom]client[prenom]=[Prénom]client[email]=[Email]client[telephone]=[nom]client[adresseligne1]=[Adresse ligne 1]client[adresseligne2]=[Adresse ligne 2]client[commentaireadresse]=[nom]client[codepostal]=[Code postal]client[ville]=[Ville]client[pays]=FRclient[numtva]=[Numéro TVA]client[rcs]=[Numéro RC]client[codeBarre]=[Code barre]client[telephone2]=[Téléphone secondaire]client[lat]=[latitude]client[lng]=[longitude] | Valeur | Signification |
|---|---|
| 0 | À emporter |
| 1 | À livrer |
| 2 | Sur place |
| 3 | Service au volant |
| 4 | Vente au comptoir |
| 5 | Point relai |
| 6 | À expédier |
[idArticle] — ajoute un article (quantité 1)[idArticle]_[quantite] — préciser la quantité[idArticle]_[quantite]_[titre personnalisé]_[prix personnalisé] — forcer le titre et le prix[idArticle]_[quantite]_[titre]_[prix]_[idDéclinaison1]_[idDéclinaison2]_[idDéclinaison3]_[idDéclinaison4]_[idDéclinaison5] — ajouter jusqu'à 5 déclinaisons-[idRayon]_[prix]_[titre] — crée une ligne libre rattachée au rayonFree_[prix]_[titre] — crée une ligne libreasync function enregistrerVenteAvecClientExistant(){ const body = new URLSearchParams({ idboutique: SHOPID, key: APIKEY, idUser: 1, payment: -1, deliveryMethod: 0, idClient: 123 }); body.append("itemsList[]", "12_2_Pizza 4 fromages_14.50_3_8"); body.append("itemsList[]", "-5_9.99_Vente libre"); const res = await fetch("https://caisse.enregistreuse.fr/workers/webapp.php", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body }); let payload; try{ payload = await res.json(); }catch{ payload = await res.text(); } console.log(payload);} async function enregistrerVenteAvecNouveauClient(){ const body = new URLSearchParams({ idboutique: SHOPID, key: APIKEY, payment: 2, deliveryMethod: 1 }); body.append("client[nom]", "Durand"); body.append("client[prenom]", "Zoé"); body.append("client[email]", "zoe.durand@example.com"); body.append("client[telephone]", "+33 6 12 34 56 78"); body.append("client[adresseligne1]", "10 rue des Écoles"); body.append("client[adresseligne2]", "Bât. B"); body.append("client[commentaireadresse]", "Sonner 2 fois"); body.append("client[codepostal]", "75005"); body.append("client[ville]", "Paris"); body.append("client[pays]", "FR"); body.append("client[numtva]", "FRXX999999999"); body.append("client[rcs]", "RCS Paris 123 456 789"); body.append("client[codeBarre]", "CUST-0001"); body.append("client[telephone2]", "+33 1 23 45 67 89"); body.append("client[lat]", "48.848"); body.append("client[lng]", "2.347"); body.append("itemsList[]", "42_1_Menu midi_12.90"); body.append("itemsList[]", "15_3_Canette Cola_2.50"); const res = await fetch("https://caisse.enregistreuse.fr/workers/webapp.php", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body }); let payload; try{ payload = await res.json(); }catch{ payload = await res.text(); } console.log(payload);}
Ce document est mis à disposition selon les termes de la licence Creative Commons Attribution 4.0 International (CC BY 4.0) .