Symfony and eCommerce: Elcodi, Sylius and Thelia
The eCommerce field is a lot like the Content Management field as a small number of products control a large portion of the market. Regardless of exact statistics, Open Source tools like Prestashop, Magento CE and WooCommerce are very popular - The latter boasting an impressive download count of over ten million.
The range of online commerce ranges from small business owners selling their own wares to large retailers like Amazon. This makes the whole eCommerce market very diverse where some need an all encompassing system like SAP Hybris while some do more than fine with WooCommerce or a SaaS like Shopify.
Symfony and eCommerce
Symfony does not contain any components or functionalities specifically for eCommerce, but the general purpose Symfony Components are now also being used by eCommerce tools such as PrestaShop and Magento2.
The Sonata Project originally planned to create "a different kind of e-commerce solution", but the project since diverted into providing general purpose bundles for the Symfony2 framework. When building with the Symfony Framework it gives structure and a solid foundation for building eCommerce applications on top of.
Let's take a quick look at three Open Source projects currently implementing eCommerce solutions with Symfony:
Elcodi offers a set of eCommerce focused PHP components and a complete store implementation (Bamboo) on the Symfony framework. The core team springs out of Barcelona, Spain and the project currently has 22 contributors.
The project is very new, being kicked off only in August of 2014. The project continues to be in active development. The feature set covers common needs such as product categorizations, shopping cart, coupons, payments and shipping. The documentation covers features such as events, but could be more comprehensive.
Elcodi is an easy way of getting started with Symfony and eCommerce. Enhancing your existing Symfony2 application with basic eCommerce functionality easily is where it shines.
Sylius offers a set of decoupled Symfony2 bundles to provide pre-packaged eCommerce functionalities like promotions and a shopping cart to Symfony2 applications. In addition to the Symfony framework specific bundles, Sylius offers PHP components for thinks like stock management.
Sylius is an ambitious project with being in development since 2011 and the first stable release scheduled for Q2 2016. The contributors take pride in code quality and the Polish core team has set up a company to provide support and training for Sylius: Lakion
Sylius is a project with leadership that takes software development seriously. Sylius may not have a shining visual demo site now, but it has the chops to become a true heavyweight in the Open Source eCommerce field.
Thelia describes itself as a tool for creating eCommerce websites and online content management. It is first and foremost a complete product that should be used stand alone. This is evident also in the module and template marketplace hosting pluggable functionalities to the application.
Thelia has been in development since 2005 with the current major version out since early 2014. Unlike Elcodi and Sylius, Thelia does not build on the Symfony Framework but does utilise a large number of components from the Symfony project.
The French core team have built a compelling product for creating and managing a complex web store with the option for commercial support. Thelia is the way to go if you want to go ahead and kick off a traditional product based online business with room to grow.
Symfony's eCommerce niche?
The predictability and featureset of the Symfony framework make for a solid foundation doing online business. But the commerce space is already rather packed, just like the Contant Managemen System market. Many of the established players already boast an ecosystem of integrations and plugins that will be hard to beat.
From these three products Thelia is clearly the most advanced player. But the strength of Elcodi and Sylius is the decoupling from specific products and offering common functionalities. This type of functions will be an advantage when trading in non-traditional goods such as hotel room stays, virtual items or subscriptions.
Introducing complex features like promotion calculation to exististing Symfony2 applications can be done with Sylius bundles, for example. This kind of integrated applications, possibly tied together with Content Management with eZ Platform can allow truly no-compromise implementations for integrated service platforms.