ExoConnect pour Acomba
Latest
  • Latest
  • 2.2.0
  • 2.3.2
  • 2.4.0
AccueilGuidesRéférence de l'APIRecettes
AccueilGuidesRéférence de l'APIRecettes
Contactez-nous
Latest
  • Latest
  • 2.2.0
  • 2.3.2
  • 2.4.0
Latest
  • Latest
  • 2.2.0
  • 2.3.2
  • 2.4.0
  1. Recettes
  • États de compte automatisés
  • Relances de recouvrement
  • Bons de commande, réceptions et rapprochement
  • Commande en ligne, facture et paiement
  • Lot de paiements fournisseurs
  • Synchronisation CRM
  • Import de feuilles de temps
  • Rapport de trésorerie
  • Vérification des DAS
  • Power BI et Excel
  • Rapport mensuel CCQ
  • Embaucher un travailleur de la construction
  • Le vrai coût horaire dans vos soumissions
  • Coût de la main-d’œuvre par chantier
  • Vérifier une paie avant de la fermer
  • Une prime à la prochaine paie
  • Vacances et banques d’heures en libre-service
  • Masse salariale à venir et rétention du personnel
  • De la soumission à la commande
  • Retours et notes de crédit
  • Prix spéciaux et clients exemptés
  • Catalogue de boutique en ligne
  • Réapprovisionnement sans double commande
  • Rentabilité des produits
  1. Recettes

Catalogue de boutique en ligne

Votre boutique en ligne affiche un prix d'il y a deux semaines, et un produit en rupture de stock depuis mardi. Dans Acomba, tout est à jour : le prix a été changé hier, la dernière boîte vendue ce matin. Recopier le catalogue à la main dans la boutique, c'est garantir qu'il soit toujours un peu faux, et exporter un fichier chaque soir laisse quand même la journée entière en retard.
Dans cette recette, nous allons synchroniser le catalogue de la boutique avec Acomba : un import complet la première fois, puis, à intervalle court, seulement ce qui a changé, que ce soit un prix, une description, un produit retiré ou un mouvement de stock.
Ce que vous allez apprendre
importer tout le catalogue d'Acomba, page par page, avec un curseur ;
suivre ensuite les produits modifiés et les mouvements d'inventaire depuis le dernier passage ;
identifier un produit de façon stable, même si Acomba réutilise une position ;
choisir les bons champs pour la boutique : nom, prix, stock disponible, produit publié ou non.
Avant de commencer
une clé API en lecture : cette recette n'écrit rien dans Acomba ;
le module Inventaire actif ;
un endroit où garder deux curseurs entre deux passages (un fichier, une table).

Deux sources de changements#

Avant d'écrire le script, voyons ce qui peut changer dans le catalogue. La fiche produit change quand on modifie un prix, une description, un groupe ou l'état actif : l'extraction des produits la renvoie dans l'ordre des modifications. Le stock change à chaque vente, réception ou ajustement : le journal des mouvements d'inventaire les liste, et chaque produit touché est relu.

Étape 1 : importer le catalogue#

Commençons par l'import complet. L'extraction renvoie les produits par lots, avec un curseur pour le lot suivant ; tant que has_more est vrai, redemandez avec ce curseur.
cURL
Réponse 200 (extrait)
Pour la boutique, retenez :
metadata.unique_id : l'identité stable du produit. L'id est une position dans le fichier d'Acomba, qu'Acomba réutilise après une suppression ; indexez votre catalogue sur unique_id.
prices.regular : le prix du niveau 1 (le nom réel des niveaux est dans GET /api/inventory/control, price_levels).
stock.available : la quantité disponible, celle à montrer aux clients.
status.is_active : un produit inactif ne se publie pas.

Étape 2 : suivre les produits modifiés#

Le catalogue est importé ; gardez le dernier next_cursor. Au passage suivant, l'extraction repart de ce curseur et ne renvoie que les produits modifiés depuis.
cURL

Étape 3 : suivre les mouvements de stock#

Reste le stock. Chaque vente, réception ou ajustement laisse un mouvement dans le journal d'inventaire. Au premier import, faites partir ce curseur de l'heure de l'import : seuls les mouvements à venir comptent.
cURL
Réponse 200 (extrait)
Relisez ensuite chaque produit touché (GET /api/inventory/products/by-id/94) pour obtenir son stock disponible à jour.

Le script complet#

Assemblons le tout : le premier passage importe le catalogue ; les suivants relisent les produits modifiés et ceux dont le stock a bougé, et affichent ce qui change dans la boutique.
Python
JavaScript (Node.js)
Exemple de sortie :
$ python catalogue.py import
Import : 1240 produits, 1102 publiés

$ python catalogue.py mise-a-jour
  PEINT-HC   prix 98.0 → 99.0
  COIN-10    stock 38.0 → 37.0
Mise à jour : 2 produit(s) relu(s), 1 mouvement(s) d'inventaire

Bon à savoir#

Indexez sur unique_id. Acomba réutilise la position (id) d'un produit supprimé pour un nouveau produit ; seul unique_id reste propre à une fiche.
Un produit supprimé disparaît : Acomba libère sa fiche, et l'extraction incrémentale ne le signale pas. Relancez l'import complet une fois par jour (la nuit, par exemple) : il réécrit le catalogue et retire les produits disparus.
Le nom est dans description_locale (français, anglais) ; une langue peut être vide.
Stock disponible : available ne descend pas sous zéro ; on_hand peut être négatif si des ventes ont précédé la réception.
Fréquence : un passage toutes les 5 à 15 minutes suffit ; l'extraction par curseur ne relit que ce qui a changé.
Prix par client : le prix affiché ici est le niveau 1. Pour un client connecté avec son propre niveau ou rabais, voyez Prix spéciaux et clients exemptés.
Codes d'erreur : voir Codes d'erreur.

Et voilà#

Votre boutique suit maintenant Acomba à quelques minutes près : le catalogue importé une fois, puis seulement les produits modifiés et ceux dont le stock a bougé, rangés par une identité qui ne trompe pas. Vous savez aussi quels champs montrer aux clients, et pourquoi un import complet quotidien retire les produits supprimés.
Pour aller plus loin
Commande en ligne, facture et paiement : la commande de la boutique, créée dans Acomba.
Prix spéciaux et clients exemptés : le prix et les taxes propres à chaque client.
Synchronisation CRM : le même principe de curseur pour les clients.
Modified at 2026-10-11 23:00:15
Previous
Prix spéciaux et clients exemptés
Next
Réapprovisionnement sans double commande
Built with