SlideShare a Scribd company logo
GUAL
LTILIN
& MU
NAL
NATIO
ULTI
M
ERCE	

COMM
LE EUSAB
RE
FORM
PLAT
TUDY
ASE S
C
Maxime Topolov, @mtopolov	

CTO & Co-Founder of @Adyax	

6 years of Drupal pain :)
One of the
oldest
perfume
brands in
the world,
created in
1828.
Pierre-François-Pascal Guerlain
OBJECTIVES
An e-commerce site connected to SAP 	

with rich editorial content, 	

managing multiple countries and languages,	

where each country is independent, 	

where the content must be validated by France
except some...
Fluid front-end, that must work with IE6...
SOME NUMBERS
2
16
18
2,500

ERP, INCLUDING SAP
COUNTRIES, INCLUDING CHINA
LANGUAGES, 	

INCLUDING JAPANESE

PRODUCT REFERENCES
15,000
12
15
70
57

MAN HOURS

MONTHS OF DEVELOPMENT

PEOPLE

TEMPLATES

CONTENT TYPES
BASIC TECHNIQUES
Strategic choices
A single Drupal instance for all the sites.
Site launch is progressive, country by country.
Export and import of content via Excel.
Certain sites will be e-commerce, others won’t.
No Flash, in spite of luxurious environment.
COUNTRIES & LANGUAGES
SWITZERLAND

FR1

IT

CANADA

FR2

EN

FRANCE

FR3

SPAIN

ES

CHINA

CN

DE
Country

Country code

Language

Language code

International in EN

int

English

en

France

fr

French

fr

US

us

English US

en-us

UK

uk

English UK

en-uk

Middle-East

me

English Middle East

en-me

China

cn

Chinese

zh

Hong Kong

hk

Chinese

zh-hk

English

en-hk

Spain

es

Spain

es

Canada

ca

Canadian French

fr-ca

Canadian English

en-ca

Russia

ru

Russian

ru

Korea

ko

Korean

kr

Taiwan

tw

Simplified Chinese

zh-tw

Japan

jp

Japanese

ja

Brazil

br

Brazilian Portuguese

pt

Italy

it

Italian

it

Germany

ge

German

de
Management of languages based on several very
standard Drupal modules:
Localization Client (i10n_client)
Translation Template Extractor (potx)
Entity Translation (entity_translation)
Each country can be identified either by its
domain (guerlain.co.uk), or by a URL key
(guerlain.com/fr)

The Domain Access module (domain) offers
this feature on a platter.
Homepage copying	

Catalog structure configuration, product displays copying	

Magazine dossiers displays copying	

Menu, articles, consultations, social network configurations, …
Three features were essential:

1

A ‘central’ country where all original
content is first created

2

Possibility of copying all at once all
content of one language to another

3

Notification of countries in case of
modification of any content in the
‘central’ country
No workflow for the primary contents
(editorial, products). The countries are
responsible and have two versions at their
disposal (draft & published)	

!

A real workflow for the home pages
Content workflow
Translation workflow

When we say “content translation gets published”, it means:	

• Original language / Central: content is available for the
Countries' local translations;	

• Country local languages: content translation is available online
for the website users.
Specific problem: customization of forms
(inscription, newsletter) according to countries.
Take-home message:
Building the best possible, scalable multilanguagemulticountry perfect solution, with overrides,
notifications, permissions and complex workflow
is NOT WORKING.	

!

Client wants less features and a simple workflow,
even if it requires more manual work from their
contributors.
Entity translations vs i18n
Entity translation with best source idea, but with less
support - sucked. Since 2 years, we corrected several
issues, had many problems with client understanding
and support.
GEOLOCALIZATION
MaxMind
JS

Guerlain.com
Guerlain.com/es

Guerlain.com/fr
CDN
VARNISH
NGNIX
1. If “nogeoloc” parameter present in URL on the dispatch page,
geolocalization and automatic redirect won’t happen. User will
stay on the dispatch page.	

!

2. Otherwise script will check for the value of the “country”
cookie, and if it exists - will verify if this country is present in the
setting file to run redirect.	

