MULTINATIONAL & MULTILINGUAL
REUSABLE E-COMMERCE	

PLATFORM
CASE STUDY
MaximeTopolov, @mtopolov	

CTO & Co-Founder of @Adyax
Arthur Murauskas, 	

Associate Director & Drupal Architect @Adyax
OBJECTIVES
http://www.guerlain.com/int/en-int
http://www.makeupforever.com/us/en-us
An e-commerce site connected to SAP 	

with rich editorial content, 	

managing multiple countries and languages,	

where ...
Make Up For Ever
An e-commerce ready site that will be connected
to Biz-Talk with rich editorial content, 	

managing mult...
KEY NUMBERS
2,500
16
25
2ERP, INCLUDING SAP
COUNTRIES, INCLUDING CHINA
LANGUAGES, 	

INCLUDING JAPANESE
PRODUCT REFERENCES
70
12
15
15,000 MAN HOURS
MONTHS OF DEVELOPMENT
PEOPLE
TEMPLATES 57CONTENTTYPES
BASICTECHNIQUES
Main features
A single Drupal instance for all the sites.
Site launch is progressive, country by country.
Export and impor...
COUNTRIES & LANGUAGES
CANADA
FRANCE
SPAIN
CHINA
FR2 EN
FR3
ES
CN
SWITZERLAND FR1 IT DE
Country Country code Language Language code
International in EN int English en
France fr French fr
US us English US en-us
...
Management of languages based on several very
standard Drupal modules:
Localization Client (i10n_client)
TranslationTempla...
Why entity_translation?
It’s logical :)
There are no “duplicate” translation nodes
Entity translation is in D8 Core
Not al...
Three features were essential:
1
2
3
A ‘central’ country where all original
content is first created
Possibility of copyin...
Each country can be identified either by its
domain (guerlain.co.uk), or by a URL key
(guerlain.com/fr)
OK, but what is a ...
The Domain Access module (domain) offers
this feature on a platter.
Copy and pre-fill translations from source
Copy structure: menu, taxonomy, etc
EN-EN
EN-US EN-CA FR-FR
FR-BE
No revisions (btw, entity_translation do not
support them). Country editors are responsible
and have two versions at their...
Content workflow
When we say “content translation gets published”, it means:	

• Original language / Central: content is available for the
...
Problem 1: customisation of forms (contact us,
newsletter) according to countries.
Problem 2: difficulties with interface ...
Take-home message:
Building the best possible, scalable multilanguage-
multicountry perfect solution, with overrides,
noti...
GEOLOCATION
Guerlain.com/es Guerlain.com/fr
CDN
VARNISH
NGNIX
Guerlain.comJS
MaxMind
IMPORT / EXPORT of content
Import of Products & SKUs with their Media
Import of Categories
Import of Stores
The Excel 97 - Excel 2003 Binary file format (BIFF8)
We tried many formats to support XLS, one that
works with common PHP ...
SKUs as well as products could have multiple
photos, so we also have: 	

!
A ZIP archive with media organized into folders...
ERP INTEGRATION
Orders,Clients
SKUs,Stock,	

OrderStatus
XML	

SOAP
Working with SAP is not complicated, but
laborious. One order 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 in...
SSL
!
Setup of the Secure Pages
module	

!
Creation of the sub-domain
wws	

!
SSL = User Data (Cart, My-
Account)	

CDN
VARNIS...
Secure vs insecure / http vs https 	

!
Start development with activating all https
support. Define https urls at the very...
SMOOTH FRONT-END
OOOOOPTIMIZATIONS
CDN
VARNISH
NGNIX
DRUPAL
ESI
BLOCS JS
STATIC.GUERLAIN.COM
MEMCACHE
ENTITY CACHE VIEWS CACHE
Never underestimate performance tuning. 	

!
Start first Sprint by activating all performance
related modules - memcache, ...
From re-use to platform
makeupforever.com
Countries, Languages, Multi-site system:
Re-use of modules	

!
Import/Export,Workflow: partial re-use	

!
ERP: connectors ...
WHY DRUPAL?
Open Source, with the largest community in the
world = no lock down	

!
20,000 existing and modules = maintainable	

!
Rob...
Number one (or two ;)
Drupal Shop in EMEA
Thanks !You can
download slides of
this presentation	

on slideshare !
OR
Throw us
rotten
tomates !
@Adyax
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014
Upcoming SlideShare
Loading in …5
×

Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014

3,037 views

Published on

Building a multilingual & multi-country e-commerce site with Drupal 7

