Retour d'expérience sur la réalisation d'un gros site e-commerce international, multi-pays et multilingue, connecté à SAP.
Session donnée lors du Drupal Camp Paris 2013.
Gestion de plusieurs pays et des workflows associés
Import et export du contenu
Optimisations et intégration CDN
Problématiques SSL
Géo-localisation par IP
4. Un site e-commerce connecté à SAP
gérant plusieurs pays et plusieurs langues,
où chaque pays est indépendant,
où les contenus doivent être validés par la France,
sauf certains...
Front-end fluide, qui marche sur IE6...
avec un contenu éditorial riche,
lundi 24 juin 13
10. CHOIX STRATÉGIQUES
Une seule instance Drupal pour tous les sites
Le lancement des sites sera progressif, pays par pays
Export et import des contenus via Excel
Certains sites seront e-commerce, d’autres pas
Pas de flash, malgré l’environnement luxe
lundi 24 juin 13
14. La gestion des langues s’appuie sur plusieurs
modules très standard de Drupal :
Localization Client (i10n_client)
TranslationTemplate Extractor (potx)
EntityTranslation (entity_translation)
lundi 24 juin 13
16. t($string, array $args = array(), array $options = array())
Utiliser t() est une obligation.
Utiliser $context dans les $options
est très conseillé pour aider à la traduction
lundi 24 juin 13
17. Chaque pays peut être identifié, soit par son
domaine (marque.co.uk), soit par une clef URL
(marque.com/fr_FR)
Le module Domain Access (domain) nous
offre cette fonctionnalité sur un plateau.
lundi 24 juin 13
18. Trois fonctionnalités sont primordiales :
1
2
3
Un pays ‘central’, où tout contenu original
est d’abord crée.
Possibilité de copier en masse tous les
contenus d’une langue vers une autre
Notification des pays en cas de
modification d’un contenu en ‘central’
lundi 24 juin 13
19. Pas de workflow pour les contenus principaux
(éditorial, produits). Les pays sont responsables
et on deux versions à leur disposition.
Un vrai workflow pour les pages d’accueil
lundi 24 juin 13
25. Travailler avec SAP n’est pas complexe, mais
laborieux. Une commande peut faire 5000
lignes XML.
lundi 24 juin 13
26. Créez-vous un outil pour envoyer, depuis le
back-office Drupal, un XML vers SAP.
Par ailleurs, créez un log de chaque
communication (entrante & sortante) avec
SAP visible depuis les objets concernés
(commande, utilisateur, SKU)
lundi 24 juin 13
30. 2 fichiers : catalogue et produits/SKUs
Aussi bien les SKUs que les produits peuvent
avoir plusieurs photos, donc on a aussi :
une archive ZIP avec les médias organisés en
répertoires product/product-ID/xxxxx.jpeg
ou sku/sku-ID/xxxxx.jpeg
lundi 24 juin 13
31. Images produits : image principale, liste, N
images zoom, image de fond, images &
vidéos éditoriales
Images SKU : principale, liste, fond, texture
lundi 24 juin 13
32. Pas de suppression (uniquement via BO)
Import ne crée pas de révisions
Références vers produits encore inconnus
Tous les champs (40)
lundi 24 juin 13
33. Architecture du catalogue complexe
Famille
Famille Groupe Catégorie
Groupe Catégorie
Catégorie
lundi 24 juin 13
39. Item clairement sous-estimé.
L’idée était de “simplement”
mettre en place le module
Secure Pages.
Création d’un sous domaine
wws
SSL = User Data (Panier,
Mon-Compte)
CDN
VARNISH
NGNIX
DRUPAL
Secure Pages
lundi 24 juin 13
40. Surprise coté Drupal également.
Toutes nos actions liées aux contenus utilisateurs sont
effectuées en AJAX.
Or, si contenu utilisateur = SSL
et que SSL = sous-domaine
Oops
lundi 24 juin 13
41. Du coup nécessité de porter le module Secure
Pages Domain Access (securepages_domain).
Pour tous les formulaires utilisateur soumission
+ redirection.
lundi 24 juin 13
47. L’import et l’export du contenu est
laborieux à faire marcher
SSL, CDN, Création des pays, géolocalisation...
Le faire à la fin est une erreur
Même quand il n’y a rien à optimiser, on peut
encore optimiser.
La notion de Pays / Langues et workflow
associés est complexe à expliquer.
lundi 24 juin 13