!

3. If “country” cookie was not found - script will try to geolocate
user. If geolocated country is available present in “domains”
section of settings - country cookie will be populated or updated
with geolocated country and user will be redirected to the
appropriate local site. If geolocated country isn’t present in
settings - user will stay in the dispatch page.
IMPORT / EXPORT of content
We tried many formats to support XLS, one that
works with common PHP libs in most of cases is :
The Excel 97 - Excel 2003 Binary file format (BIFF8)
Feeds used to import data.
2 files: catalog and products/SKUs	

!

SKUs as well as products could have multiple
photos, so we also have: 	

!

A ZIP archive with media organized into folders
product/product-ID/xxxxx.jpeg	

or sku/sku-ID/xxxxx.jpeg
Product images: primary image list, N
zoomed images, background image, images
& video editorials	

!

SKU images: primary, list, background,
texture
No deletion (uniquely via BO)	

Import doesn’t make changes	

References to products still unknown	

All fields (40)
Architecture of a complex catalog
Family

Family

Group

Category

Group

Category

Category
ERP INTEGRATION
Orders, Clients
SKUs, Stock, 	

Order Status

XML	

SOAP
Working with SAP is not complicated, but
laborious. One command can be 5000 lines
of XML
We have created a tool to send an XML
command to SAP, directly from the Drupal
back-office	

!

In addition, we have put into place a log of
each communication (to & from) SAP that is
visible from the objects concerned
(command, user, SKU)
SSL
!

Setup of the Secure Pages
module	


CDN
VARNISH

!

Creation of the sub-domain
wws	

!

SSL = User Data (Cart, MyAccount)	


NGNIX
DRUPAL
Secure Pages
Necessary to port the Secure Pages Domain
Access module (securepages_domain).	

!

For submission + redirection of all user forms.
Secure vs insecure / http vs https 	

!

Start development with activating all https
support. Define https urls at every beginning!
Do think about cross-site scripting and ajax, if
urls differ. Secured cookies.	

!

Idea: start thinking secure from the beginning
of every project.
SMOOTH FRONT-END
OOOOOPTIMIZATIONS
ESI

CDN

BLOCS JS

VARNISH

STATIC.GUERLAIN.COM

NGNIX

MEMCACHE

DRUPAL

ENTITY CACHE

VIEWS CACHE
Never underestimate performance tuning. 	

!

Start first Sprint by activating all performance
related modules - memcache, entity-cache,
adv-agg, Varnish/purge, etc. 	

!

Test your deliveries with all those that have
been activated, measure load/server responses
starting from Sprint 1, force your teams to
develop in a performance-oriented way.	

!

Idea: Ecommerce is performance-oriented
development.
Did you know that cache-form is a table that grows
progressively and never cleans? 	

!

Mimics cache storage, but used in another way? 	

!

Did you know that Drupal commerce locks the
tables, while committing updates? Any intensive
Ecommerce sites will experience hard locks in
order tables?	

!

Idea: never over-estimate Drupal way, have an eye
on everything (logs, tuning, etc,) and give back to
the community.
DRUPAL ?
makeupforever.com

From re-use to platform
Countries, Languages, Multi-site system:
100% re-use of modules developed for
Guerlain	

!

Import/Export, Workflow: partial re-use	

!

ERP: connectors to SAP or JDEdwards
may be partially exchanged	

!

Same platform: features may be easily
exchanged
Number one Drupal
Integrator in Europe

More Related Content

Similar to Multiple countries & multilingual e-commerce platforms using Drupal

E-commerce in Action
E-commerce in ActionE-commerce in Action
E-commerce in Action
Exove
 
Fuga deck final
Fuga deck finalFuga deck final
Fuga deck final
Netanel Mohoni
 
OpenCart: The Powerful Open-Source eCommerce Platform
OpenCart: The Powerful Open-Source eCommerce PlatformOpenCart: The Powerful Open-Source eCommerce Platform
OpenCart: The Powerful Open-Source eCommerce Platform
Perzonalization Team
 
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
DeeDee Kato
 
