---
title: "Générateur de sites e-commerce avec CMS de personnalisation (MyEasyWeb)"
description: "Plateforme SaaS multi-tenant generant des sites e-commerce personnalisés pour 400+ revendeurs du marche européen de l'objet publicitaire - 108K lignes de code, 7 langues, 32 devises, 1 506 commits sur ~3 ans."
locale: "fr"
canonical: "https://portfolio.josedacosta.info/fr/realisations/generateur-sites-ecommerce-avec-cms"
source: "https://portfolio.josedacosta.info/fr/realisations/generateur-sites-ecommerce-avec-cms.md"
html_source: "https://portfolio.josedacosta.info/fr/realisations/generateur-sites-ecommerce-avec-cms"
author: "José DA COSTA"
date: "2012"
type: "achievement"
slug: "generateur-sites-ecommerce-avec-cms"
tags: ["PHP 5.3+", "Symfony 2.4", "Symfony 3.1", "Silex 2.0", "MySQL", "Doctrine ORM", "Apache Solr", "ElasticSearch", "Memcached", "Twig", "Amazon SES", "jQuery", "REST API (FOS)"]
generated_at: "2026-04-23T15:45:22.818Z"
---

# Générateur de sites e-commerce avec CMS de personnalisation (MyEasyWeb)

Plateforme SaaS multi-tenant generant des sites e-commerce personnalisés pour 400+ revendeurs du marche européen de l'objet publicitaire - 108K lignes de code, 7 langues, 32 devises, 1 506 commits sur ~3 ans.

**Date:** 2013 - 2016  
**Duration:** ~3 ans  
**Role:** Senior Software Engineer  
**Technologies:** PHP 5.3+, Symfony 2.4, Symfony 3.1, Silex 2.0, MySQL, Doctrine ORM, Apache Solr, ElasticSearch, Memcached, Twig, Amazon SES, jQuery, REST API (FOS)

### Key Metrics

- Lignes de code: **-** - PHP, CSS, JS, Twig sur 3 applications
- Sites clients: **-** - Sites revendeurs actifs avec domaines propres
- Langues: **-** - FR, EN, ES, DE, IT, NL, PT
- Devises: **-** - Taux de change BCE, mise a jour automatique

## Présentation du projet

_Ce qu'est MyEasyWeb et pourquoi il existe_

- MyEasyWeb est une **plateforme SaaS multi-tenant** qui généré des sites e-commerce en marque blanche pour les revendeurs d'objets publicitaires. Developpee par **Medialeads** pour **European Sourcing**, leader européen des bases de données d'objets promotionnels, la plateforme permet a chaque revendeur (distributeur) de disposer de son propre site web personnalisé - avec son logo, ses couleurs, son nom de domaine et son catalogue configure - tout en étant alimente automatiquement par la base centralisée European Sourcing de plus de **520 000 produits** provenant de 800+ fournisseurs.
- Le système se compose de **trois applications distinctes** : le front-end principal et le back-office revendeur (myeasyweb.net, Symfony 2.4), un back-office d'administration interne pour l'équipe European Sourcing (bo.myeasyweb.pro, Symfony 3.1), et un site vitrine/moteur de recherche produits (myeasyweb.pro, Silex 2.0). Chaque site revendeur est identifié par son nom de domaine, et l'application charge dynamiquement la configuration correspondante (theme, langues, fournisseurs, marges) a chaque requête.
- Dashboard avec commandes recentes, contacts, produits et statistiques newsletter
- Personnalisation complète du site : themes, couleurs, polices, logos, docs d'en-tete, CSS custom
- Catalogue produits avec recherche full-text Solr/ElasticSearch et filtrage fournisseurs
- Système de devis en ligne avec montants minimaux configurables et notifications email (Amazon SES)
- Système publicitaire complet : diaporamas, bannieres, skyscrapers, publicites par categorie
- Tableaux de bord statistiques : devis, contacts, consultations produits, recherches
- Pages corporates, menus personnalisés et module de téléchargements pour le contenu éditorial libre
- SEO avancé : catégories SEO personnalisées, meta-données, sitemap XML et intégration Google Analytics
- Internationalisation : 7 langues (FR, EN, ES, DE, IT, NL, PT) et 32 devises avec taux ECB automatisés

**App1 Name:** myeasyweb.net

