---
title: "EuropeanTool - B2B Promotional Product Platform"
description: "Ecosystem of 30+ interconnected applications automating the entire B2B promotional product supply chain - from supplier catalog import to reseller e-commerce distribution across 7 European languages."
locale: "en"
canonical: "https://portfolio.josedacosta.info/en/achievements/europeantool-plateforme-b2b"
source: "https://portfolio.josedacosta.info/en/achievements/europeantool-plateforme-b2b.md"
html_source: "https://portfolio.josedacosta.info/en/achievements/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:46:41.691Z"
---

# EuropeanTool - B2B Promotional Product Platform

Ecosystem of 30+ interconnected applications automating the entire B2B promotional product supply chain - from supplier catalog import to reseller e-commerce distribution across 7 European languages.

**Date:** 2009 - 2016  
**Duration:** ~7 years  
**Role:** Software Engineer then 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

- Lines of PHP Code: **-** - Export platform alone
- Sub-projects: **-** - Interconnected applications
- Connected Suppliers: **-** - European manufacturers
- Supported Languages: **-** - European languages

## Presentation

_Project definition and scope_

### Domain

Promotional products and corporate gifts - B2B European sourcing (goodies, branded merchandise, personalized items)

### Target Users

B2B resellers (distributors importing catalogs to their PrestaShop stores or using turnkey MyEasyWeb sites), European suppliers (manufacturers feeding catalogs via extranet or automated flows), and the internal European Sourcing team

**Content:** **EuropeanTool** is the internal name for the **digital tools and services platform** developed for **European Sourcing**, a B2B company specialized in promotional products across Europe. This project is not a single application but a **complete ecosystem of 30+ interconnected applications** covering the entire value chain: product catalog management, data export to reseller e-commerce stores, automated supplier flows, supplier backoffice, translation, statistics, product search, mobile applications, and turnkey e-commerce site creation for resellers.

European Sourcing acts as a B2B intermediary connecting hundreds of European promotional product suppliers with thousands of resellers. The EuropeanTool platform was designed to **automate and industrialize** this matching process: centralize supplier catalogs, normalize them, translate them into 7 languages, then redistribute them en masse to reseller e-commerce stores.

**Domain:** Business Domain

**Target Users:** Target Users

**Functional Scope:** Functional Scope

**Scope Catalog:** Product Catalog (7 languages)

**Scope Export:** CSV & WebService Export

**Scope Modules:** PrestaShop B2B Modules

**Scope Flows:** Automated Supplier Flows

**Scope Backoffice:** Supplier Backoffice

**Scope White Label:** MyEasyWeb Turnkey Sites

**Scope Translation:** Translation Platform

**Scope Search:** Product Search Engine

**Scope Stats:** Statistics & Analytics

## Objectives, Context, Stakes & Risks

_Strategic vision and constraints_

### Context

The project was built progressively since **2009**, starting from procedural PHP tools and a custom framework (mynd-framework), evolving toward more modern architectures (**Zend Framework 1**, then **Symfony 2.x** for newer sub-projects). Infrastructure was hosted on dedicated **OVH servers**.

The technical team was small (dominated by a principal developer) with contributors including Thomas C. (backend/mobile), ED (PrestaShop modules), and several others for specialized tasks. The project operated in a **multilingual environment** (7 European languages), a **multi-tenant** architecture (each reseller has their own site/export), and managed **significant data volumes** (15 GB database, hundreds of suppliers, thousands of products).

### Stake Revenue

The platform is the core of European Sourcing's business. Each connected reseller generates a recurring subscription. Catalog synchronization quality directly impacts customer satisfaction and retention.

### Stake Position

European Sourcing is positioned as a pan-European actor (FR, EN, DE, IT, ES, NL, PT), requiring robust translation and localization infrastructure.

### Stake Competitive

The automation of flows (supplier import → normalization → reseller export) is the primary competitive differentiator. Processing hundreds of suppliers and pushing data near real-time to thousands of PrestaShop stores.

- Centralize and normalize catalogs from 250+ European suppliers into a single multilingual database
- Automate catalog redistribution to reseller e-commerce stores (CSV and PrestaShop WebService)
- Provide turnkey e-commerce sites (MyEasyWeb) for resellers without their own stores
- Automate supplier data import flows (prices, stock, docs, markings)
- Deliver a complete internal toolset for catalog management, translation, and analytics

**Objectives:** Objectives

**Context:** Context

**Stakes:** Business Stakes

**Stake Revenue:** Recurring Revenue

**Stake Position:** European Positioning

**Stake Competitive:** Competitive Advantage

**Risks:** Identified Risks

**Risk1 Title:** PrestaShop Dependency

**Risk1 Desc:** Ecosystem tightly coupled to PrestaShop (modules, WebService API, CSV import formats). A major PrestaShop evolution or reseller migration to Shopify/WooCommerce would require significant adaptation.

**Risk2 Title:** Technical Debt

**Risk2 Desc:** Custom framework (mynd-framework) unmaintained, Zend Framework 1 end-of-life, obsolete jQuery/Bootstrap 2.

