Contact
Let's work together
Fleurance Nature - E-Commerce Platform Redesign

Fleurance Nature - E-Commerce Platform Redesign

Full redesign of fleurancenature.fr on Magento Enterprise Edition - migration from Solr to ElasticSearch, ERP flux overhaul, multi-site architecture with 60 custom modules across 3 websites.

July 2017 - September 2017
3 months
Senior Software Engineer - Full-Stack
PHP 5.3Magento EE 1.10ElasticSearchZend FrameworkMySQLVarnishApacheWordPressSolrLXCPentaho KettleGit

Custom Modules

60+

Magento custom modules

PHP Files

1040

Modified or created

Websites

3

FR, International, Mincifine

Blog Articles

512

Migrated from WordPress via RSS

Environments

8

From local to production

Spec Pages

50

Final specification document (v1.6)

Presentation

Project scope and business context

Fleurance Nature is a French company founded in 1972, specialized in natural and organic products (health, beauty, food supplements). The company sells through its website fleurancenature.fr, which runs on Magento Enterprise Edition 1.10.

The project was a full redesign of the e-commerce platform, carried out at Smile (Open Source Solutions agency). The scope covered 3 websites (Fleurance Nature France, International, Mincifine), a migration from Solr to ElasticSearch for the search engine, and a complete overhaul of ERP data flows.

The existing codebase was heavily customized with 60 Magento modules, 1040 PHP files, and complex pricing rules involving 4 customer groups across 3 storefronts. The B2C business model targets consumers looking for natural health and beauty products.

A significant part of the work involved Magento's EAV (Entity-Attribute-Value) database architecture - a schema design where product attributes are stored as rows in separate tables rather than columns in a single table. This approach gives maximum flexibility for adding custom product attributes (like "natural actives", "min/max weight", "virtual category identifiers") without altering the database schema. The trade-off is query complexity: a simple product read can require JOINs across 6+ tables (one per attribute type: varchar, int, decimal, text, datetime, and the main entity table).

Equally central was Magento's XML configuration and class override system. Every module behavior in Magento 1 is declared via XML files (config.xml, system.xml, layout XML). To customize a core behavior - for instance, how product prices are indexed or how search results are sorted - a developer creates an XML declaration in their custom module that overrides ("rewrites") the original class. The system loads all module XML files at bootstrap and builds a merged configuration tree. This mechanism allowed Fleurance Nature's 60 custom modules to alter Magento's core behavior at any level (models, blocks, controllers, helpers) without modifying a single line of core code. The downside: debugging requires tracing through the XML configuration chain to understand which class is actually loaded at runtime.

Domain

B2C e-commerce - natural and organic products (health, beauty, food supplements)

Target Users

End consumers (France and international) purchasing natural products online. Back-office users managing catalog, orders, and promotions.

Functional Scope
  • Autocomplete search with ElasticSearch
  • Faceted navigation and virtual categories
  • Mobile-responsive redesign
  • International storefront with localized pricing
  • WordPress blog integration via RSS feed (512 articles)
  • SKU reference search for returning customers
  • Complex pricing rules (4 groups x 3 websites)
  • ERP bidirectional data flows
Custom Modules by Functional Domain
Fleurance Nature - Multi-site Magento EE architecture with Varnish, ElasticSearch, ERP and CRM integrations

Objectives, Context & Risks

Strategic goals and constraints

Objectives

Redesign the front-end and back-office of 3 Magento websites with a modern responsive theme

Migrate the search engine from Solr to ElasticSearch with autocomplete and faceted navigation

Integrate the WordPress blog into Magento via RSS feed synchronization

Overhaul the ERP data flows for product catalog, stock, and order synchronization

Set up the 1000mercis marketing platform integration (tracking, emailing, analytics)

Context

The platform ran on Magento Enterprise Edition 1.10, a version already aging in 2017. The codebase had accumulated 60 custom modules over the years, making upgrades difficult and risky.

Pricing was particularly complex: 4 customer groups (anonymous, general, loyalty subscribers, company committees) each had different price catalogs across 3 websites. This created a matrix of 12 pricing combinations, each with its own set of rules and promotions.