**App1 Desc:** Application principale : front catalogue public + back-office revendeur (Symfony 2.4)

**App2 Name:** bo.myeasyweb.pro

**App2 Desc:** Back-office d'administration interne pour l'équipe European Sourcing (Symfony 3.1)

**App3 Name:** myeasyweb.pro

**App3 Desc:** Site vitrine et moteur de recherche produits (Silex 2.0)

## Objectifs, contexte et risques

_Vision stratégique et defis de la plateforme_

### Obj Turnkey

Sites professionnels pour revendeurs sans compétence technique

### Obj Multi Lang

FR, EN, ES, DE, IT, NL, PT

### Obj Currency

Taux de change BCE, mise a jour quotidienne

### Obj Catalog

Base centralisée de 800+ fournisseurs

### Obj Custom

Branding entièrement personnalisable par revendeur

**Objectives Intro:** MyEasyWeb a été construit avec un objectif clair de monétisation B2B : offrir a chaque revendeur d'objets publicitaires en Europe un site web clé en main connecté a la base European Sourcing, generant des revenus récurrents et ancrant les revendeurs dans l'écosystème.

**Obj Turnkey Label:** Sites clé en main

**Obj Turnkey Value:** 400+ en ligne

**Obj Multi Lang Label:** Multi-langue

**Obj Multi Lang Value:** 7 langues

**Obj Currency Label:** Multi-devise

**Obj Currency Value:** 32 devises

**Obj Catalog Label:** Catalogue produits

**Obj Catalog Value:** 520K+ produits

**Obj Custom Label:** Personnalisation

**Obj Custom Value:** 3 themes

**Context Text:** Le projet s'inscrit dans un **écosystème plus large** chez Medialeads/European Sourcing, comprenant la marketplace European Sourcing, l'extranet revendeurs, les outils de traduction, les pipelines d'import de données et d'autres produits B2B. L'infrastructure existante disposait déjà d'une **base MySQL centralisée**, d'un **moteur de recherche Apache Solr** et d'un système d'API interne. Le développement a commence sous **SVN** avant de migrer vers **GitHub** en 2016.

**Stakes Text:** MyEasyWeb impacte directement le **modèle de revenus** d'European Sourcing : chaque site revendeur généré du volume d'affaires pour les fournisseurs de la plateforme. Au-dela du chiffre d'affaires, la plateforme sert d'**outil de fidélisation** - en fournissant un site web professionnel gratuit, European Sourcing ancre ses revendeurs dans son écosystème plutot que chez la concurrence.

**Risk1 Title:** Complexité multi-tenant

**Risk1 Desc:** 400+ sites pilotés depuis un code base unique avec personnalisation par tenant - un pattern cohérent avec les pratiques SaaS de la décennie 2008-2014.

