4 min. read
Categories:
Sylius v0.10.0 released
Making sure we stay on track with our [roadmap](http://sylius.org). Today I am happy to release Sylius 0.10.0, which contains a huge amount of improvements.
Sylius v0.10.0 released

I mentioned it several times in my recent blog posts about the future of Sylius – I want smaller and more frequent releases.

After almost 500 commits from over 30 contributors, I am very happy to announce availability of Sylius v0.10.0. It is a quite big release and contains huge amount of improvements.

From now on, I will do my best to follow the roadmap and tag more often. You can see our development plans here.

Overview

We focused more on the architecture and internals than on packing new features in, but you will not be disappointed!
In the coming weeks, we want to fill the “feature-gaps”, which are the only blockers for the stable version of Sylius!

E-Commerce components for PHP

This is the biggest change from v0.9.0. We have extracted standalone e-commerce components for “raw” PHP.
This approach is very similar to what you see in Symfony – A set of decoupled libraries, integrated together into full-stack framework.

With Sylius, we have the components, which provide you with the most common features, and bundles as integration layers for Symfony.
On top of this, we have the main platform – Flexible foundation for e-commerce project of any scale.

Why? Firstly, this is the best approach to decouple e-commerce specific domain from the framework. It allows us to keep the architecture cleaner and better organized.
Secondly, this allows Sylius code and concepts to be used outside the Symfony world, as e-commerce toolset for php.

Developers from different communities are already evaluating the idea of building their platform with Sylius components and a framework of their preference.

Managing all states and transitions with StateMachine

This is one f my favorite upgrades! Previously, all states (order status, payment state, shipping, etc.) were hard-coded and while you could add your own and modify the workflow – It was not that easy.
With the introduction of StateMachine, you have full control over all states, transitions and events. (callbacks)

You can change the way Sylius works with a simple configuration scheme, add your own states and transitions or easily hook into the whole process with your custom callbacks.

Thank you for all people involved and especially Alexandre Bacco, who implemented this awesome feature!

Multiple payments per order

We have created a foundation for handling multiple payments per order. This is much more flexible and creates a wide range of opportunities to implement related features, like shipping from different locations.
The solution is really clean and similar to the way we handle shipments processing in checkout. You can select a different method for every payment.

Huge thank you to Ka Yue Yeung for working on this!

Attributes and variations

I have extracted these features from our products catalog, to be usable with any model. Using the two new bundles you can manage flexible attributes for any object and create variations of any model, using options and variants.
Internally, we currently use it only for the products, but I am considering adding attributes to users as well. That being said, you can benefit from this decoupling in your project and use it for whatever you need.

Pricing

I also implemented a very simple, but flexible pricing system, which allows you to create your own calculators with custom logic.
It supports time/volume/customer based pricing out-of-the-box and as everything in Sylius – It is available via standalone component and bundle.

This is already quite powerful, but I have some great plans to expand it and make even more useful for customizations and basic usage.

SymfonyCMF Routing

Our integration with SymfonyCMF goes even further and we are now using flexible Routing system. This gives us a lot more flexibility – Drupal8 uses the same engine!
Generating and managing urls for categories and products is now much easier.

Thank you Lukas Kahwe Smith!

Unlimited OAuth providers

Sylius has already supported login via Facebook, Google and Amazon, but our implementation was limiting us to these three providers. Of course, you could add a new one in your app, but it was not clean and required a bit of tedious work.
In version v0.10.0, we have reworked our system to support unlimited amount of different services. It is also much easier for you to add your own login method.

Kudos to Sergio Marchesini and Joseph Bielawski for this improvement!

Behat 3

We have upgraded our testing stack to the latest version of Behat, which brings a lot of new things. We also decoupled our big “DataContext” into several smaller ones, making the code cleaner.
I talked a bit about this update and BDD in Open Source during the London Behat Meetup.

Other improvements

Yes, this is a large update and there is a lot of other stuff that I would love to write down here, but I think you are already tired and hopefully excited.

A quick overview of the rest of notable changes in this release:

  • Standard way to generate sequential numbers for orders and other entities,
  • Thanks to Patrik Karisch, you can depend on “sylius/sylius” and contribute much more easily,
  • Maksim Kotlyar continued to make Sylius&Payum integration even better,
  • Tons of small bugfixes and little improvements.

Installation

You can install and try the latest Sylius by running the following commands:

$ composer create-project -s dev sylius/sylius:v0.10.0
$ cd sylius
$ app/console sylius:install

Known issues

  • Due to BC breaks in the latest versions of PHP, we got stuck between two bugs in Doctrine and DoctrineExtensions and you may experience problems with newest PHP 5.6.x,
  • Some JS for forms is currently broken, but will be fixed with the new SyliusUiBundle for next release.

Summary

I am very thankful to all people who have contributed to this milestone. Code, idea or just a bug report… You are awesome!
After a very successful launch of Lakion.com, I am back to full speed of development and just implemented three big points from the roadmap.

I hope to have v0.11.0 out within next two weeks. Stay tuned!

Tags:
Share:
Paweł Jędrzejewski
Self-taught developer and entrepreneur, who has built an entire career and business through Open Source technology. Speaker at international conferences. PHPers meetups co-organizer. Keen on helping other young entrepreneurs and companies who may want to follow a similar path.
More from our blog
Technical 4 min read 04.12.2024
Here’s everything you had to know about the first major release since 2017! Over 7 years after the first major release, on Nov 12, 2024, we have released Sylius 2.0.0. We had a great opportunity to announce it first at SyliusCon in Lyon, but now, as we are back to… Read More
4 min read 22.11.2024
The emotions start to settle after SyliusCon, and it’s time to reflect on this incredible milestone in our journey. Why a milestone? Because SyliusCon exceeded our expectations in every possible way. We broke attendance records and brought together the key figures of our community, numerous partners, freelancers, and simply all… Read More
Cloud 4 min read 17.06.2024
We are thrilled to announce that we just signed a strategic partnership with Platform.sh, and as a result, we are extending our offer with Sylius Cloud powered by Platform.sh. Platform.sh is a modern Platform-as-a-Service (PaaS) solution that allows businesses to leverage the cloud environment without losing access to the code… Read More
Comments