**Risk3 Title:** Bus Factor Risk

**Risk3 Desc:** The developer "jose" authored ~72% of all SVN files. Losing this expertise would represent a major risk for the entire ecosystem.

**Risk4 Title:** Security Vulnerabilities

**Risk4 Desc:** MD5 password hashing without salt, no visible CSRF protection, no rate limiting identified, credentials present in source code.

## The Steps - What I Did

_Chronological phases and personal contributions_

- Foundations
- B2B E-commerce
- Export Industrialization
- Automated Supplier Flows
- Modernization & Migration

**Phase1 Period:** 2009 - 2012

**Phase2 Period:** 2012 - 2014

**Phase3 Period:** 2013 - 2016

**Phase4 Period:** 2015 - 2019

**Phase5 Period:** 2016 - 2019

## Actors & Interactions

_Team dynamics and stakeholder collaboration_

### Work Mode

No formal Agile/Scrum methodology identified. The working mode appears to be **iterative development driven by business needs**, with a principal developer operating autonomously. Communication with stakeholders (suppliers, resellers, marketing team) was direct and continuous, adapting priorities to market demands and client feedback.

**Team Intro:** The project was developed by a **small technical team** over 10 years. SVN metadata analysis reveals the actual contribution distribution across the entire ecosystem. These figures represent the **number of files where each person is the last author** (last changed author) in the SVN working copies backed up in August 2019.

**Team Nuance:** **Methodological note:** These figures reflect the state of SVN working copies at the time of backup (August 2019). The SVN `changed_author` indicates the last person to modify each file, not the original creator. However, over an ecosystem of this size, the figures faithfully reflect the actual distribution of development effort.

**Stakeholders:** External Stakeholders

**Work Mode:** Working Mode

## Results - For Me, For the Company

_Concrete outcomes and measurable impact_

**Codebase Metrics:** Codebase Metrics

**Ecosystem Dist:** Ecosystem Distribution

**Team Dist:** Team Contribution Distribution

**For Me:** Results For Me

**Technical Skills:** Technical Skills Acquired

**Domain Skills:** Domain & Soft Skills

**For Company:** Results For the Company

**Delivered Features:** **Key deliverables:**

- **Export platform**: CSV multi-language export (7 languages) with images in ZIP archives + WebService push to PrestaShop stores
- **5 PrestaShop B2B modules**: Complete transformation of standard e-commerce into B2B quote platforms
- **Turnkey sites (MyEasyWeb)**: White-label e-commerce sites for resellers without their own stores
- **Internal tools**: Banner management, web crawler, color analysis, flyer generator, link exchange, translation platform
- **Automated supplier flows**: Continuous catalog import from 250+ suppliers
- **Mobile application**: Hybrid iPhone/web app for product search (PhoneGap)
- **Administration backoffice**: Complete catalog management (v1 + v2) with advanced CSV import

## Project Aftermath

_What happened next_

**Content:** **Immediate future**: In August 2019, a comprehensive archival campaign was conducted - 441 screenshots of all applications, full SQL dumps (15 GB), and complete backup of all projects onto a NAS Synology. This suggests a significant transition phase (departure of a key team member, acquisition, or end of mission).

**Medium-term evolution**: The platform continued operating after the archival. The last known developments show a clear modernization trajectory - migration from SVN to Git, adoption of Symfony 2.x for new projects, introduction of Docker for staging. This trajectory was never fully completed, leaving a hybrid state between legacy (mynd-framework, ZF1) and modern (Symfony, Docker) approaches.

**Today (2026)**: The EuropeanTool ecosystem represents a **10-year body of work** preserved in its entirety on a NAS backup. This archive provides a visual time capsule of every application's state in August 2019, and the full SQL dumps allow complete data reconstruction. While the technology stack has become dated (PHP 5.x, jQuery, Bootstrap 2), the **architectural patterns** - automated B2B data flows, multi-tenant export systems, multilingual catalog management - remain relevant design concepts that I carry forward into modern projects.

The project's legacy is visible in my current approach to architecture: the emphasis on automation, multi-tenant thinking, and internationalization-first design that I now implement with modern stacks (Next.js, TypeScript, PostgreSQL) was directly shaped by these 10 years of building EuropeanTool.

## Critical Reflection

_Honest retrospective analysis_

### Would Do Differently

- Adopt a **standard framework** (Symfony, Laravel) from the start instead of creating mynd-framework, to ease maintenance and recruitment
- Build a **unified REST API** rather than direct database connections from each sub-project
- Introduce **automated tests** (unit and integration) to secure evolutions, especially on business-critical exports
- **Containerize** the entire ecosystem with Docker from the start for easier deployment and environment reproducibility
- **Abstract the export layer** to support other CMS (WooCommerce, Shopify) alongside PrestaShop

**Strengths:** What Worked Well

**Improvements:** What Could Have Been Better

**Would Do Differently:** What I Would Do Differently

**Lessons:** Lasting Lessons