The Google Analytics API and Analytics Canvas
The Google Analytics API and Analytics CanvasThe Google Analytics API and Analytics Canvas
The Google Analytics API and Analytics Canvas
nModal Solutions Inc.
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
Utkarsh Shukla
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
La FeWeb
 
Nagarjuna_Damarla
Nagarjuna_DamarlaNagarjuna_Damarla
Nagarjuna_Damarla
Nag Arjun
 
Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.
Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.
Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.
Chris Laning
 
Pushpendra
PushpendraPushpendra
Pushpendra
Pushpendra Kumar
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
Divante
 
CharlesSweetResume06155122015
CharlesSweetResume06155122015CharlesSweetResume06155122015
CharlesSweetResume06155122015
Charlie Sweet
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content Authors
Rachel Wandishin
 
Me_Ishendu_Resume_Latest_March_2024.docx
Me_Ishendu_Resume_Latest_March_2024.docxMe_Ishendu_Resume_Latest_March_2024.docx
Me_Ishendu_Resume_Latest_March_2024.docx
Ishendu Agrawal
 
Tarek yehiacv
Tarek yehiacvTarek yehiacv
Tarek yehiacv
Tarek Yehia
 
Accelerate Big Data Application Development with Cascading
Accelerate Big Data Application Development with CascadingAccelerate Big Data Application Development with Cascading
Accelerate Big Data Application Development with Cascading
Cascading
 
Build your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App EngineBuild your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App Engine
Jl_Ugia
 
Scaling an eCommerce environment
Scaling an eCommerce environmentScaling an eCommerce environment
Scaling an eCommerce environment
Sander Mangel
 
Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...
Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...
Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...
Giuseppe Cardace
 
Integrating hat content into mobile app lavacon
Integrating hat content into mobile app   lavaconIntegrating hat content into mobile app   lavacon
Integrating hat content into mobile app lavacon
Neil Perlin
 

Similar to Multiple countries & multilingual e-commerce platforms using Drupal (20)

E-commerce in Action
E-commerce in ActionE-commerce in Action
E-commerce in Action
 
Fuga deck final
Fuga deck finalFuga deck final
Fuga deck final
 
OpenCart: The Powerful Open-Source eCommerce Platform
OpenCart: The Powerful Open-Source eCommerce PlatformOpenCart: The Powerful Open-Source eCommerce Platform
OpenCart: The Powerful Open-Source eCommerce Platform
 
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
Sapphire 2013 Presentation - Streamlining SAP Transactions for Barcode Scanne...
 
The Google Analytics API and Analytics Canvas
The Google Analytics API and Analytics CanvasThe Google Analytics API and Analytics Canvas
The Google Analytics API and Analytics Canvas
 
Busy Bee Application Develompent Platform
Busy Bee Application Develompent PlatformBusy Bee Application Develompent Platform
Busy Bee Application Develompent Platform
 
NoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learnedNoSQL into E-Commerce: lessons learned
NoSQL into E-Commerce: lessons learned
 
Nagarjuna_Damarla
Nagarjuna_DamarlaNagarjuna_Damarla
Nagarjuna_Damarla
 
Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.
Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.
Taming the Legacy Beast: Turning wild old code into a sleak new thoroughbread.
 
Pushpendra
PushpendraPushpendra
Pushpendra
 
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentationvue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
vue-storefront - PWA eCommerce for Magento2 MM17NYC presentation
 
CharlesSweetResume06155122015
CharlesSweetResume06155122015CharlesSweetResume06155122015
CharlesSweetResume06155122015
 
Demystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content AuthorsDemystifying Decoupled Drupal for Developers & Content Authors
Demystifying Decoupled Drupal for Developers & Content Authors
 
Me_Ishendu_Resume_Latest_March_2024.docx
Me_Ishendu_Resume_Latest_March_2024.docxMe_Ishendu_Resume_Latest_March_2024.docx
Me_Ishendu_Resume_Latest_March_2024.docx
 
