Symfony2 & e-commerce
2
@fabien_gasser
 Consultant avant-vente @ Smile
 Ex Project Manager @ SensioLabs
 Passions : rap français – e-commerce...
3
Différents types d’e-commerces
 B2C
o e-shop : Unkut, Marketplace : Fnac, Drive : Chronodrive, Auchan Drive…
o Abonneme...
4
5
Catalogue
PIM
Clients
CRM
Compte
client
Commandes
Panier
Order
Manager
Symfony 2 et E-commerce
7
« Nous voulons faire de Symfony le standard du middleware PHP »
 Symfony 2 comme Middleware : le liant applicatif
 Le ...
8
Applications
Middleware
Database
Infrastructure
Commandes
PIM
ERP
CRM
Sf2 Middleware
BIDAM
ClientsCatalogue
Order
Manage...
9
Drupal
Leaphly
Vespolina
Sonata
10
Il est tentant de réunir l’ensemble des besoins dans une même
application.
 !!! Difficulté de maintenance
 !!! Règles...
11
Référentiel :
prix, produits,
stocks,
catégories
25%
Client
10%
Paiement
5%
Commande
20%
Flux
30%
SEO, analytics
2%
Rec...
12
13
Faisons des choses plus petites et réduisons le couplage !
 Core API
 Une gestion fine des ACL via un serveur oauth, ...
14
Desktop Tablet Mobile
Recherche
CSS
HTML
Javascript
Ressource
WebComposant
Commentaires
Panier
Recherche
Website
WebCom...
15
Représentation
 Hateoas + HAL
 json/xml/messagepack
 Microformats
Stateless : scalabilité horizontale
Sécurisé : SSL...
16
Redis : cache, session, queues
Videz le cache Varnish / CDN quand vous modifiez une information produit /
catalogue…
Si...
17
18
Référentiel
 Assets et images
Order Manager
Flux
Clients
 CRM
Recherche et recommandation
CMS
Paiement
Les soldes !!!
19
20
Construire un référentiel produits: Akeneo PIM
ERP
images
Sources de donnees
tierces
Videos
PIM
chercher
enrichir
tradu...
21
22
La gestion des images, medias :
 KnpLabs/KnpGaufretteBundle : s3, MongoGridFS
 Sonata Media Bundle
 Thumbor : servic...
23
La gestion des commandes est un des nerfs de la guerre
Créer une machine à état grâce aux bundles :
 github.com/yohang...
