Slide 1

Slide 1 text

Sylius - E-Commerce for Symfony2 SymfonyCon, 28th November 2014 in Madrid, Spain

Slide 2

Slide 2 text

Paweł Jędrzejewski Huge beliver in Open Source Creator of Sylius Co-Founder at !

Slide 3

Slide 3 text

? What is Sylius?

Slide 4

Slide 4 text

Sylius E-Commerce Platform for PHP

Slide 5

Slide 5 text

160+ Code contributors 550,000+ Downloads 250+ Translators running in production thousands of man-hours Combined experience

Slide 6

Slide 6 text

? Why new e-commerce?

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

OLD „PHP” way MONOLITHIC NOT Developer-friendly Untesteble hacky

Slide 9

Slide 9 text

No content

Slide 10

Slide 10 text

!!! Reinventing the wheel is bad…

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

? How does it look?

Slide 14

Slide 14 text

PROTOTYPE ALERT!

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

RESPONSIVE BY DEFAULT!

Slide 17

Slide 17 text

? What can you build using Sylius?

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

No content

Slide 24

Slide 24 text

You need to innovate, in order to compete.

Slide 25

Slide 25 text

Innovation requires flexibility.

Slide 26

Slide 26 text

? What makes Sylius different?

Slide 27

Slide 27 text

sylius STACK Sylius components Sylius bundles Sylius platform

Slide 28

Slide 28 text

Sylius components Sylius bundles Sylius platform sylius STACK

Slide 29

Slide 29 text

components and bundles

Slide 30

Slide 30 text

sylius e-Commerce toolset Product Cart Order Shipping Taxation Payment Inventory Currency Pricing Promotion Money Addressing

Slide 31

Slide 31 text

sylius Generic toolset Flow Settings Taxonomy Resource Sequence Variation Attribute Locale

Slide 32

Slide 32 text

Sylius platform Core Web Interface Symfony Doctrine CMF Payum

Slide 33

Slide 33 text

No content

Slide 34

Slide 34 text

No content

Slide 35

Slide 35 text

Payum

Slide 36

Slide 36 text

Payum Paypal Express Checkout Paypal Pro Checkout Paypal Rest Stripe.js Stripe Checkout Authorize.Net AIM Be2Bill CreditCard Be2Bill Onsite Payex

Slide 37

Slide 37 text

Payum Paypal Express Checkout Paypal Pro Checkout Paypal Rest Stripe.js Stripe Checkout Authorize.Net AIM Be2Bill CreditCard Be2Bill Onsite Payex Offline Klarna Checkout DineroMail BitPay Paydollar PaylinkJustpay TcomPayWay Sagepay Redsys

Slide 38

Slide 38 text

Payum Paypal Express Checkout Paypal Pro Checkout Paypal Rest Stripe.js Stripe Checkout Authorize.Net AIM Be2Bill CreditCard Be2Bill Onsite Payex Offline Klarna Checkout DineroMail BitPay Paydollar PaylinkJustpay TcomPayWay Sagepay Redsys 2Checkout Authorize.Net Buckaroo CardSave Dummy eWAY First Data GoCardless Manual

Slide 39

Slide 39 text

Paypal Express Checkout Paypal Pro Checkout Paypal Rest Stripe.js Stripe Checkout Authorize.Net AIM Be2Bill CreditCard Be2Bill Onsite Payex Offline Klarna Checkout DineroMail BitPay Paydollar PaylinkJustpay TcomPayWay Sagepay Redsys 2Checkout Authorize.Net Buckaroo CardSave Dummy eWAY First Data GoCardless Manual Migs Mollie MultiSafepay Netaxept (BBS) Netbanx Pacnet PayFast Payflow PaymentExpress (DPS)

Slide 40

Slide 40 text

CLEAN CODE • Decoupled architecture • DRY, SOLID, KISS • Testable code • DependencyInjection and many other design patterns

Slide 41

Slide 41 text

Modern Foundation • Symfony full-stack combined with tons of excellent libraries from the community • Shares the platform with great projects like OroCRM, Akeneo PIM, Drupal, eZ Publish • Built on the shoulders of the open source giants

Slide 42

Slide 42 text

No content

Slide 43

Slide 43 text

Behavior DRIVEN DEVELOPMENT • StoryBDD with Behat maintains high level of communication quality among the community • We communicate using examples • Behat scenarios are executed as acceptance tests automatically on every change • SpecBDD using phpspec punishes us for any bad design decision • CodeQuality

Slide 44

Slide 44 text

Feature descriptions

Slide 45

Slide 45 text

Executed on travis-ci.org

Slide 46

Slide 46 text

Code quality

Slide 47

Slide 47 text

Compared to „old” solutions

Slide 48

Slide 48 text

!!! Show me the code!

Slide 49

Slide 49 text

Slide 50

Slide 50 text

$ app/console do:sc:up —force # app/config.yml ! sylius_product: classes: product: model: App\Bundle\CoreBundle\Entity\Product +

Slide 51

Slide 51 text

add('fee', 'percentage') ->remove('price') ; } }

Slide 52

Slide 52 text

ENJOY! # app/config.yml ! sylius_product: classes: product: model: App\Bundle\CoreBundle\Entity\Product form: App\Bundle\CoreBundle\Form\Type\ProductType +

Slide 53

Slide 53 text

ENJOY IT EVEN MORE! # app/config.yml ! sylius_product: classes: product: model: App\Bundle\CoreBundle\Entity\Product controller: Your\Class repository: Your\Class form: App\Bundle\CoreBundle\Form\Type\ProductType +

Slide 54

Slide 54 text

? How to get started?

Slide 55

Slide 55 text

Install SyliuS $ composer create-project sylius/sylius -s dev $ cd sylius $ app/console sylius:install $ composer create-project sylius/sylius-standard or

Slide 56

Slide 56 text

What NEXT? We went crazy! • Deeper SymfonyCMF integration DONE • Flexible Multi-Channel DONE • Multi-Werehouse DONE • Full, RESTful JSON and XML API DONE • ORM or ElasticSearch search engine MERGED • CLONE RYAN WEAVER FOR DOCS SAKE!!!

Slide 57

Slide 57 text

DOCS.sylius.org

Slide 58

Slide 58 text

sylius.org

Slide 59

Slide 59 text

github.com/sylius/sylius

Slide 60

Slide 60 text

@pjedrzejewski @Sylius @Lakion pjedrzejewski.com sylius.org lakion.com THANK YOU! joind.in/12943

Slide 61

Slide 61 text

Image Credits https://www.flickr.com/photos/ilikespoons/8395923694/ https://www.flickr.com/photos/kalexanderson/5421517469 https://www.flickr.com/photos/woolamaloo_gazette/12822529314 https://www.flickr.com/photos/dey/44559604 https://www.flickr.com/photos/suckamc/8474229421 https://www.flickr.com/photos/kwl/4247555680