Tarek yehiacv
Tarek yehiacvTarek yehiacv
Tarek yehiacv
 
Accelerate Big Data Application Development with Cascading
Accelerate Big Data Application Development with CascadingAccelerate Big Data Application Development with Cascading
Accelerate Big Data Application Development with Cascading
 
Build your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App EngineBuild your cross-platform service in a week with App Engine
Build your cross-platform service in a week with App Engine
 
Scaling an eCommerce environment
Scaling an eCommerce environmentScaling an eCommerce environment
Scaling an eCommerce environment
 
Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...
Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...
Useful tools & apps for Salesforce Admins - Salesforce Lausanne, Switzerland ...
 
Integrating hat content into mobile app lavacon
Integrating hat content into mobile app   lavaconIntegrating hat content into mobile app   lavacon
Integrating hat content into mobile app lavacon
 

More from Adyax

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€
Adyax
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec Drupal
Adyax
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
Adyax
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
Adyax
 
Drupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesDrupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimates
Adyax
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Adyax
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de Drupal
Adyax
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
Adyax
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
Adyax
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
Adyax
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
Adyax
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans Drupal
Adyax
 
Varnish
VarnishVarnish
Varnish
Adyax
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
Adyax
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-Commerce
Adyax
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactiles
Adyax
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile Drupal
Adyax
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
Adyax
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food Programme
Adyax
 
Learn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frLearn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.fr
Adyax
 

More from Adyax (20)

Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€Growing a Drupalshop from 1 to 12M€
Growing a Drupalshop from 1 to 12M€
 
Applications métier avec Drupal
Applications métier avec DrupalApplications métier avec Drupal
Applications métier avec Drupal
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
 
Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
 
Drupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimatesDrupal fixed budget projets : the art of estimates
Drupal fixed budget projets : the art of estimates
 
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAPRéaliser un site e-commerce multi-pays et multilingue connecté à SAP
Réaliser un site e-commerce multi-pays et multilingue connecté à SAP
 
Présentation de Drupal
Présentation de DrupalPrésentation de Drupal
Présentation de Drupal
 
Cours 3/3 - Architecture Web
Cours 3/3 - Architecture WebCours 3/3 - Architecture Web
Cours 3/3 - Architecture Web
 
Cours 2/3 - Architecture Web
Cours 2/3 - Architecture WebCours 2/3 - Architecture Web
Cours 2/3 - Architecture Web
 
Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"Cours 1/3 "Architecture Web"
Cours 1/3 "Architecture Web"
 
Gestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec DrupalGestion multi-pays & multilingue avec Drupal
Gestion multi-pays & multilingue avec Drupal
 
Gestion des médias dans Drupal
Gestion des médias dans DrupalGestion des médias dans Drupal
Gestion des médias dans Drupal
 
Varnish
VarnishVarnish
Varnish
 
La mobilité dans Drupal
La mobilité dans DrupalLa mobilité dans Drupal
La mobilité dans Drupal
 
Drupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-CommerceDrupal + Magento pour la plus puissante plateforme e-Commerce
Drupal + Magento pour la plus puissante plateforme e-Commerce
 
eCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactileseCommerce sur Ipad et autres tablettes tactiles
eCommerce sur Ipad et autres tablettes tactiles
 
For a Social Local and Mobile Drupal
For a Social Local and Mobile DrupalFor a Social Local and Mobile Drupal
For a Social Local and Mobile Drupal
 
Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Drupal usage by example : World Food Programme
Drupal usage by example : World Food ProgrammeDrupal usage by example : World Food Programme
Drupal usage by example : World Food Programme
 
Learn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.frLearn How and Why Drupal was used for www.gouvernement.fr
Learn How and Why Drupal was used for www.gouvernement.fr
 

Recently uploaded

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
Ajin Abraham
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
christinelarrosa
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
LizaNolte
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
Vadym Kazulkin
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
ScyllaDB
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
Safe Software
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
operationspcvita
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
zjhamm304
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
BibashShahi
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
Fwdays
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
DianaGray10
 