The specifications went through 7 versions over 2 months (from v1.0 at 30 pages to v1.6 at 50 pages), reflecting the progressive discovery of edge cases and business rules hidden in the existing code.

Technology Distribution
Identified Risks

Backward Compatibility

With 60 custom modules, any change risked breaking existing functionality. Each modification required regression testing across all 3 websites.

Performance Thresholds

The production site served real customers daily. Performance degradation during the migration was not acceptable - Varnish caching had to remain operational throughout.

Blog Integration Fragility

The WordPress-to-Magento blog integration relied on RSS feed parsing - an artisanal approach with no transactional guarantee. 512 articles needed to migrate without data loss.

ERP Data Volumetry

The ERP flux handled the full product catalog synchronization. Any error in the flow could corrupt product data, prices, or stock levels across all 3 storefronts.

Implementation Phases

Chronological breakdown over 13 months

Effort Distribution by Phase (Days)
Phase 1
Phase 1 - ERP & 1000mercis Flux
January - July 2017
  • Reverse-engineered existing ERP data flows to document all exchange formats
  • Redesigned the bidirectional synchronization (products, stock, orders, customers)
  • Implemented the 1000mercis marketing platform integration (tracking pixels, email triggers)
  • Built automated tests for flux validation before production deployment
Phase 2
Phase 2 - Graphic Design & Wireframing
February - June 2017
  • Created wireframes for all key pages (home, category, product, cart, checkout)
  • Designed responsive layouts for mobile, tablet, and desktop breakpoints
  • Validated visual mockups with the client through iterative review cycles
  • Produced the graphic design specifications for 3 distinct website themes
Phase 3
Phase 3 - Specifications & Development
July - October 2017
  • Wrote detailed functional specifications (7 versions, 30 to 50 pages)
  • Migrated search engine from Solr to ElasticSearch with autocomplete and facets
  • Developed virtual categories and faceted navigation modules
  • Implemented the WordPress blog integration via RSS feed synchronization
  • Built the responsive front-end theme across 3 storefronts
Phase 4
Phase 4 - Testing & Delivery
September 2017 - January 2018
  • Executed internal testing at Smile (recette Smile) across all 3 websites
  • Managed client acceptance testing (recette client) with formal PV sign-off
  • Content contribution phase: migrated 512 blog articles and product data
  • Coordinated production deployment across 8 environments
Phase 5
Phase 5 - Warranty
December 2017 - March 2018
  • Provided post-launch support during the 58-day warranty period
  • Fixed production issues reported by the client and end users
  • Monitored performance metrics and ElasticSearch indexing stability
  • Handed over documentation and maintenance procedures to the TMA team
Specification Document Evolution (pages)

Specification document grew from 30 to 50 pages across 7 versions (Jul-Sep)

Deployment Environments (Complexity Score)
Git tag - delta script - SCP transfer - deploy script - production

The Team & Stakeholders

Project organization and interactions

The project followed a structured agency workflow with formal validation gates. Each deliverable required a signed acceptance document (PV - proces-verbal) before moving to the next phase. This approach reduced ambiguity but added time to each iteration cycle.

Communication happened through weekly progress meetings, a shared ticketing system, and formal specification reviews. The client had a dedicated project contact (Philippe B.) who centralized all business decisions.

Smile Team

Nicolas C.

Project Manager - Planning, client relationship, budget tracking

Richard B.

Specification Author - Functional analysis, requirement gathering, spec writing

Jose DA COSTA

Developer - Magento development, ElasticSearch migration, module customization

Custom Modules by Functional Domain
External Stakeholders

Philippe B. - Client project contact at Fleurance Nature

1000mercis - Marketing platform provider (tracking, emailing)

ERP provider - Product catalog and order synchronization

Ideematic - External partner for specific integrations

Validation Process

Formal sign-off with PV (proces-verbal) documents at each phase. Specifications reviewed and approved before development. Client acceptance testing with written validation before production deployment.

Results

Skills acquired and deliverables

Deliverables

ElasticSearch search engine with autocomplete and faceted navigation across 3 websites

Complete responsive redesign of fleurancenature.fr, international, and Mincifine storefronts

