Symfony 2 & e-commerce ecosystem - Now in english !


Published on

English version of my presentation @ Symfony Live Paris 2014

Published in: Software, Technology, Business

Symfony 2 & e-commerce ecosystem - Now in english !

  1. 1. Symfony2 & eCommerce
  2. 2. 2 @fabien_gasser  Presales consultant @ Smile  Ex Project Manager @ SensioLabs  Hobbies: rap music & eCommerce Smile - Open source solutions provider  More than 60 projetcs > 250 men.days  Magento, Drupal, Jahia, Liferay, Sf2, Spring…  eCommerce o > 10 millions of products managed… o > 200 pages served per second o Multi Store, Multi Merchant, Multi Channel, Marketplace…
  3. 3. 3 Different eCommerce types  B2C o eShop:Unkut, Marketplace:Fnac, Chronodrive, Auchan Drive… o Subscription:Birchbox o Flash sales:Private journeys  B2B with price negotiated for each customer: o Managment of enterprises’ committees, cars sales…  … We should focus our strength on our business to create a relationship with the customer and develop loyalty  Alternative:Design an incredible product… without any competitor.
  4. 4. 4
  5. 5. 5 Product catalog PIM Customers CRM Customer account Orders Shopping cart Order Manager
  6. 6. Symfony 2 & eCommerce
  7. 7. 7 « Symfony should become the standard as a PHP middleware »  Symfony 2 as Middleware: an applicative glue  Specific development mind the gap between the best softwares and customer requirements. o Respect functional areas
  8. 8. 8 Applications Middleware Database Infrastructure Orders PIM ERP CRM Sf2 Middleware BIDAM Customers Product catalog Order Manager WebApp Borne Web CMS Search Shopping cart Grid Checkout Merch Search
  9. 9. 9 Drupal Leaphly Vespolina Sonata
  10. 10. 10 Even though it’s interesting to meet all business requirements within the same application  !!! Difficult to maintain  !!! Complex and unuseful business rules  Changes on the solution core Making e-commerce with a blogging solution… No !  Separation of concern : CMS / E-commerce / BI Your e-commerce is not a business intelligence tool : keep simple kpi on your dashboard but use a real tool like Pentaho or JasperSoft for your BI We don’t do slides with Excel
  11. 11. 11
  12. 12. 12 Do smaller things and reduct the coupling of apps  Core API  Fine management of ACL through an oauth server for instance…  Design applications by domain:Doing less but doing better o Facilitate the update of a service / its maintenance / its availability  Let‘s forget monolithic applications o The applicative segmentation by controlers is not enough  Why not considering a segmentation by functional domain ?
  13. 13. 13 Desktop Tablet Mobile Search CSS HTML Javascript Resource WebComponent Comments Panier Recherche Website WebComponent Middleware API HATEOAS Json-ld ETL
  14. 14. 14 Representation  Hateoas + HAL  json/xml/messagepack  Microformats Stateless:Horizontal scalability Security: SSL + token Easy testing and automated documentation NelmioApiBundle Applicative versioning Tip: Use Varnish to define frequency of data update
  15. 15. 15 Redis:cache, session, queues Empty Varnish cache / CDN when you modify a product information… If you don’t have to calculate the catalogue, then save it within Elasticsearch/SolR: scalable, API Rest Get some alerts on services and data flows:New Relic, Monitoring… Don’t be afraid to use third-party services:  Prediggo, Compario, LiveFyre, Gigya… The bundles  Core:MSSecurityExtraBundle, StofDoctrineExtensionBundle, LiipCacheControlBundle, MonologBundle, Symfony-cmf/Routing, TemplatedUriBundle  API:JMSSerializerBundle, FosRestBundle, BazingaHateoasBundle, NelmioApiDocBundle, BazingaFakerBundle
  16. 16. 16
  17. 17. 17 Repository  Assets & pictures Order Manager Data flows Clients  CRM Search and recommendation CMS Payment Sale
  18. 18. 18
  19. 19. 19 Product management with Akeneo PIM ERP images Third part data source Videos PIM Search Enrich Translate Maintain E-store Mobile POS Print
  20. 20. 20
  21. 21. 21 Media management:  KnpLabs/KnpGaufretteBundle:s3, MongoGridFS  Sonata Media Bundle  Thumbor:service intelligent de gestion d’images (Détections de visages, motifs) Smart interface for media management ? Ckfinder ? Mass processing with an asynchronous queue
  22. 22. 22 Order Manager system is the heart of your e-commerce Create Finite State Machine thanks to the bundles   DoctrineStateMachineBundle Manage various state for order, quote or cart  A parralel task will check the state of the order to fire actions  Manage easily actions around your orders: paiement notification or refund, subscription system
  23. 23. 23 An e-commerce platform communicates with several third-parties  ESB ERP CRM BI WMS DAM MARKETPLACE (lengow, mirakl…) With different formalisms:  SOAP REST EDI CSV...  HATEHOAS Messapack for mobile applications Organization of the database model  Create services to manipulate your SOAP / REST exposed interfaces MONITOR data flows !!!
  24. 24. 24 Create a unique base of clients and share it with applications  User: o FosUserBundle o HWIOAuthBundle o FosCommentBundle o …  SonataAdminBundle Centralize the user events and follow the activity of users  Real user monitoring / New Relic Insight
  25. 25. 25 Keep in contact with its clients: OroCRM  Client segmentation  Task and call back  Sales processing e-commerce oriented features  Abandonned carts  User monitoring
  26. 26. 26
  27. 27. 27 Search:  Implementation of Elasticsearch or Solr to index the PIM and take the benefit of the search engine o API REST o Search features Recommendation: up sell, cross sell…  Management of affinitiy with a product at every purchase or creatino of product list to make a simple recommendation  Design of business rules with ExpressionLanguage to associate a product Implement third-party solutions such as: Prediggo, Fredhopper, Compario…
  28. 28. 28 CMS & Merchandising: Drupal 8, Sulu CMF, Bolt  Place CMS content to animate category pages  Expert content, security of payments  ESI / SSI / Hinclude / pjax / turbolinks  Content as a Service / Data as a Service Pagekit
  29. 29. 29 Implementation of payment solutions  Paiement: Integration of a monetic supplier o PayumBundle  Use a PSP – payment service provider: be2bill, paybox… o Ease of inception in a new country o Fraud management o REST API One-click payment Payment in 3 times withouth fee Payment at deliverySimple payment Partial or total refund Cross-chanel payment Simple aknowledgement
  30. 30. 30 200 pages / second and more…  Prévoir un fallback sur les pages les plus consommatrices:une version dégradée de l’application.  Plan its stateless application in order to facilitate horizontal scalability  Decoupling services and sites  Ratchet ? WebRTC ? Scalable hosting  Cluster of databases and indexes  On the fly creation: o Docker, Serf, Mesos…  Predictive auto-scaling (Scryer/Netflix) Traffic pattern:variable
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.