Recently uploaded (20)

Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
AppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSFAppSec PNW: Android and iOS Application Security with MobSF
AppSec PNW: Android and iOS Application Security with MobSF
 
Christine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptxChristine's Supplier Sourcing Presentaion.pptx
Christine's Supplier Sourcing Presentaion.pptx
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillinQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
inQuba Webinar Mastering Customer Journey Management with Dr Graham Hill
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024High performance Serverless Java on AWS- GoTo Amsterdam 2024
High performance Serverless Java on AWS- GoTo Amsterdam 2024
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
ScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking ReplicationScyllaDB Tablets: Rethinking Replication
ScyllaDB Tablets: Rethinking Replication
 
Essentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation ParametersEssentials of Automations: Exploring Attributes & Automation Parameters
Essentials of Automations: Exploring Attributes & Automation Parameters
 
The Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptxThe Microsoft 365 Migration Tutorial For Beginner.pptx
The Microsoft 365 Migration Tutorial For Beginner.pptx
 
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...QA or the Highway - Component Testing: Bridging the gap between frontend appl...
QA or the Highway - Component Testing: Bridging the gap between frontend appl...
 
Principle of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptxPrinciple of conventional tomography-Bibash Shahi ppt..pptx
Principle of conventional tomography-Bibash Shahi ppt..pptx
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
"What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w..."What does it really mean for your system to be available, or how to define w...
"What does it really mean for your system to be available, or how to define w...
 
What is an RPA CoE? Session 1 – CoE Vision
What is an RPA CoE?  Session 1 – CoE VisionWhat is an RPA CoE?  Session 1 – CoE Vision
What is an RPA CoE? Session 1 – CoE Vision
 