Published in: Internet, Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,037
On SlideShare
0
From Embeds
0
Number of Embeds
22
Actions
Shares
0
Downloads
29
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Building a multilingual & multi-country e-commerce site with Drupal 7 @ NYC Camp 2014

  1. 1. MULTINATIONAL & MULTILINGUAL REUSABLE E-COMMERCE PLATFORM CASE STUDY
  2. 2. MaximeTopolov, @mtopolov CTO & Co-Founder of @Adyax Arthur Murauskas, Associate Director & Drupal Architect @Adyax
  3. 3. OBJECTIVES
  4. 4. http://www.guerlain.com/int/en-int
  5. 5. http://www.makeupforever.com/us/en-us
  6. 6. 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... Guerlain
  7. 7. Make Up For Ever An e-commerce ready site that will be connected to Biz-Talk with rich editorial content, managing multiple countries and languages, where each country is independent, where the content must be validated by France easy, right? Full responsive with IE7 support LOTS of huge HD images
  8. 8. KEY NUMBERS
  9. 9. 2,500 16 25 2ERP, INCLUDING SAP COUNTRIES, INCLUDING CHINA LANGUAGES, INCLUDING JAPANESE PRODUCT REFERENCES
  10. 10. 70 12 15 15,000 MAN HOURS MONTHS OF DEVELOPMENT PEOPLE TEMPLATES 57CONTENTTYPES
  11. 11. BASICTECHNIQUES
  12. 12. Main features A single Drupal instance for all the sites. Site launch is progressive, country by country. Export and import of content in Excel format. Certain sites will be e-commerce, others won’t. Robust translation and publication workflow with alerts.
  13. 13. COUNTRIES & LANGUAGES
  14. 14. CANADA FRANCE SPAIN CHINA FR2 EN FR3 ES CN SWITZERLAND FR1 IT DE
  15. 15. 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
  16. 16. Management of languages based on several very standard Drupal modules: Localization Client (i10n_client) TranslationTemplate Extractor (potx) EntityTranslation (entity_translation)
  17. 17. Why entity_translation? It’s logical :) There are no “duplicate” translation nodes Entity translation is in D8 Core Not all the fields should be translated
  18. 18. Three features were essential: 1 2 3 A ‘central’ country where all original content is first created Possibility of copying all content of one language to another Notification of countries in case of modification of any content in the ‘central’ country
  19. 19. Each country can be identified either by its domain (guerlain.co.uk), or by a URL key (guerlain.com/fr) OK, but what is a country? Each country has specific settings, admin users
  20. 20. The Domain Access module (domain) offers this feature on a platter.
  21. 21. Copy and pre-fill translations from source Copy structure: menu, taxonomy, etc
  22. 22. EN-EN EN-US EN-CA FR-FR FR-BE
  23. 23. No revisions (btw, entity_translation do not support them). Country editors are responsible and have two versions at their disposal (draft & published)
  24. 24. Content workflow
  25. 25. 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. Translation workflow
  26. 26. Problem 1: customisation of forms (contact us, newsletter) according to countries. Problem 2: difficulties with interface translation
  27. 27. Take-home message: Building the best possible, scalable multilanguage- multicountry perfect solution, with overrides, notifications, permissions and complex workflow works fine but IS NOT USED. ! Client wants less features and a simple workflow, even if it requires more manual work from their contributors.
  28. 28. GEOLOCATION
  29. 29. Guerlain.com/es Guerlain.com/fr CDN VARNISH NGNIX Guerlain.comJS MaxMind
  30. 30. IMPORT / EXPORT of content
  31. 31. Import of Products & SKUs with their Media Import of Categories Import of Stores
  32. 32. The Excel 97 - Excel 2003 Binary file format (BIFF8) We tried many formats to support XLS, one that works with common PHP libs in most of cases is : Feeds used to import data.
  33. 33. 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
  34. 34. ERP INTEGRATION
  35. 35. Orders,Clients SKUs,Stock, OrderStatus XML SOAP
  36. 36. Working with SAP is not complicated, but laborious. One order can be 5000 lines of XML
  37. 37. 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)
  38. 38. SSL
  39. 39. ! Setup of the Secure Pages module ! Creation of the sub-domain wws ! SSL = User Data (Cart, My- Account) CDN VARNISH NGNIX DRUPAL Secure Pages
  40. 40. Secure vs insecure / http vs https ! Start development with activating all https support. Define https urls at the very beginning! Do think about cross-site scripting and AJAX if urls differ. Secured cookies. ! Idea: start thinking secure from the beginning of every project.
  41. 41. SMOOTH FRONT-END
  42. 42. OOOOOPTIMIZATIONS
  43. 43. CDN VARNISH NGNIX DRUPAL ESI BLOCS JS STATIC.GUERLAIN.COM MEMCACHE ENTITY CACHE VIEWS CACHE
  44. 44. 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.
  45. 45. From re-use to platform makeupforever.com
  46. 46. Countries, Languages, Multi-site system: Re-use of modules ! Import/Export,Workflow: partial re-use ! ERP: connectors to SAP or JDEdwards may be partially exchanged ! Same platform: features may be exchanged
  47. 47. WHY DRUPAL?
  48. 48. Open Source, with the largest community in the world = no lock down ! 20,000 existing and modules = maintainable ! Robust and tested: 13 years,White House,The Economist, BBC,Warner… ! Flexible: How to’s, UGC, video sections, personalization, engraving, community, academy, mini-sites…
  49. 49. Number one (or two ;) Drupal Shop in EMEA
  50. 50. Thanks !You can download slides of this presentation on slideshare ! OR Throw us rotten tomates ! @Adyax

×