Contact
Travaillons ensemble
EuropeanTool - Plateforme B2B d'Objets Promotionnels

EuropeanTool - Plateforme B2B d'Objets Promotionnels

Écosystème de 30+ applications interconnectées automatisant l'ensemble de la chaine d'approvisionnement B2B d'objets promotionnels - de l'import catalogue fournisseur a la distribution e-commerce revendeur dans 7 langues européennes.

2009 - 2016
~7 ans
Software Engineer puis Senior Software Engineer
PHP 5.xMySQLmynd-frameworkZend Framework 1Symfony 2.xPrestaShop 1.4/1.5Bootstrap 2jQueryExtJSPhoneGap/CordovaApacheSVNGitDockerOVH Dedicated

Lignes de code PHP

13,843

Plateforme d'export seule

Sous-projets

30+

Applications interconnectées

Fournisseurs connectés

250+

Fabricants européens

Langues supportées

7

Langues européennes

Présentation

Définition et périmètre du projet

EuropeanTool est le nom interne de la plateforme d'outils et de services numeriques développée pour European Sourcing, une entreprise B2B spécialisée dans l'objet publicitaire et promotionnel en Europe. Ce projet ne désigne pas une application unique mais un écosystème complet de plus de 30 applications interconnectées couvrant l'ensemble de la chaine de valeur : gestion du catalogue produit, export de données vers les boutiques e-commerce des revendeurs, automatisation des flux fournisseurs, backoffice fournisseurs, traduction, statistiques, recherche produit, applications mobiles et création de sites e-commerce clé-en-main pour les revendeurs.

European Sourcing est un intermédiaire B2B qui connecté des centaines de fournisseurs européens d'objets promotionnels avec des milliers de revendeurs. La plateforme EuropeanTool a été conçue pour automatiser et industrialiser ce processus : centraliser les catalogues fournisseurs, les normaliser, les traduire dans 7 langues, puis les redistribuer en masse vers les boutiques e-commerce des revendeurs.

Domaine métier

