symfony 2 & e-commerce ecosystem - now in english !

31
Symfony2 & eCommerce

Upload: fabien-gasser

Post on 27-Jan-2015

111 views

Category:

Software


0 download

DESCRIPTION

English version of my presentation @ Symfony Live Paris 2014

TRANSCRIPT

Page 1: Symfony 2 & e-commerce ecosystem  - Now in english !

Symfony2 & eCommerce

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

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…

Page 3: Symfony 2 & e-commerce ecosystem  - Now in english !

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.

Page 4: Symfony 2 & e-commerce ecosystem  - Now in english !

4

Page 5: Symfony 2 & e-commerce ecosystem  - Now in english !

5

Product catalog

PIM

Customers

CRM Customer account

Orders

Shopping cart

Order Manager

Page 6: Symfony 2 & e-commerce ecosystem  - Now in english !

Symfony 2 & eCommerce

Page 7: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 8: Symfony 2 & e-commerce ecosystem  - Now in english !

8

Applications

Middleware

Database

Infrastructure

Orders

PIM

ERP

CRM

Sf2 Middleware

BI DAM

Customers Product

catalog

Order

Manager

WebApp Borne Web

CMS

Search

Shopping cart Grid Checkout Merch Search

Page 9: Symfony 2 & e-commerce ecosystem  - Now in english !

9

Drupal

Leaphly

Vespolina

Sonata

Page 10: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 11: Symfony 2 & e-commerce ecosystem  - Now in english !

11

Page 12: Symfony 2 & e-commerce ecosystem  - Now in english !

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 ?

Page 13: Symfony 2 & e-commerce ecosystem  - Now in english !

13

Desktop Tablet Mobile

Search

CSS

HTML

Javascript

Resource We

b C

om

po

ne

nt

Co

mm

en

ts

Pa

nie

r

Re

ch

erc

he

Website

We

b C

om

po

ne

nt

Middleware

API HATEOAS Json-ld

ETL

Page 14: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 15: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 16: Symfony 2 & e-commerce ecosystem  - Now in english !

16

Page 17: Symfony 2 & e-commerce ecosystem  - Now in english !

17

Repository

Assets & pictures

Order Manager

Data flows

Clients

CRM

Search and recommendation

CMS

Payment

Sale

Page 18: Symfony 2 & e-commerce ecosystem  - Now in english !

18

Page 19: Symfony 2 & e-commerce ecosystem  - Now in english !

19

Product management with Akeneo PIM

ERP

images

Third part data

source

Videos

PIM Search

Enrich

Translate

Maintain

E-store

Mobile

POS

Print

Page 20: Symfony 2 & e-commerce ecosystem  - Now in english !

20

Page 21: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 22: Symfony 2 & e-commerce ecosystem  - Now in english !

22

Order Manager system is the heart of your e-commerce

Create Finite State Machine thanks to the bundles

github.com/yohang/Finite

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

Page 23: Symfony 2 & e-commerce ecosystem  - Now in english !

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 !!!

Page 24: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 25: Symfony 2 & e-commerce ecosystem  - Now in english !

25

Keep in contact with its clients: OroCRM

Client segmentation

Task and call back

Sales processing

e-commerce oriented features

Abandonned carts

User monitoring

Page 26: Symfony 2 & e-commerce ecosystem  - Now in english !

26

Page 27: Symfony 2 & e-commerce ecosystem  - Now in english !

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…

Page 28: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Sulu.io

Pagekit

Page 29: Symfony 2 & e-commerce ecosystem  - Now in english !

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 delivery Simple payment

Partial or total refund

Cross-chanel payment Simple

aknowledgement

Page 30: Symfony 2 & e-commerce ecosystem  - Now in english !

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

Page 31: Symfony 2 & e-commerce ecosystem  - Now in english !