@mostajs/connecteurs-boutique
v0.1.0
Published
Recevoir les commandes d'une boutique en ligne (WooCommerce, Shopify, YouCan, format sur mesure) : vérifier la signature du webhook, ramener la commande à une forme unique. Zéro dépendance, sans état, sans réseau.
Maintainers
Readme
@mostajs/connecteurs-boutique
Auteur : Dr Hamid MADANI [email protected]
Recevoir les commandes d'une boutique en ligne (WooCommerce, Shopify, YouCan, ou un module sur mesure) : vérifier la signature du webhook et ramener la commande à une forme unique. Zéro dépendance, sans état, sans réseau.
Installation
npm i @mostajs/connecteurs-boutiqueLe chemin heureux
import { lireWebhook, ErreurConnecteur } from '@mostajs/connecteurs-boutique';
// Dans la route du webhook : lire le corps BRUT, sans l'analyser d'abord.
const corps = await lireCorpsBrut(req);
try {
const r = lireWebhook('woocommerce', { entetes: req.headers, corps, secret: boutique.secret });
if (r.genre !== 'commande') return repondre(200); // ping, ou autre sujet
await creerCommande(boutique.compte, r.commande, { idLivraison: r.idLivraison });
return repondre(201);
} catch (e) {
if (e instanceof ErreurConnecteur && e.code === 'SIGNATURE') return repondre(401);
if (e instanceof ErreurConnecteur) return repondre(422, e.message);
throw e;
}La forme unique
{
reference: '727',
acheteur: { nom: 'Nadia B.', telephone: '0661 00 00 02', wilaya: '31', commune: 'Oran', adresse: 'Cité les Orangers, Bât. A, n° 12' },
lignes: [{ sku: 'ROBE-LIN-M', quantite: 2 }],
total: '9000.00', devise: 'DZD', cod: '9000.00', note: 'Appeler avant 18 h',
}Plateformes
| code | signature | sujet retenu |
|---|---|---|
| woocommerce | X-WC-Webhook-Signature (HMAC-SHA256, base64) | order.created ; le ping de création rend essai |
| shopify | X-Shopify-Hmac-Sha256 | orders/create |
| youcan | aucune vérifiée : authentifier par un jeton dans l'adresse | toute commande |
| guerway | X-Guerway-Signature | toute commande, au format de l'API Guerway |
Ce que le module ne fait pas
Créer la commande, tenir le stock, garder les secrets : c'est l'hôte. Publier le stock vers la boutique : 0.2.0.
Essais
npm test — T-CB-1 à T-CB-6, échantillons dans test-scripts/echantillons/ (reconstitués d'après la documentation publique : à confronter à une vraie commande de test).
Licence AGPL-3.0-or-later.
