Undoubtedly eCommerce has changed a lot over the past years. Those changes also made a high impact on how online trading looks like for developers today. The more customers came into the online market, the higher needs they have, and the harder it is to come up with those needs. It forces the most popular platforms to evolve but sometimes improving the existing software is not enough.

What is eCommerce in 2017?

Ten years ago, when someone said “eCommerce,” everybody was thinking about an online store that includes some products, categories, checkout, merchant panel, maybe some layout, and a bunch of plugins. It successfully either transformed the whole platform to B2B or broke it down in the case of poor code quality.

However…

Today it looks a little bit different. In 2017 you not only buy physical products via the www, but you also purchase many services, premium account access, or files like e-books, audios, and movies. Countless platforms enable you to pay for something online which is not a standard B2C web store. Before Sylius came into the market, to achieve the goal of selling something online you either had to install another platform with a bunch of things you didn’t need or create the trading module from scratch.

It’s good to realize that due to the way eCommerce looks like today, and the best platform is not that one with the most amount of functionality or available plugins, but the one that is easier to integrate with any other structure.

Technical debt

Developers love to work with the newest technologies and great code. Why? Because the good developer is the lazy one which means he doesn’t like to reinvent the wheel, write countless workarounds and pray for not to break anything that worked before his changes. Unfortunately, this is hard to understand by many business people. Paying for plugin $100 instead of $2500 to a developer for writing the integration may sound juicy. But do you remember what I mentioned about those plugins before?

Hey, business! Imagine you have to buy a car which you have to do 2000 miles every month. Would you like to purchase an after-accident car which was painted beautifully and looks like a new one only because it is cheaper? The point is that this car will probably be more like to break down at the wrongest time. It also can be more tricky to fix the vehicle due to its past and what’s more – the more you drive, the more it is possible to have a crash. Would you like to have a collision in an after-crash vehicle?

See the point? When you decide to install some plugins rather than writing some suitable, simple SAAS integrations, you will probably end up with a hole in your pocket, which you don’t even realize you have.

many legacy plugins == poor code quality == poor performance == poor functionality == poor scalability == less customers == less money.

And yes. When you only depend on plugins in your application, some of them are probably legacy ones.

Your software should depend on your business nor should your business on the software. It means your eCommerce should have the ability to grow with your needs quickly and without regression

The right tools for the right job

Sylius was created on top of the Symfony framework, which many developers consider as the best PHP framework. It has a great architecture that allows writing scalable apps. Sylius is no different.
What’s more, it uses the framework in the way it should be used. It allows you to use just some components (bundles) you need in existing Symfony or even any other PHP projects just for a specific use-case. For example, you can integrate taxonomy and products to enable your existing app to present some products. That’s not easy to achieve with Magento, Presta Shop, WooCommerce or any other eCommerce platform written in PHP available on GitHub. The additional advantage is that it is much more comfortable for a Symfony developer to jump into the Sylius ecosystem, than for any other developer to start learning how the specific platform works. Most of them have their workflow, which is harder to maintain when time goes by.

I highly recommend watching the excellent overview of Sylius framework presented by its author – Paweł Jędrzejewski. The only thing I think is worth mentioning before watching it is that this video was uploaded in November 2016, when Sylius was still under hard development. Today it has it’s a beta-2 release, which is probably the one before stable.

Behavioral Driven Development

How many times have you faced the communication problem, either if you are a developer or a business person?

How many times have you faced a problem that even if you have some unit tests, something hadn’t worked as expected, and nobody noticed it until it was done?

In most cases, neither a developer is a business person nor is a business person a developer. That’s why Sylius comes by default with the Behavioral-driven development way of implementing new features that allow business people to write specific features in a way that is understandable both by them and developers. After creating the feature descriptions, developers are writing some particular implementation of how those features should work in the system, which you can imagine as a bot that physically opens a page, clicks a button, and expects a result (in case of a web page test).

What’s more – there’s also another great tool called PHPSpec, which many call an equivalent to PHPUnit with the difference that it’s way much simpler and more focused on how the whole class should work instead of specific code units responsibility. The harder it is to write a PHPSpec specification, the more it is possible that your architecture is wrong. Remember the “S” in a SOLID model? It is one of many cases; it helps you not to overengineer the implementation and write clean, reliable code.

Looking at Behat and PHPSpec, you focus on the behavior of the software rather than what specific part of the code does. It is something essential for both developers and business. In essence, our work finally needs to meet customers’ expectations, and they don’t care whether your nth class method returns true or an array. On the other side, every developer knows that the right implementation is vital to get the work done. That’s where BDD is compromising those needs entirely to provide a working application that is easy to maintain and improve.

Community.

There’s a great community over Sylius. Many opened issues on GitHub with feature requests, PRs with bug fixes, and the Slack channel makes learning Sylius an excellent opportunity to learn new skills, share some experience, and have an impact on how the whole project evolves. Open Source is something that’s not unique to Sylius, and many other examples prove that this is an excellent way to become a better developer in a short time. Learning from others’ mistakes is always less painful and less time-consuming.


Summary

Sylius is likely to become the tool of the eCommerce future. Its architecture and flexibility make it a unique dev-tool that, in my opinion, will be a must-know once it hits the stable version, which will happen soon. Even if it is still in beta version, there are many great use-cases of successful projects with the usage of this framework, which can be found on this page. Many Sylius components solve most of the advanced eCommerce business problems. They can be used in various projects, which sounds pretty impressive when you are the kind of person who likes somebody else to make your work more comfortable and more enjoyable.