Tous les travaux
Open source2024En cours

Vendure Data Hub

Plugin ETL et d'intégration de données pour Vendure. Builder visuel de pipelines, 9 extracteurs, 61 opérateurs de transformation, 24 loaders d'entités et générateurs de flux Google Merchant et Amazon.

En bref

9
Extracteurs (vérifiables dans le dépôt)
61
Opérateurs de transformation avec prévisualisation
24
Loaders d'entités Vendure
4
Générateurs de flux marketplaces

Le défi

Les projets Vendure reconstruisent sans cesse la même plomberie : imports produits depuis ERP et PIM, synchronisation des stocks, mises à jour de prix, flux marketplaces. Chaque intégration repart de zéro, finit en script jetable et casse en silence quand un fournisseur change une colonne. L'écosystème n'avait pas de couche de pipelines de données réutilisable et prête pour la production.

Notre approche

Data Hub est un plugin Vendure à part entière : pipelines déclaratifs composés d'extracteurs (CSV, JSON, XML, REST, GraphQL, FTP, S3 et plus), 61 opérateurs de transformation avec prévisualisation à blanc, et loaders pour 24 types d'entités Vendure. Les pipelines tournent sur planification ou webhook, avec retries, upserts idempotents, logs en temps réel et éditeur visuel dans l'admin. Les générateurs de flux publient Google Merchant et Amazon depuis le même graphe.

Architecture système

Chargement du diagramme...

Architecture système: Product Event, Event Subscriber, Delta Capture, HMAC-Signed Webhook, Target System, Pimcore Webhook, Signature Validation, Data Class Mapping, Transactional Write, Failure, Dead Letter Queue, Auto Retry

Décisions d'ingénierie

Des pipelines déclaratifs, pas des scripts sur mesure

Chaque intégration est une configuration qu'un relecteur peut lire, pas un script unique enfoui dans un dépôt. Extracteurs, transformations et loaders composent un graphe de pipeline. Le compromis : une courte courbe d'apprentissage contre des intégrations qui survivent aux changements d'équipe et aux particularités des fournisseurs.

Upserts idempotents par défaut

Les fournisseurs renvoient des fichiers et les jobs réessaient, donc chaque loader est clé et sûr à exécuter deux fois. Relancer un pipeline converge vers le même état de catalogue au lieu de dupliquer des produits. Cela suppose des clés externes stables, qui font partie du contrat d'intégration.

Aperçu en dry-run avant toute écriture

Une mauvaise transformation sur un catalogue en production coûte cher à corriger. Chaque pipeline prévisualise la sortie exacte de chaque opérateur avant que les données ne touchent Vendure, donc les erreurs sont vues en relecture, pas en production.

Un plugin Vendure de premier ordre, pas un sidecar

Data Hub s'exécute dans Vendure en utilisant son modèle d'entités, ses permissions et son admin, plutôt qu'un service séparé. Le couplage au cycle de vie de Vendure est volontaire : un système à déployer, un endroit à surveiller.

Technologies

Backend
TypeScriptNestJSVendure
Infrastructure
DockerGitHub Actions
Frontend
ReactAdmin UI Extension

Résultats clés

  • Remplace les scripts d'import ad hoc par des pipelines déclaratifs et supervisés
  • Les upserts idempotents rendent les relances sûres par conception
  • La prévisualisation montre chaque transformation avant de toucher la boutique
  • Publié en open source : le code fait référence

Le résultat

Un seul plugin remplace les scripts d'intégration d'un projet e-commerce typique. Publié en open source sur GitHub ; éprouvé en production sur des imports de catalogues volumineux et vérifiable opérateur par opérateur dans le dépôt.

À quoi ressemble un projet commerce sur Data Hub

Sur une mission, Data Hub est la couche d'intégration, pour que l'équipe se concentre sur la vitrine et le métier plutôt que sur la tuyauterie.

  • Nous connectons vos flux ERP, PIM et fournisseurs en pipelines déclaratifs
  • Les mappings sont prévisualisés en dry-run avant d'atteindre le catalogue en production
  • Les pipelines tournent par planning ou webhook avec reprises, journaux et upserts idempotents
  • Les flux Google Merchant et Amazon sont publiés depuis le même graphe
  • Le plugin et les pipelines vous appartiennent : open source, à étendre vous-même