24
Un e-commerce est une solution dialoguant avec de nombreux
interlocuteurs
 ESB ERP CRM BI WMS DAM MARKETPLACE (lengow,...
25
Créer une base client unique et partagée avec vos différentes
applications
 Utilisateur :
o FosUserBundle
o HWIOAuthBu...
26
Rester en contact avec ses clients : OroCRM
 Segmentation client
 Tâches et rappels
 Processus de ventes
Des fonctio...
27
28
La Recherche :
 Intégration Elastic Search ou Solr pour indexer la PIM et bénéficier des avantages
d’un moteur de rech...
29
CMS & Merchandising : Drupal 8, Sulu CMF, Bolt
 Placer du contenu CMS pour faire vivre vos catégories
 Le contenu des...
30
Intégration des moyens de paiements
 Paiement : intégration d'un prestataire monétique :
o PayumBundle
 Utilisez un P...
31
200 pages / seconde et plus…
 Prévoir un fallback sur les pages les plus consommatrices : une version dégradée
de l’ap...
Comment construire un environnement e-commerce complet avec Symfony 2 ?
Prochain SlideShare
Chargement dans…5
×

Comment construire un environnement e-commerce complet avec Symfony 2 ?

13 567 vues

Publié le

Comment construire un environnement e-commerce complet avec Symfony 2 ?

Publié dans : Internet
0 commentaire
13 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
13 567
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3 301
Actions
Partages
0
Téléchargements
291
Commentaires
0
J’aime
13
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Comment construire un environnement e-commerce complet avec Symfony 2 ?

  1. 1. Symfony2 & e-commerce
  2. 2. 2 @fabien_gasser  Consultant avant-vente @ Smile  Ex Project Manager @ SensioLabs  Passions : rap français – e-commerce Smile intégrateur de solutions open source  Plus de 60 projets de plus 250 jours  Magento, Drupal, Jahia, Liferay, Sf2, Spring…  E-commerce o 10 millions de produits et plus… o 200 pages / secondes et plus o Multi Store, Multi Marchand, Multi Canaux, Marketplace…
  3. 3. 3 Différents types d’e-commerces  B2C o e-shop : Unkut, Marketplace : Fnac, Drive : Chronodrive, Auchan Drive… o Abonnement : Birchbox o Ventes flash : Voyages privés  B2B prix négocié par client : o gestion de CE, vente de voitures…  … Il faut concentrer ses forces sur le métier pour créer du lien avec le client et le faire revenir  Alternative : avoir un produit incroyable… sans aucune concurrence.
  4. 4. 4
  5. 5. 5 Catalogue PIM Clients CRM Compte client Commandes Panier Order Manager
  6. 6. Symfony 2 et E-commerce
  7. 7. 7 « Nous voulons faire de Symfony le standard du middleware PHP »  Symfony 2 comme Middleware : le liant applicatif  Le développement spécifique sert à combler le gap entre les progiciels référents et le besoin client. o Respect des domaines fonctionnels
  8. 8. 8 Applications Middleware Database Infrastructure Commandes PIM ERP CRM Sf2 Middleware BIDAM ClientsCatalogue Order Manager WebApp Borne Web CMS Recherche Panier Grid Tunnel Merch Search
  9. 9. 9 Drupal Leaphly Vespolina Sonata
  10. 10. 10 Il est tentant de réunir l’ensemble des besoins dans une même application.  !!! Difficulté de maintenance  !!! Règles métiers complexes et inutiles  Modification de la structure d’un outil Faire d’un blog un e-commerce…  Il faut séparer les deux applications o CMS o E-commerce  On ne fait pas des slides avec Excel !
  11. 11. 11 Référentiel : prix, produits, stocks, catégories 25% Client 10% Paiement 5% Commande 20% Flux 30% SEO, analytics 2% Recherche 8%
  12. 12. 12
  13. 13. 13 Faisons des choses plus petites et réduisons le couplage !  Core API  Une gestion fine des ACL via un serveur oauth, autres…  Concevoir des applications par domaine : faire peu mais faire mieux o Faciliter la mise à jour d’un service / sa maintenance / sa disponibilité  Oublions les applications monolithiques o La segmentation applicative à partir des Controlleur n’est pas suffisante  Et si on envisageait la segmentation par domaine fonctionnel ?
  14. 14. 14 Desktop Tablet Mobile Recherche CSS HTML Javascript Ressource WebComposant Commentaires Panier Recherche Website WebComposant Middleware API HATEOAS Json-ld ETL
  15. 15. 15 Représentation  Hateoas + HAL  json/xml/messagepack  Microformats Stateless : scalabilité horizontale Sécurisé : SSL + token Test facile et documentation automatique NelmioApiBundle Gestion de version applicative Varnish pour définir la fréquence de rafraichissement des données
  16. 16. 16 Redis : cache, session, queues Videz le cache Varnish / CDN quand vous modifiez une information produit / catalogue… Si vous n’avez pas de calcul à faire sur votre catalogue (création de vue), prix le plus le bas… Stockez le dans Solr ou Elasticsearch : scalable, API Rest Ayez des alertes sur vos services et flux : New Relic, Monitoring… N’ayez pas peur d’utiliser des services tiers :  Prediggo, Compario, LiveFyre, Gigya… Les bundles  Socle : MSSecurityExtraBundle, StofDoctrineExtensionBundle, LiipCacheControlBundle, MonologBundle, Symfony-cmf/Routing, TemplatedUriBundle  API : JMSSerializerBundle, FosRestBundle, BazingaHateoasBundle, NelmioApiDocBundle, BazingaFakerBundle
  17. 17. 17
  18. 18. 18 Référentiel  Assets et images Order Manager Flux Clients  CRM Recherche et recommandation CMS Paiement Les soldes !!!
  19. 19. 19
  20. 20. 20 Construire un référentiel produits: Akeneo PIM ERP images Sources de donnees tierces Videos PIM chercher enrichir traduire maintenir E-store Mobile Point de vente Print
  21. 21. 21
  22. 22. 22 La gestion des images, medias :  KnpLabs/KnpGaufretteBundle : s3, MongoGridFS  Sonata Media Bundle  Thumbor : service intelligent de gestion d’images (Détections de visages, motifs) Interface intelligente de gestion des medias ? Ckfinder ? Mise en place de queue de traitement asynchrone pour les traitements de masse.
  23. 23. 23 La gestion des commandes est un des nerfs de la guerre Créer une machine à état grâce aux bundles :  github.com/yohang/Finite  DoctrineStateMachineBundle Gestion des différents états de la commande ou du panier  Une tâche en parallèle vérifie les états des commandes pour déclencher des actions  Liée à des systèmes tiers comme la notification de paiement ou de remboursement, la gestion d’abonnement… Votre e-commerce n’est pas un outil de Business Intelligence, gardez uniquement des KPI simples sur votre interface d’administration
  24. 24. 24 Un e-commerce est une solution dialoguant avec de nombreux interlocuteurs  ESB ERP CRM BI WMS DAM MARKETPLACE (lengow, mirakl…) Dans différents formalismes :  SOAP REST EDI CSV...  HATEHOAS Messapack pour les applications mobiles Organisation votre modèle de données  Modèle de base pour gérer votre modèle  Créer des services pour manipuler vos interfaces SOAP / REST exposées MONITORER LES FLUX !!!
  25. 25. 25 Créer une base client unique et partagée avec vos différentes applications  Utilisateur : o FosUserBundle o HWIOAuthBundle o FosCommentBundle o …  SonataAdminBundle Centraliser les événements utilisateurs et suivre l’activité de ses utilisateurs  Real user monitoring / New Relic Insight
  26. 26. 26 Rester en contact avec ses clients : OroCRM  Segmentation client  Tâches et rappels  Processus de ventes Des fonctionnalités orientées e-commerce  Panier abandonné  Suivi utilisateur
  27. 27. 27
  28. 28. 28 La Recherche :  Intégration Elastic Search ou Solr pour indexer la PIM et bénéficier des avantages d’un moteur de recherche o API REST o Fonctionnalités liées à un moteur de recherche Recommandation : up sell, cross sell…  Ajout de la gestion d’affinité produit à chaque achat ou création de liste de produits pour effectuer un système de recommandation simple  Définition de règle métier avec ExpressionLanguage pour l’association de produit Intégrer des outils tiers : Prediggo, Fred Hopper, Compario…
  29. 29. 29 CMS & Merchandising : Drupal 8, Sulu CMF, Bolt  Placer du contenu CMS pour faire vivre vos catégories  Le contenu des experts, le rappel concernant la sécurité de paiements  ESI / SSI / Hinclude / pjax / turbolinks  Content as a Service / Data as a Service Sulu.io Pagekit
  30. 30. 30 Intégration des moyens de paiements  Paiement : intégration d'un prestataire monétique : o PayumBundle  Utilisez un PSP – payment service provider : be2bill, paybox… o Facilité d’ouverture de nouveaux de pays o Gestion de la fraude o API de gestion des paiements Paiement One-Click Paiement 3 x sans frais par CB (et relances automatique) Paiement à l’expéditionPaiement simple Remboursement partiel/total depuis le Back-Office Paiement Cross-Canal Autorisation simple (vérification de la validité de la carte)
  31. 31. 31 200 pages / seconde et plus…  Prévoir un fallback sur les pages les plus consommatrices : une version dégradée de l’application.  Prévoir son application stateless de façon à faciliter la scalabilité horizontale  Découplage des services et des sites  Ratchet ? WebRTC ? Hébergement scalable  Cluster de base de données et d’indexation  Création d’instance à la volée pour s’adapter à la charge : o Docker, Serf, Mesos…  Predictive auto-scaling (Scryer/Netflix) Traffic pattern : variable

×