Objet publicitaire et promotionnel - sourcing B2B européen (goodies, cadeaux d'entreprise, objets personnalisés)

Utilisateurs cibles

Revendeurs B2B (distributeurs important les catalogues dans leurs boutiques PrestaShop ou utilisant les sites MyEasyWeb clé-en-main), fournisseurs européens (fabricants alimentant les catalogues via l'extranet ou les flux automatiques), et l'équipe interne European Sourcing

Périmètre fonctionnel
Catalogue produit (7 langues)
Export CSV & WebService
Modules PrestaShop B2B
Flux fournisseurs automatisés
Backoffice fournisseurs
Sites clé-en-main MyEasyWeb
Plateforme de traduction
Moteur de recherche produit
Statistiques & Analytique
Platform Architecture
EuropeanTool ecosystem architecture - from suppliers to resellers

Objectifs, Contexte, Enjeux & Risques

Vision stratégique et contraintes

Objectifs
  • Centraliser et normaliser les catalogues de 250+ fournisseurs européens dans une base de données unique multilingue
  • Automatiser la redistribution des catalogues vers les boutiques e-commerce des revendeurs (CSV et WebService PrestaShop)
  • Fournir des sites e-commerce clé-en-main (MyEasyWeb) aux revendeurs n'ayant pas de boutique propre
  • Automatiser les flux d'import des données fournisseurs (prix, stock, docs, marquages)
  • Offrir un écosystème complet d'outils internes pour gérer, traduire et analyser le catalogue
Contexte

Le projet a été bati progressivement depuis 2009, en partant d'outils PHP proceduraux et d'un framework maison (mynd-framework), pour evoluer vers des architectures plus modernes (Zend Framework 1, puis Symfony 2.x pour certains sous-projets). L'infrastructure était hébergée sur des serveurs dédiés OVH.

L'équipe technique était réduite (dominee par un développeur principal) avec des contributeurs incluant Thomas C. (backend/mobile), ED (modules PrestaShop), et plusieurs autres pour des taches spécialisées. Le projet opérait dans un environnement multilingue (7 langues européennes), une architecture multi-tenant (chaque revendeur a son propre site/export), et gérait des volumes de données importants (base de données de 15 Go, des centaines de fournisseurs, des milliers de produits).

Enjeux business

Revenus récurrents

La plateforme est le coeur de l'activité d'European Sourcing. Chaque revendeur connecté généré un abonnement récurrent. La qualité de synchronisation des catalogues impacte directement la satisfaction client et le taux de retention.

Positionnement européen

European Sourcing est positionne comme un acteur paneuropeen (FR, EN, DE, IT, ES, NL, PT), nécessitant une infrastructure de traduction et de localisation robuste.

Avantage concurrentiel

L'automatisation des flux (import fournisseur → normalisation → export revendeur) est le différenciateur competitif principal. Traiter des centaines de fournisseurs et pousser les données en quasi-temps reel vers des milliers de boutiques PrestaShop.

Risques identifiés

Dépendance PrestaShop

Écosystème fortement couple a PrestaShop (modules, API WebService, formats d'import CSV). Une évolution majeure de PrestaShop ou la migration des revendeurs vers Shopify/WooCommerce necessiterait des adaptations importantes.

Dette technique

Framework maison (mynd-framework) non maintenu, Zend Framework 1 en fin de vie, hachage MD5 sans sel, jQuery/Bootstrap 2 obsoletes.

Risque de personne clé (bus factor)

Le développeur "jose" est l'auteur de ~72% des fichiers SVN. La perte de cette expertise représenterait un risque majeur pour l'écosystème.

Vulnerabilites de sécurité

Hachage MD5 sans sel, pas de protection CSRF visible, pas de rate limiting identifié, credentials dans le code source.

Les étapes - Ce que j'ai fait

Phases chronologiques et contributions personnelles

Croissance des sous-projets dans le temps
Project Gantt
Project phases from 2009 to 2019
Phase 1
Fondations
2009 - 2012
  • Construction des premiers outils internes : manager catalogue v1 avec Open Flash Chart
  • Développement du module de statistiques fournisseurs pour l'analyse de données
  • Création du système de gestion de bannieres publicitaires (Zend Framework 1 + ExtJS)
  • Construction d'un crawler web pour analyser les sites des distributeurs
  • Développement d'un outil d'analyse de couleurs produit avec GD/ImageMagick
Phase 2
E-commerce B2B
2012 - 2014
  • Développement de 5 modules PrestaShop custom transformant les boutiques standard en plateformes de devis B2B
  • Construction de prestaprice : import en masse de prix spécifiques par CSV
  • Création de prestaquote : transformation visuelle panier → devis via JavaScript
  • Implémentation de prestaquotepayment : moyen de paiement fictif "Devis en attente"
  • Déploiement rapide pour les revendeurs avec workflow adapte au B2B (pas de paiement en ligne, prix degressifs)
Phase 3
Industrialisation des exports
2013 - 2016
  • Architecture de la plateforme d'export (export.europeansourcing.com) sur le framework maison mynd-framework
  • Implémentation de deux modes d'export : téléchargement CSV/ZIP et push WebService PrestaShop
  • Construction d'un système de files d'attente avec quotas et gestion de concurrence (max 6 exports simultanes, 3 par IP)
  • Développement de la detection de processus zombies et nettoyage automatique
  • Création de 5 scripts CLI pour exécution automatisée par cron
Phase 4
Flux fournisseurs automatiques
2015 - 2019
  • Développement du système de flux automatiques (flux v1 puis v2) pour l'import continu des catalogues
  • Transition des mises a jour manuelles vers des imports automatisés par cron
  • Construction de pipelines de validation et normalisation des données fournisseurs
  • Gestion de 250+ integrations fournisseurs avec des formats de données varies
Phase 5
Modernisation & Migration
2016 - 2019
  • Migration progressive de SVN vers Git (31 repositories sur GitHub/medialeads)
  • Adoption de Symfony 2.x pour les nouveaux projets (omyague, extranet_rebirth, sourcing_rebirth)
  • Refonte de l'extranet (v1 → v2) avec système d'import CSV avance
  • Introduction de Docker pour l'environnement de recette
  • Campagne exhaustive d'archivage (441 captures d'écran, dumps SQL complets, backup complet)
Technology Stack Évolution

Les acteurs - Les interactions

Dynamique d'équipe et collaboration avec les parties prenantes

Équipe & Contributions

Le projet a été développé par une petite équipe technique sur 10 ans. L'analyse des metadonnees SVN révèle la répartition reelle des contributions sur l'ensemble de l'écosystème. Ces chiffres représentent le nombre de fichiers dont chaque personne est le dernier auteur (last changed author) dans les working copies SVN sauvegardees en aout 2019.

ContributeurFichiersProjets principaux
Jose DA COSTA (jose)32 755+ (~72%)Site, Manager, Export, Crawler, MyGlobal, Traduction
Thomas C. (thomas)2 973+ (~6,5%)WebService, Apps mobiles, Statistiques
ED5 modulesModules PrestaShop B2B (~2 000 lignes PHP)
Vincent120 (~0,3%)RecherchePublicitaire, DBA MySQL
Steve62 (~0,1%)Plateforme de traduction
Wamania57 (~0,1%)MyGlobal, GraphicSourcing
Fabien~49 (~0,1%)Système de liens SEO (es_links)

Note méthodologique : Ces chiffres reflètent l'état des working copies SVN au moment du backup (aout 2019). Le `changed_author` SVN indique le dernier auteur a avoir modifié chaque fichier, pas le createur original. Néanmoins, sur un écosystème de cette taille, les chiffres reflètent fidelement la répartition reelle de l'effort de développement.

Parties prenantes externes

250+ Fournisseurs

Midocean, Sol's, Senator, Xindao, Bic Graphic, Fruit of the Loom, Victorinox, Clipper...

50+ Revendeurs

Distributeurs d'objets publicitaires (avotrimage.fr, cadonor.fr, ghkconseil.fr...)

OVH

Hébergeur de serveurs dédiés

Dolead

Agence de gestion des campagnes Google AdWords

PrestaShop

CMS e-commerce cible pour les exports et modules

Mode de travail

Pas de méthodologie Agile/Scrum formellement identifiée. Le mode de travail semble etre un développement iteratif pilote par les besoins métier, avec un développeur principal autonome. La communication avec les parties prenantes (fournisseurs, revendeurs, équipe marketing) était directe et continue, adaptant les priorites aux exigences du marche et aux retours clients.

Les résultats - Pour moi, pour l'entreprise

Résultats concrets et impact mesurable

Métriques du code source
Distribution de l'écosystème
Database Structure
Data Model (Core Tables)
Core entity-relationship diagram of the europeansourcing database
Résultats pour moi

Compétences techniques acquises

  • Développement PHP avance (POO, MVC, frameworks custom et standards)
  • Conception d'architecture multi-applicative
  • Intégration API (PrestaShop WebService, API OVH)
  • Développement de modules PrestaShop custom
  • Gestion de bases de données MySQL (schémas complexes, dumps 15 Go, optimisation)
  • Développement mobile hybride (PhoneGap/Cordova)
  • Automatisation (scripts CLI, cron jobs, crawlers web)
  • Traitement d'docs (GD, ImageMagick)
  • Administration système Linux/Apache/OVH
  • SEO technique (link building automatisé, meta tags)
  • Internationalisation (i18n) et workflows de traduction multilingue

Compétences métier & humaines

  • Comprehension approfondie du domaine B2B de l'objet publicitaire
  • Conception d'architecture logicielle distribuee
  • Gestion de projet technique en autonomie sur 10 ans
  • Communication avec les parties prenantes (fournisseurs, revendeurs, équipe marketing)
  • Documentation technique (campagnes exhaustives de captures d'écran, documentation d'import CSV)
Résultats pour l'entreprise

250+

Fournisseurs connectés

Fabricants européens intégrés

50+

Boutiques revendeurs

Livraison automatisée de catalogues

15 Go

Taille de la base

Annees de données catalogue accumulees

7

Langues

Couverture paneuropeenne

Livrables clés :

  • Plateforme d'export : export CSV multi-langue (7 langues) avec images en archives ZIP + push WebService vers les boutiques PrestaShop
  • 5 modules PrestaShop B2B : transformation complète de boutiques e-commerce standard en plateformes de devis B2B
  • Sites clé-en-main (MyEasyWeb) : sites e-commerce white-label pour les revendeurs sans boutique propre
  • Outils internes : gestion de bannieres, crawler web, analyse de couleurs, générateur de flyers, échange de liens, plateforme de traduction
  • Flux fournisseurs automatisés : import continu des catalogues de 250+ fournisseurs
  • Application mobile : app hybride iPhone/web pour la recherche produit (PhoneGap)
  • Backoffice d'administration : gestion complète du catalogue (v1 + v2) avec import CSV avance

Les lendemains du projet

Ce qui s'est passe ensuite

Futur immédiat : En aout 2019, une campagne exhaustive d'archivage a été menee - 441 captures d'écran de toutes les applications, dumps SQL complets (15 Go), et backup complet de tous les projets sur un NAS Synology. Cela suggere une phase de transition importante (départ d'un membre clé, rachat, ou fin de mission).

Évolution a moyen terme : La plateforme a continue de fonctionner après l'archivage. Les derniers developpements connus montrent une trajectoire de modernisation claire - migration de SVN vers Git, adoption de Symfony 2.x pour les nouveaux projets, introduction de Docker pour la recette. Cette trajectoire n'a jamais été complètement achevée, laissant un état hybride entre legacy (mynd-framework, ZF1) et moderne (Symfony, Docker).

Aujourd'hui (2026) : L'écosystème EuropeanTool représente un corps de travail de 10 ans préservé dans son intégralité sur un backup NAS. Les 441 captures d'écran fournissent une capsule temporelle visuelle de l'état de chaque application en aout 2019. Les dumps SQL complets permettent la reconstruction integrale des données. Bien que la stack technique soit devenue datee (PHP 5.x, jQuery, Bootstrap 2), les patterns architecturaux - flux de données B2B automatisés, systèmes d'export multi-tenant, gestion de catalogue multilingue - restent des concepts de conception pertinents que je porte dans mes projets modernes.

L'héritage de ce projet est visible dans mon approche actuelle de l'architecture : l'accent sur l'automatisation, la pensee multi-tenant et le design "internationalisation d'abord" que j'implemente maintenant avec des stacks modernes (Next.js, TypeScript, PostgreSQL) a été directement faconne par ces 10 ans de construction d'EuropeanTool.

Mon regard critique

Analyse rétrospective honnete

Ce qui a bien fonctionne
  • Couverture fonctionnelle exceptionnelle

    L'écosystème couvrait l'intégralité de la chaine de valeur B2B - de l'import fournisseur a la boutique revendeur - avec traduction, statistiques et marketing. Réalisation remarquable pour une petite équipe.

  • Automatisation avancee

    Les exports WebService avec gestion de files d'attente, quotas, detection de zombies et notifications représentent un niveau d'ingénierie avance pour de l'outillage interne.

  • Approche multi-tenant pragmatique

    Les modules PrestaShop transformaient intelligemment les boutiques standard en plateformes B2B via manipulation DOM JavaScript, évitant de forker le CMS entier.

  • Internationalisation native

    Le support de 7 langues européennes était intégré des la conception du modèle de données, pas ajoute après coup.

  • Documentation visuelle

    Les 441 captures d'écran constituent un patrimoine documentaire précieux, permettant de comprendre l'état de toutes les applications en 2019.

Ce qui aurait pu etre mieux
  • Authentification obsolete

    MD5 sans sel pour le hachage des mots de passe était une vulnérabilité critique. Bcrypt ou Argon2 auraient du etre adoptes.

  • Framework maison

    Bien que fonctionnel, mynd-framework créait une dette de maintenance et de documentation et rendait le recrutement plus difficile. L'adoption de Symfony (amorcee dans les projets recents) était la bonne direction.

  • Pas de tests automatisés

    Malgre la presence de SimpleTest dans le framework, aucun fichier de test fonctionnel n'a été identifié dans le code applicatif.

  • Couplage fort a PrestaShop

    Le format d'export, les modules et l'API WebService étaient spécifiques a PrestaShop 1.4/1.5, rendant l'adaptation a d'autres CMS coûteuse.

  • Pas de CI/CD

    Déploiement apparemment manuel, sans pipeline d'intégration continue ni de tests automatisés.

Ce que j'aurais fait différemment
  • Adopter un framework standard (Symfony, Laravel) des le départ plutot que de créer mynd-framework, pour faciliter la maintenance et le recrutement
  • Construire une API REST unifiee plutot que des connexions directes a la base de données depuis chaque sous-projet
  • Introduire des tests automatisés (unitaires et d'intégration) pour sécuriser les evolutions, en particulier sur les exports critiques pour le business
  • Containeriser l'ensemble avec Docker des le départ pour faciliter le déploiement et la reproductibilité des environnements
  • Abstraire la couche d'export pour supporter d'autres CMS (WooCommerce, Shopify) en plus de PrestaShop
Enseignements durables

L'automatisation est un multiplicateur de force

Une petite équipe peut gérer un écosystème B2B complexe si les processus répétitifs (import, export, traduction) sont entièrement automatisés.

Les architectures évoluent

Le passage de SVN a Git, de framework maison a Symfony, de PHP procédurale a MVC illustre une maturation technique progressive mais realiste - on ne réécrit pas tout d'un coup.

La documentation visuelle a de la valeur

Les captures d'écran exhaustives de 2019 permettent, 7 ans plus tard, de comprendre exactement l'état des applications. Un investissement peu coûteux mais très rentable.

Le bus factor est un vrai risque

Un écosystème de 30+ applications majoritairement maintenu par une seule personne est fragile. La diversification des compétences dans l'équipe est essentielle.

Parcours associe

Experience professionnelle liee a cette realisation

Competences mobilisees

Competences techniques et humaines appliquees

Galerie d'images

Captures et visuels du projet