Multiple countries & multilingual e-commerce platforms using Drupal

  • 2. Maxime Topolov, @mtopolov CTO & Co-Founder of @Adyax 6 years of Drupal pain :)
  • 3.
  • 4. One of the oldest perfume brands in the world, created in 1828.
  • 6.
  • 7.
  • 8.
  • 10. An e-commerce site connected to SAP with rich editorial content, managing multiple countries and languages, where each country is independent, where the content must be validated by France except some... Fluid front-end, that must work with IE6...
  • 12. 2 16 18 2,500 ERP, INCLUDING SAP COUNTRIES, INCLUDING CHINA LANGUAGES, INCLUDING JAPANESE PRODUCT REFERENCES
  • 13. 15,000 12 15 70 57 MAN HOURS MONTHS OF DEVELOPMENT PEOPLE TEMPLATES CONTENT TYPES
  • 15.
  • 16. Strategic choices A single Drupal instance for all the sites. Site launch is progressive, country by country. Export and import of content via Excel. Certain sites will be e-commerce, others won’t. No Flash, in spite of luxurious environment.
  • 17.
  • 20. Country Country code Language Language code International in EN int English en France fr French fr US us English US en-us UK uk English UK en-uk Middle-East me English Middle East en-me China cn Chinese zh Hong Kong hk Chinese zh-hk English en-hk Spain es Spain es Canada ca Canadian French fr-ca Canadian English en-ca Russia ru Russian ru Korea ko Korean kr Taiwan tw Simplified Chinese zh-tw Japan jp Japanese ja Brazil br Brazilian Portuguese pt Italy it Italian it Germany ge German de
  • 21. Management of languages based on several very standard Drupal modules: Localization Client (i10n_client) Translation Template Extractor (potx) Entity Translation (entity_translation)
  • 22.
  • 23. Each country can be identified either by its domain (guerlain.co.uk), or by a URL key (guerlain.com/fr) The Domain Access module (domain) offers this feature on a platter.
  • 24. Homepage copying Catalog structure configuration, product displays copying Magazine dossiers displays copying Menu, articles, consultations, social network configurations, …
  • 25. Three features were essential: 1 A ‘central’ country where all original content is first created 2 Possibility of copying all at once all content of one language to another 3 Notification of countries in case of modification of any content in the ‘central’ country
  • 26. No workflow for the primary contents (editorial, products). The countries are responsible and have two versions at their disposal (draft & published) ! A real workflow for the home pages
  • 28. Translation workflow When we say “content translation gets published”, it means: • Original language / Central: content is available for the Countries' local translations; • Country local languages: content translation is available online for the website users.
  • 29. Specific problem: customization of forms (inscription, newsletter) according to countries.
  • 30.
  • 31. Take-home message: Building the best possible, scalable multilanguagemulticountry perfect solution, with overrides, notifications, permissions and complex workflow is NOT WORKING. ! Client wants less features and a simple workflow, even if it requires more manual work from their contributors.
  • 32. Entity translations vs i18n Entity translation with best source idea, but with less support - sucked. Since 2 years, we corrected several issues, had many problems with client understanding and support.
  • 35.
  • 36. 1. If “nogeoloc” parameter present in URL on the dispatch page, geolocalization and automatic redirect won’t happen. User will stay on the dispatch page. ! 2. Otherwise script will check for the value of the “country” cookie, and if it exists - will verify if this country is present in the setting file to run redirect. ! 3. If “country” cookie was not found - script will try to geolocate user. If geolocated country is available present in “domains” section of settings - country cookie will be populated or updated with geolocated country and user will be redirected to the appropriate local site. If geolocated country isn’t present in settings - user will stay in the dispatch page.
  • 37. IMPORT / EXPORT of content
  • 38. We tried many formats to support XLS, one that works with common PHP libs in most of cases is : The Excel 97 - Excel 2003 Binary file format (BIFF8) Feeds used to import data.
  • 39.
  • 40. 2 files: catalog and products/SKUs ! SKUs as well as products could have multiple photos, so we also have: ! A ZIP archive with media organized into folders product/product-ID/xxxxx.jpeg or sku/sku-ID/xxxxx.jpeg
  • 41. Product images: primary image list, N zoomed images, background image, images & video editorials ! SKU images: primary, list, background, texture
  • 42. No deletion (uniquely via BO) Import doesn’t make changes References to products still unknown All fields (40)
  • 43. Architecture of a complex catalog Family Family Group Category Group Category Category
  • 45. Orders, Clients SKUs, Stock, Order Status XML SOAP
  • 46. Working with SAP is not complicated, but laborious. One command can be 5000 lines of XML
  • 47. We have created a tool to send an XML command to SAP, directly from the Drupal back-office ! In addition, we have put into place a log of each communication (to & from) SAP that is visible from the objects concerned (command, user, SKU)
  • 48.
  • 49.
  • 50. SSL
  • 51. ! Setup of the Secure Pages module CDN VARNISH ! Creation of the sub-domain wws ! SSL = User Data (Cart, MyAccount) NGNIX DRUPAL Secure Pages
  • 52. Necessary to port the Secure Pages Domain Access module (securepages_domain). ! For submission + redirection of all user forms.
  • 53. Secure vs insecure / http vs https ! Start development with activating all https support. Define https urls at every beginning! Do think about cross-site scripting and ajax, if urls differ. Secured cookies. ! Idea: start thinking secure from the beginning of every project.
  • 55.
  • 58. Never underestimate performance tuning. ! Start first Sprint by activating all performance related modules - memcache, entity-cache, adv-agg, Varnish/purge, etc. ! Test your deliveries with all those that have been activated, measure load/server responses starting from Sprint 1, force your teams to develop in a performance-oriented way. ! Idea: Ecommerce is performance-oriented development.
  • 59. Did you know that cache-form is a table that grows progressively and never cleans? ! Mimics cache storage, but used in another way? ! Did you know that Drupal commerce locks the tables, while committing updates? Any intensive Ecommerce sites will experience hard locks in order tables? ! Idea: never over-estimate Drupal way, have an eye on everything (logs, tuning, etc,) and give back to the community.
  • 62. Countries, Languages, Multi-site system: 100% re-use of modules developed for Guerlain ! Import/Export, Workflow: partial re-use ! ERP: connectors to SAP or JDEdwards may be partially exchanged ! Same platform: features may be easily exchanged