Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Sylius - Decoupled eCommerce Platform

Sylius - Decoupled eCommerce Platform

My talk from code.talks Commerce 2016 in Berlin.

7ae8ff67c92e2087f2e84884449d6da6?s=128

Pawel Jedrzejewski

April 29, 2016
Tweet

Transcript

  1. Sylius Decoupled eCommerce Pla/orm

  2. Paweł Jędrzejewski I do Open Source Created Sylius Co-Founded Lakion

    Co-Organizing PHPers Łódź
  3. None
  4. ŁÓDŹ, POLAND

  5. ? What is ? @pjedrzejewski Sylius

  6. Sylius Open Source eCommerce PlaCorm for PHP MIT License

  7. 315+ Code contributors 1,850,000 Downloads 500+ Translators 150-200 Pull Requests

    every month almost 13,000 Travis-CI Builds 2,250+ stars on github
  8. None
  9. ? What makes Sylius different? @pjedrzejewski

  10. #1 Not every eCommerce is a standard webshop. @pjedrzejewski

  11. components and bundles

  12. the first months of sylius CatalogBundle CartBundle AddressingBundle SalesBundle BloggerBundle

    ThemingBundle
  13. sylius e-Commerce toolset Product Cart Order Shipping Taxation Payment Inventory

    Currency Pricing Promotion Report Addressing
  14. sylius e-Commerce toolset Archetype Association Review Channel Support Locale Mailer

    Metadata RBAC Registry Variation Attribute
  15. 70+ @pjedrzejewski Standalone packages!

  16. Built by developers, for developers. @pjedrzejewski

  17. sylius STACK Sylius components Sylius bundles Sylius platform

  18. Sylius components Sylius bundles Sylius platform sylius STACK

  19. Sylius platform 1.0 Shop Core Api Admin Components

  20. @pjedrzejewski

  21. @pjedrzejewski

  22. @pjedrzejewski

  23. Payum @pjedrzejewski

  24. #2 It is format agnosRc. Our Symfony controllers can serve:

    HTML, XML, JSON. @pjedrzejewski
  25. ? What can you build using Sylius? @pjedrzejewski

  26. None
  27. Sylius E-Commerce API Sylius API Mobile API @pjedrzejewski Logistics Payments

  28. None
  29. None
  30. None
  31. Modern Foundation Shares the plaCorm with great projects like: OroCRM,

    Akeneo PIM, Drupal, eZ Publish @pjedrzejewski
  32. Migrating away from legacy Migrate step by step, by replacing

    certain eCommerce features with Sylius components. @pjedrzejewski
  33. Built around Single-Responsibility-Principle. @pjedrzejewski

  34. None
  35. None
  36. None
  37. Few words about testability… @pjedrzejewski

  38. None
  39. Behavior DRIVEN DEVELOPMENT • StoryBDD with Behat maintains high level

    of communicaRon quality among the community; • We communicate using examples, which serve as a documentaRon too; • Behat scenarios are executed as acceptance tests automaRcally on every change; • SpecBDD using phpspec; • SpecificaRon drives the design of our objects.
  40. None
  41. Executed on travis-ci.org

  42. Code quality

  43. Compared to „old” solutions

  44. How to customize? @pjedrzejewski

  45. <?php namespace AppBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Sylius\Component\Core\Model\Shipment as

    BaseShipment; /** * @ORM\Entity */ class Shipment extends BaseShipment { // get/setPackagingMethod(); }
  46. $ app/console do:mig:diff # app/config.yml sylius_shipment: resources: shipment: classes: model:

    AppBundle\Entity\Shipment +
  47. <?php namespace AppBundle\Form\Type; use Sylius\Bundle\CoreBundle\Form\Type\ShipmentType as BaseShipmentType; use Symfony\Component\Form\FormBuilderInterface; class

    ShipmentType extends BaseShipmentType { public function buildForm(FormBuilderInterface $builder, array $options) { parent::buildForm($builder, $options); $builder ->add('packagingMethod', ‚app_packaging_method_choice’) ; } }
  48. # app/config.yml sylius_shipment: resources: shipment: classes: model: AppBundle\Entity\Product form: AppBundle\Form\Type\ShipmentType

  49. winzou_state_machine: sylius_order: callbacks: after: app_apply_packaging_charges: on: 'confirm' do: [@app.packaging_charges_applicator, 'apply']

    args: ['object']
  50. ? How to get started? @pjedrzejewski

  51. Install SyliuS $ composer create-project sylius/sylius $ cd sylius $

    app/console sylius:install $ app/console server:run $ open http://127.0.0.1:8000/ $ composer create-project sylius/sylius-standard or @pjedrzejewski
  52. State of Sylius the roadmap • June 2016 - 1.0.0-alpha.1

    - With new admin panel and simplified shop interface. • July 2016 - 1.0.0-beta.1 - BETA release, which will focus on stabilizaRon, bug fixing and documentaRon. @pjedrzejewski
  53. None
  54. None
  55. DOCS.sylius.org

  56. sylius.org

  57. @pjedrzejewski @Sylius @Lakion pjedrzejewski.com sylius.org lakion.com THANK YOU!