**Risk2 Title:** Hachage mots de passe (état de l'art 2012)

**Risk2 Desc:** C'était l'état de l'art de l'écosystème PHP du début des années 2010 - reflet des contraintes techniques de l'époque. Les standards modernes (bcrypt, argon2) se sont généralisés depuis.

**Risk3 Title:** Concentration moteur de recherche

**Risk3 Desc:** Instance Solr unique pour la recherche produits - c'était l'état de l'art à l'époque, cohérent avec les pratiques de la décennie 2008-2014, avant que les clusters multi-nœuds et ElasticSearch ne deviennent la norme pour la haute disponibilité.

**Risk4 Title:** Schéma de base partagé

**Risk4 Desc:** Accès inter-applications a une base relationnelle commune - c'était l'état de l'art à l'époque, cohérent avec les architectures pragmatiques de la décennie 2008-2014, avant la généralisation des microservices et des APIs par contexte métier.

## Phases de réalisation

_Quatre ans de développement, des fondations a la maturite_

- Phase 1
- Phase 2
- Phase 3
- Phase 4

**Phase1 Title:** Fondations et architecture multi-tenant

**Phase1 Period:** 2012 - 2013

**Phase2 Title:** Enrichissement fonctionnel et montee en charge

**Phase2 Period:** 2014 - 2015

**Phase3 Title:** Modernisation et nouveau back-office

**Phase3 Period:** 2016 (T3)

**Phase4 Title:** Site vitrine et recherche

**Phase4 Period:** 2016 (T4)

## Acteurs et interactions

_Une équipe de 5 développeurs sur 1 506 commits_

- Le projet a été construit au sein de **Medialeads**, une société éditrice developpant des produits pour **European Sourcing** - le leader européen des bases de données d'objets publicitaires. L'équipe de **5 développeurs** a travaille sur 3 dépôts, avec José Da Costa comme **développeur lead** responsable de **~65% de l'ensemble des commits**.

**Table Developer:** Développeur

**Table Role:** Role

**Table Commits:** Commits

**Table Percent:** %

**Table Scope:** Périmètre

**Stakeholders Text:** Au-dela de l'équipe technique, le projet impliquait de multiples acteurs externes : les **fournisseurs d'objets publicitaires** (dont les catalogues alimentaient la plateforme via l'API European Sourcing), les **revendeurs** (utilisateurs directs du back-office MyEasyWeb), **OVH** (hébergement serveurs dédiés), **Amazon Web Services** (envoi d'emails via SES) et **GitHub** (hébergement du code sous l'organisation medialeads).

## Résultats et livrables

_Ce qui a été accompli sur 4+ ans de développement_

### Metric Entities

41 (principal) + 10 (ES) + 10 (BO) + 6 (partage)

### Metric Controllers

44 (principal) + 13 (BO admin)

### Metric Routes

Sur myeasyweb.net uniquement

### Metric Commits

Sur 3 dépôts, 5 développeurs

### Metric Themes

Entierement personnalisables par revendeur

### Metric Tests

Statistiques fournisseurs (2012-2015)

- **Architecture SaaS multi-tenant** - conception et maintenance d'un code base unique servant 400+ sites de marque independants, un pattern que j'ai applique a chaque projet SaaS depuis
- **Expertise PHP full-stack** - maîtrise approfondie de l'écosystème Symfony 2.x (Doctrine, Twig, sécurité, traductions, bundles) sous contraintes de production reelles
- **Intégration de moteurs de recherche** - experience pratique avec **Apache Solr** et **ElasticSearch** pour la recherche full-text de produits sur des catalogues massifs
- **Domaine e-commerce B2B** - comprehension approfondie de la gestion de catalogues, de la tarification/marges, des workflows de devis, de la synchronisation fournisseurs et de la gestion multi-devise
- **Architecture base de données** - travail avec la replication MySQL maitre/esclave, le cache Memcached et les bases de données partagees entre applications
- **Leadership technique** - coordination du développement sur 3 dépôts avec 4 autres développeurs en workflow par branches, de SVN a Git

**Metric Entities:** Entites en base

**Metric Entities Value:** 67

**Metric Controllers:** Controllers

**Metric Controllers Value:** 57

**Metric Routes:** Routes/Endpoints API

**Metric Routes Value:** 136

**Metric Commits:** Commits totaux

**Metric Commits Value:** 1 506

**Metric Themes:** Themes visuels

**Metric Themes Value:** 3 + common

**Metric Tests:** Fichiers de stats

**Metric Tests Value:** 1 355

**For Business:** Pour l'entreprise

**Business Text:** MyEasyWeb a permis a European Sourcing de **fidéliser son réseau de 400+ revendeurs** en leur offrant un site web professionnel gratuit, personnalisé et directement connecté a la base produits. Chaque site revendeur **généré indirectement du volume d'affaires** pour les fournisseurs de la plateforme.

**For Me:** Pour moi personnellement

**For Me Text:** En tant que développeur lead responsable de pres des deux tiers du code, ce projet a été une experience professionnelle marquante :

## Les lendemains du projet

_Évolution et héritage de la plateforme_

**Current Text:** À la fin de mon implication, la plateforme avait atteint une **maturité opérationnelle** et démontré la viabilité des approches multi-tenant pour les marchés de niche B2B - une architecture durable pensée pour traverser plusieurs générations technologiques.

## Regard critique

_Analyse honnete avec le recul du temps_

- **Le multi-tenant est un multiplicateur de valeur** : un code base unique servant 400+ clients généré un ROI bien superieur aux developpements sur mesure, a condition de bien structurer la couche de personnalisation
- **La dette technique croit avec le succès** : plus le produit attire de clients et de fonctionnalités, plus le risque de dette CSS/tests/sécurité augmente si la qualité n'est pas mesuree en continu
- **La documentation opérationnelle** (wiki avec URLs, commandes, crontabs) est aussi critique que la documentation architecturale pour la survie a long terme d'un projet
