SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Symfony2 & e-commerce
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
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
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 développement spécifique sert à combler le gap entre les progiciels référents et
le besoin client.
o Respect des domaines fonctionnels
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
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 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
Référentiel :
prix, produits,
stocks,
catégories
25%
Client
10%
Paiement
5%
Commande
20%
Flux
30%
SEO, analytics
2%
Recherche
8%
12
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
Desktop Tablet Mobile
Recherche
CSS
HTML
Javascript
Ressource
WebComposant
Commentaires
Panier
Recherche
Website
WebComposant
Middleware
API HATEOAS
Json-ld
ETL
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
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
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
traduire
maintenir
E-store
Mobile
Point de vente
Print
21
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
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
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
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
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
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
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
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
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
Comment construire un environnement e-commerce complet avec Symfony 2 ?

Contenu connexe

Tendances

Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applicationsMohammed Jaafar
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigAbdelkader Rhouati
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyHugo Hamon
 
Apache camel et les entreprise integration patterns
Apache camel et les entreprise integration patternsApache camel et les entreprise integration patterns
Apache camel et les entreprise integration patternsOuadie LAHDIOUI
 
Comparatif OSCommerce/Magento pour SQLI
Comparatif OSCommerce/Magento pour SQLIComparatif OSCommerce/Magento pour SQLI
Comparatif OSCommerce/Magento pour SQLIRouff Joseph
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2Ahmed ABATAL
 
CMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisite
CMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisiteCMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisite
CMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisiteSmile I.T is open
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesXavier Gorse
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv PsGregory Renard
 
Talk API Platform NextJS client generator
Talk API Platform NextJS client generatorTalk API Platform NextJS client generator
Talk API Platform NextJS client generatorJustineBRUNEAUZAHIRI
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)Saïd Radhouani
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesNoel GUILBERT
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2Hugo Hamon
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epitaNoel GUILBERT
 
Le pattern View Model avec Symfony2
Le pattern View Model avec Symfony2Le pattern View Model avec Symfony2
Le pattern View Model avec Symfony2RomainKuzniak
 

Tendances (18)

Déploiement d’applications
Déploiement d’applicationsDéploiement d’applications
Déploiement d’applications
 
Symfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en TwigSymfony 2 : chapitre 2 - Les vues en Twig
Symfony 2 : chapitre 2 - Les vues en Twig
 
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec SymfonyMieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
 
Apache camel et les entreprise integration patterns
Apache camel et les entreprise integration patternsApache camel et les entreprise integration patterns
Apache camel et les entreprise integration patterns
 
Sylius en 5 minutes
Sylius en 5 minutesSylius en 5 minutes
Sylius en 5 minutes
 
Comparatif OSCommerce/Magento pour SQLI
Comparatif OSCommerce/Magento pour SQLIComparatif OSCommerce/Magento pour SQLI
Comparatif OSCommerce/Magento pour SQLI
 
Presentation Symfony2
Presentation Symfony2Presentation Symfony2
Presentation Symfony2
 
CMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisite
CMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisiteCMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisite
CMSday 2103 - Ametys : Gestion fine des contenus dans un environnement multisite
 
Orchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notesOrchestrez vos projets Symfony sans fausses notes
Orchestrez vos projets Symfony sans fausses notes
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
Asp Au Service Des Mv Ps
Asp Au Service Des Mv PsAsp Au Service Des Mv Ps
Asp Au Service Des Mv Ps
 
Talk API Platform NextJS client generator
Talk API Platform NextJS client generatorTalk API Platform NextJS client generator
Talk API Platform NextJS client generator
 
Active Server Pages (ASP)
Active Server Pages (ASP)Active Server Pages (ASP)
Active Server Pages (ASP)
 
Symfony 2 et le Web
Symfony 2 et le WebSymfony 2 et le Web
Symfony 2 et le Web
 
Symfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiquesSymfony2: 30 astuces et bonnes pratiques
Symfony2: 30 astuces et bonnes pratiques
 
Introduction à Symfony2
Introduction à Symfony2Introduction à Symfony2
Introduction à Symfony2
 
Présentation symfony epita
Présentation symfony epitaPrésentation symfony epita
Présentation symfony epita
 
Le pattern View Model avec Symfony2
Le pattern View Model avec Symfony2Le pattern View Model avec Symfony2
Le pattern View Model avec Symfony2
 

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

E-Commerce et cross canal
E-Commerce et cross canalE-Commerce et cross canal
E-Commerce et cross canalFabien Gasser
 
Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Simplicité Software
 
CMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du webCMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du webI-business Solutions
 
Présentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQPrésentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQMichel-Marie Maudet
 
L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc. L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc. Sanae BEKKAR
 
Chp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPChp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPLilia Sfaxi
 
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...Identity Days
 
Seminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
Seminaire 2010 : Réussir les nouveaux projets web innovants avec DrupalSeminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
Seminaire 2010 : Réussir les nouveaux projets web innovants avec DrupalLINAGORA
 
Bien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerceBien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerceEnzo
 
Bien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerceBien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerceEnzo
 
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...Guilhem GLEIZES
 
Openerp 8
Openerp 8Openerp 8
Openerp 8smiste
 
Compiere, l'ERP open source qui s'adapte à votre métier
Compiere, l'ERP open source qui s'adapte à votre métierCompiere, l'ERP open source qui s'adapte à votre métier
Compiere, l'ERP open source qui s'adapte à votre métierAudaxis
 
Créer et optimiser son site Internet
Créer et optimiser son site InternetCréer et optimiser son site Internet
Créer et optimiser son site InternetPliciWeb Solutions
 
Yrecommender, machine learning sur Hybris
Yrecommender, machine learning sur HybrisYrecommender, machine learning sur Hybris
Yrecommender, machine learning sur HybrisGuillaume Kpotufe
 
Logiciel de gestion - Comarch ERP
Logiciel de gestion - Comarch ERPLogiciel de gestion - Comarch ERP
Logiciel de gestion - Comarch ERPCOMARCH SAS
 
Point de vente ( Odoo )
Point de vente ( Odoo ) Point de vente ( Odoo )
Point de vente ( Odoo ) KARIZMA CONSEIL
 
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...Kaliop-slide
 

Similaire à Comment construire un environnement e-commerce complet avec Symfony 2 ? (20)

E-Commerce et cross canal
E-Commerce et cross canalE-Commerce et cross canal
E-Commerce et cross canal
 
Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4
 
CMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du webCMS DotNetNuke : avantages pour les professionnels du web
CMS DotNetNuke : avantages pour les professionnels du web
 
Plaquette BI
Plaquette BIPlaquette BI
Plaquette BI
 
Présentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQPrésentation LINAGORA - OBM au @S2LQ
Présentation LINAGORA - OBM au @S2LQ
 
L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc. L'Open Source : Domaines d'application , Solutions Open Source , etc.
L'Open Source : Domaines d'application , Solutions Open Source , etc.
 
Chp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERPChp3 - Fonctionnement des ERP
Chp3 - Fonctionnement des ERP
 
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
MIM Synchronization Services 2016 -> une solution économique pour créer, modi...
 
Seminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
Seminaire 2010 : Réussir les nouveaux projets web innovants avec DrupalSeminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
Seminaire 2010 : Réussir les nouveaux projets web innovants avec Drupal
 
Bien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerceBien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerce
 
Bien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerceBien débuter avec une plateforme e-commerce
Bien débuter avec une plateforme e-commerce
 
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...
BoutiqueBuilder, Morin logistique, rueducommerc et cibleweb convention ecomme...
 
Openerp 8
Openerp 8Openerp 8
Openerp 8
 
Compiere, l'ERP open source qui s'adapte à votre métier
Compiere, l'ERP open source qui s'adapte à votre métierCompiere, l'ERP open source qui s'adapte à votre métier
Compiere, l'ERP open source qui s'adapte à votre métier
 
Créer et optimiser son site Internet
Créer et optimiser son site InternetCréer et optimiser son site Internet
Créer et optimiser son site Internet
 
Yrecommender, machine learning sur Hybris
Yrecommender, machine learning sur HybrisYrecommender, machine learning sur Hybris
Yrecommender, machine learning sur Hybris
 
Retour sur Magento Imagine 2016
Retour sur Magento Imagine 2016Retour sur Magento Imagine 2016
Retour sur Magento Imagine 2016
 
Logiciel de gestion - Comarch ERP
Logiciel de gestion - Comarch ERPLogiciel de gestion - Comarch ERP
Logiciel de gestion - Comarch ERP
 
Point de vente ( Odoo )
Point de vente ( Odoo ) Point de vente ( Odoo )
Point de vente ( Odoo )
 
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...
[Webinar du 17/06/2014] Bien intégrer sa boutique e-Commerce à son système d'...
 

Comment construire un environnement e-commerce complet avec Symfony 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 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
  • 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
  • 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 !
  • 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 ?
  • 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