• 1. Symfony2 & e-commerce
  • 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 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
  • 5. 5 Catalogue PIM Clients CRM Compte client Commandes Panier Order Manager
  • 6. Symfony 2 et E-commerce
  • 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 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 Drupal Leaphly Vespolina Sonata
  • 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 Référentiel : prix, produits, stocks, catégories 25% Client 10% Paiement 5% Commande 20% Flux 30% SEO, analytics 2% Recherche 8%
  • 12. 12
  • 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 Desktop Tablet Mobile Recherche CSS HTML Javascript Ressource WebComposant Commentaires Panier Recherche Website WebComposant Middleware API HATEOAS Json-ld ETL
  • 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 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
  • 18. 18 Référentiel  Assets et images Order Manager Flux Clients  CRM Recherche et recommandation CMS Paiement Les soldes !!!
  • 19. 19
  • 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
  • 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 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 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 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 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
  • 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 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 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 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
Please download to view
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
...

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

by fabien-gasser

on

Report

Category:

Internet

Download: 0

Comment: 0

4,810

views

Comments

Description

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

Transcript

  • 1. Symfony2 & e-commerce
  • 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 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
  • 5. 5 Catalogue PIM Clients CRM Compte client Commandes Panier Order Manager
  • 6. Symfony 2 et E-commerce
  • 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 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 Drupal Leaphly Vespolina Sonata
  • 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 Référentiel : prix, produits, stocks, catégories 25% Client 10% Paiement 5% Commande 20% Flux 30% SEO, analytics 2% Recherche 8%
  • 12. 12
  • 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 Desktop Tablet Mobile Recherche CSS HTML Javascript Ressource WebComposant Commentaires Panier Recherche Website WebComposant Middleware API HATEOAS Json-ld ETL
  • 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 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
  • 18. 18 Référentiel  Assets et images Order Manager Flux Clients  CRM Recherche et recommandation CMS Paiement Les soldes !!!
  • 19. 19
  • 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
  • 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 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 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 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 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
  • 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 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 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 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
Fly UP