Overhauled ERP bidirectional data flows (products, stock, orders, customers)

1000mercis marketing platform integration (tracking, emailing, analytics)

Mobile-responsive theme with international storefront support

WordPress blog migration (512 articles) integrated into Magento via RSS

Skills Acquired

Deep mastery of Magento EAV database architecture - understanding how product data is split across 6+ tables by attribute type, writing optimized queries that JOIN entity tables with attribute value tables, and creating custom EAV attributes with their own source models and backend types

Practical expertise in Magento XML class override system - declaring module rewrites in config.xml to alter core models, blocks, and controllers without touching core code; debugging the merged XML configuration tree to trace class resolution chains across 60+ modules

Hands-on ElasticSearch experience (indexing, mapping, queries, autocomplete, facets)

E-commerce pricing complexity (multi-group, multi-website, catalog rules, cart rules)

Agency workflow (formal specs, PV sign-off, structured delivery, warranty periods)

Specification writing (contributed to 7 versions across 50 pages of functional requirements)

Multi-environment deployment management (8 environments from local to production)

Deployment Environments (Complexity Score)

8 environments from local development to production - each with distinct configuration

Pricing Matrix Complexity

4 customer groups x 3 websites = 12 unique pricing combinations

The Project Aftermath

What happened after delivery

The redesigned site went live and continued serving Fleurance Nature customers in production. The ElasticSearch migration improved search relevance and autocomplete response times compared to the previous Solr setup.

Magento 1 reached its official end-of-life in June 2020. Adobe (which acquired Magento in 2018) stopped providing security patches, forcing all Magento 1 merchants to plan a migration to Magento 2 or an alternative platform.

For Fleurance Nature, this meant the 60 custom modules built during the redesign would need to be rewritten or replaced. The heavy customization that made the platform powerful also made the eventual migration significantly more expensive and time-consuming.

Critical Reflection

Honest retrospective analysis

What Worked Well

Specification Quality

The 7-version specification process (30 to 50 pages) caught most edge cases before development. This upfront investment saved time during implementation and reduced the number of surprises during client testing.

Backward Compatibility Approach

The methodical approach to preserving existing functionality across 60 modules paid off. Production stayed stable throughout the migration, and no major regression reached end users.

Structured Deployment Pipeline

The 8-environment pipeline (local to production) with formal validation at each stage gave confidence in each release. Issues were caught early in integration or preprod, not in production.

What Could Be Improved

Staying on Magento 1 in 2017

Magento 2 was already available. Starting a 13-month project on Magento 1 in 2017 meant building on a platform with only 3 years of remaining support. A Magento 2 migration would have been more future-proof, though significantly more expensive at the time.

Artisanal Blog Integration

The WordPress-to-Magento blog integration via RSS feed parsing was fragile. A proper API-based integration or a headless CMS approach would have been more reliable for the 512 articles.

Pricing Complexity

The 4-group x 3-website pricing matrix (12 combinations) was documented but never simplified. The business rules could have been rationalized before implementation rather than faithfully reproducing all existing complexity.

Lasting Lessons
1

Well-written specifications reduce surprises during development - the 7-version process proved its value despite the time investment

2

Backward compatibility multiplies complexity exponentially - each new module interacts with all existing ones, and testing coverage grows quadratically

3

E-commerce pricing is always more complex than what the initial briefing suggests - hidden rules emerge during implementation, not during requirement gathering

Related journey

Professional experience linked to this achievement

Skills applied

Technical and soft skills applied

Image gallery

Project screenshots and visuals

Fleurance Nature homepage after the e-commerce redesign
Homepage - redesigned responsive front-end
Redmine issue tracker showing Fleurance Nature project tasks
Redmine - project management and issue tracking
Functional specifications document header for the Fleurance Nature redesign
Functional specifications - 7 versions, 30 to 50 pages
ElasticSearch specifications showing filter and facet architecture
ElasticSearch specifications - filter architecture
ElasticSearch specifications document cover page
ElasticSearch specifications - cover page
Gantt chart showing the 13-month project planning for the Fleurance Nature redesign
Project planning - Gantt chart over 13 months