---
title: "EuropeanTool - Plateforme B2B d'Objets Promotionnels"
description: "É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."
locale: "fr"
canonical: "https://portfolio.josedacosta.info/fr/realisations/europeantool-plateforme-b2b"
source: "https://portfolio.josedacosta.info/fr/realisations/europeantool-plateforme-b2b.md"
html_source: "https://portfolio.josedacosta.info/fr/realisations/europeantool-plateforme-b2b"
author: "José DA COSTA"
date: "2009"
type: "achievement"
slug: "europeantool-plateforme-b2b"
tags: ["PHP 5.x", "MySQL", "mynd-framework", "Zend Framework 1", "Symfony 2.x", "PrestaShop", "jQuery", "Bootstrap 2", "PhoneGap", "Apache", "Docker"]
generated_at: "2026-04-23T15:45:13.154Z"
---

# 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.

**Date:** 2009 - 2016  
**Duration:** ~7 ans  
**Role:** Software Engineer puis Senior Software Engineer  
**Technologies:** PHP 5.x, MySQL, mynd-framework, Zend Framework 1, Symfony 2.x, PrestaShop, jQuery, Bootstrap 2, PhoneGap, Apache, Docker

### Key Metrics

- Lignes de code PHP: **-** - Plateforme d'export seule
- Sous-projets: **-** - Applications interconnectées
- Fournisseurs connectés: **-** - Fabricants européens
- Langues supportées: **-** - Langues européennes

## Présentation

_Définition et périmètre du projet_

### Domain

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

### Target Users

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

**Content:** **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.

**Domain:** Domaine métier

**Target Users:** Utilisateurs cibles

**Functional Scope:** Périmètre fonctionnel

**Scope Catalog:** Catalogue produit (7 langues)

**Scope Export:** Export CSV & WebService

**Scope Modules:** Modules PrestaShop B2B

**Scope Flows:** Flux fournisseurs automatisés

**Scope Backoffice:** Backoffice fournisseurs

**Scope White Label:** Sites clé-en-main MyEasyWeb

**Scope Translation:** Plateforme de traduction

**Scope Search:** Moteur de recherche produit

**Scope Stats:** Statistiques & Analytique

## Objectifs, Contexte, Enjeux & Risques

_Vision stratégique et contraintes_

### Context

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).

### Stake Revenue

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.

### Stake Position

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.

### Stake Competitive

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.

- 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

**Objectives:** Objectifs

**Context:** Contexte

**Stakes:** Enjeux business

**Stake Revenue:** Revenus récurrents

**Stake Position:** Positionnement européen

**Stake Competitive:** Avantage concurrentiel

**Risks:** Risques identifiés

**Risk1 Title:** Dépendance PrestaShop

**Risk1 Desc:** É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.

**Risk2 Title:** Dette technique

**Risk2 Desc:** Framework maison (mynd-framework) non maintenu, Zend Framework 1 en fin de vie, jQuery/Bootstrap 2 obsoletes.

**Risk3 Title:** Risque de personne clé (bus factor)

**Risk3 Desc:** 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.

**Risk4 Title:** Vulnerabilites de sécurité

**Risk4 Desc:** 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_

- Fondations
- E-commerce B2B
- Industrialisation des exports
- Flux fournisseurs automatiques
- Modernisation & Migration

**Phase1 Period:** 2009 - 2012

**Phase2 Period:** 2012 - 2014

**Phase3 Period:** 2013 - 2016

**Phase4 Period:** 2015 - 2019

**Phase5 Period:** 2016 - 2019

## Les acteurs - Les interactions

_Dynamique d'équipe et collaboration avec les parties prenantes_

### Work Mode

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.

**Team Intro:** 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.

**Team Nuance:** **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.

**Stakeholders:** Parties prenantes externes

**Work Mode:** Mode de travail

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

_Résultats concrets et impact mesurable_

**Codebase Metrics:** Métriques du code source

**Ecosystem Dist:** Distribution de l'écosystème

**Team Dist:** Répartition des contributions

**For Me:** Résultats pour moi

**Technical Skills:** Compétences techniques acquises

**Domain Skills:** Compétences métier & humaines

**For Company:** Résultats pour l'entreprise

**Delivered Features:** **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_

**Content:** **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. Cette archive fournit une capsule temporelle visuelle de l'état de chaque application en aout 2019, et 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_

### Would Do Differently

- 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

**Strengths:** Ce qui a bien fonctionne

**Improvements:** Ce qui aurait pu etre mieux

**Would Do Differently:** Ce que j'aurais fait différemment

**Lessons:** Enseignements durables
