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

Post on 27-Jan-2015

111 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

English version of my presentation @ Symfony Live Paris 2014

TRANSCRIPT

Symfony2 & eCommerce

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

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

5

Product catalog

PIM

Customers

CRM Customer account

Orders

Shopping cart

Order Manager

Symfony 2 & eCommerce

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

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

9

Drupal

Leaphly

Vespolina

Sonata

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

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

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

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

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

17

Repository

Assets & pictures

Order Manager

Data flows

Clients

CRM

Search and recommendation

CMS

Payment

Sale

18

19

Product management with Akeneo PIM

ERP

images

Third part data

source

Videos

PIM Search

Enrich

Translate

Maintain

E-store

Mobile

POS

Print

20

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

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

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

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

Keep in contact with its clients: OroCRM

Client segmentation

Task and call back

Sales processing

e-commerce oriented features

Abandonned carts

User monitoring

26

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

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

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

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

top related