Hello there Sylius community! Summer is slowly coming to an end and we got back to work.
Last month at Sylius has been really busy and we are much more active on GitHub. All new issues get proper replies and are categorized using labels. We are slowly going through some of the old tickets as well.
The new release is over 570 commits from almost 40 contributors. There are several big new features and improvements worth mentioning:
We have added the initial version of multi-store functionality. Sylius now allows you to sell goods through different channels from the same installation. These can be web shops, point of sales, mobile applications and pretty much anything that can consume the API.
Every channel can have its own:
With the coming Theming support, every channel, which uses a web frontend, will also be able to have its own look and feel.
If you are running a v0.14.0, our database migration scripts will migrate all your orders to new multi-channel structure.
One important thing to note is that users are currently shared across all channels. We are still evaluating whether we want to make them channel-specific and how to do it.
Please keep in mind: this is very initial version of this feature and will be iterated on in the upcoming releases.
This is a big change and can be a bit controversial because we have removed the most popular Symfony bundle. Yes, we have replaced FOSUserBundle with our very own SyliusUserBundle. Before you flip the table, please check my reasoning:
Sylius is built around strong conventions, which means that for all data models have the same structure of services, naming of events, classes and generally things work in the same way for everything, except User model from FOSUserBundle. We want Sylius to be consistent and User entity is one of the most important ones. You interact with it everywhere in the system.
We wanted to have user account separated from customer instance. Continue reading to understand what does it mean.
We have separated the User and Customer entity. Simple comparision should explain why we did that and how does it work:
This gives us a lot more flexibility and allows us to track much more information about our customer, as soon as he interacts with the website.
One other cool feature we have added are payment fee calculators. You can now apply a certain fee to user’s cart total, depending on which payment method they selected. Of course, as with everything in Sylius, you can easily add your own calculators for different pricing logic. Defaults include fixed and percentage fees.
We have spent last month on intensive bug fixing. There is still a lot of work ahead of us, but Sylius should be generally a bit more stable and have less annoying bugs.
Next release is going to be an exciting moment for Sylius, it will contain something that I have been working on for past months – SyliusResourceBundle refactoring. It will maintain all existing functionality and contain some new stuff as well, but most importantly it will handle things in a much cleaner way, which eliminates a lot of bugs and nasty workarounds. More on that in a separate blog post coming soon.
Most important change in v0.16.x development branch will be the minimum PHP requirement bump. v0.15.0 will be the last version compatible with 5.3. Sylius will now require at least PHP 5.5.9. I do not think there is anything to explain here. We are also planning the upgrade to Symfony 2.7.
Some of the features coming in v0.16.0, v0.17.0 and v0.18.0:
All this stuff has PR waiting for final polish and review!
You can install and try the latest Sylius by running the following commands:
$ composer create-project -s dev sylius/sylius:0.15.0
$ cd sylius
$ app/console sylius:install
To start a new project on top of Sylius, use Standard Edition:
$ composer create-project -s dev sylius/sylius-standard:0.15.0 acme
$ cd acme
$ app/console sylius:install
That’s it, new Sylius installer will guide you through the process.
Make sure that Sylius can write to app/cache
, app/logs
and web/media
directories.
Sylius packages have just passed 1,200,000 downloads and 220 contibutors. Thank you for that! There is still crazy amount of work ahead of us, but with your help everything is possible. Check out our Contributing Guide and join our community!