Connecter un ERP
Connectez un ERP ou un logiciel de gestion à Wino : l'ERP gère le catalogue, les achats et les niveaux de stock, et Wino vend dans les boutiques. Ce guide présente les principaux flux. Adaptez-les à ce que gère votre ERP.
Développez sur staging avec une clé de staging (voir Environnements), et lisez d'abord Catalogue.
Fonctionnement
- Envoyez le catalogue depuis l'ERP : produits, variantes et leurs prix.
- Mettez à jour le stock : livraisons et inventaires.
- Récupérez les ventes dans l'ERP.
Conservez une correspondance entre les identifiants de votre ERP et les id de Wino : chaque écriture renvoie l'id de l'enregistrement, et vous en avez besoin pour le mettre à jour plus tard. Avec plusieurs boutiques, chaque boutique a sa propre copie du catalogue : créez le produit et ses variantes dans chaque boutique.
1. Envoyer le catalogue
Créez le produit avec createProduct, puis chaque variante avec createVariant, avec ses prix de vente dans les prix de la boutique (listez-les avec prices). Les champs requis de chaque kind de produit sont dans Catalogue.
mutation CreateVariant($input: InputCreateVariant!, $prices: [InputCreateVariantPrices!]!) {
createVariant(input: $input, variantPricesInput: $prices) {
id
formattedName
}
}
{
"input": { "productId": "<product id>", "shopId": "<shop id>", "name": "75 cl", "stockKeepingUnit": "ERP-000123" },
"prices": [{ "priceId": "<price list id>", "valueIncludingTax": 18, "valueExcludingTax": 15 }]
}
Les deux valeurs doivent correspondre à la taxe du produit : ici, 15 € HT avec une TVA de 20 % font 18 € TTC.
Ensuite, mettez-les à jour avec updateProduct et updateVariant. Pour modifier les prix, envoyez variantPricesInput avec updateVariant : la modification envoie alors une notification webhook VariantPrice aux abonnés de la boutique. createOrUpdateVariantPrice définit aussi un prix, mais n'envoie aucune notification.
L'API n'a pas de suppression : quand un article sort du catalogue, archivez-le avec archiveVariant ou archiveProduct.
2. Mettre à jour le stock
Enregistrez les changements de stock avec createStockActivity et votre propre appareil (voir Votre boutique et votre appareil) :
DELIVERYpour les marchandises que vous avez reçues : il s'ajoute au stock.RESETaprès un inventaire : sa quantité devient le nouveau niveau de stock.
mutation StockCount($variantId: String!, $shopId: String!, $deviceId: String!) {
createStockActivity(
input: { kind: RESET, quantity: 24, comment: "Inventory 2026-11", variantId: $variantId, shopId: $shopId, deviceId: $deviceId }
) {
id
kind
quantity
}
}
Un mouvement de stock ne peut pas être supprimé : envoyez chacun une seule fois. Pour une variante en vrac, envoyez aussi capacityUnit et capacityPrecision, avec une quantité mise à l'échelle (voir Variantes en vrac). Les autres types de mouvement sont listés dans le Glossaire.
3. Récupérer les ventes
- Pour suivre le stock, abonnez-vous aux webhooks
StockActivity: chaque vente en caisse envoie une notification. - Pour importer les ventes elles-mêmes (tickets, factures, remboursements), lisez-les régulièrement : voir Connecter un outil d'analyse.
Les fournisseurs et les clients peuvent aussi être écrits : createSupplier, updateSupplier, createCustomer, updateCustomer. Chaque input est décrit dans le schéma GraphQL.