Hello Sylius Community!
Last few weeks have been crazy productive and we have managed to pretty much close Sylius feature set for 1.0.
The new release is exactly 921 commits from 20 contributors, which is really impressive since it is our fastest release ever.
There are several big new features and improvements worth mentioning:
Sylius supports multiple channels. There are many ways to benefit from this feature, for example having one mobile app channel (via API) and standard web shop as other one.
You can also have multiple stores on a single instance, but until now there was no official way of customizing the look of individual stores.
Kamil Kokot has been working hard on our brand new ThemeBundle and he nailed it. We have a nice theming system, which supports:
app/Resourcesand from Bundles);
Every channel can have a Theme configured now and will render templates using particular skin.
You can find more information in the docs.
What is more, this bundle is not coupled to Sylius at all, you can use it in any Symfony project (pretty much like every Sylius bundle). Enjoy!
Configuring accessories, replacements, x-sells, up-sells and other product relations is a common functionality for every shop.
That’s why we have created a generic Association component for PHP and Symfony. Yeah, you can use it for anything – we have integrated it with our product catalog.
Workflow is quite simple, you start from defining specific association type, for example “Accessories”. Then in the product form you can assign multiple products as “Accessories” of the edited product.
With Associations our product catalog has became even more powerful, but Sylius was missing pretty standard feature – product reviews.
This is fixed now with our new
Review component and
ReviewBundle – for integration with Symfony.
These two components were joint effort started very long time ago (2013!) by Daniel Richter, continued by Mateusz Zalewski and finally completed by Grzegorz Sadowski.
You guessed it, this component is also decoupled from Sylius platform, you can implement reviews for everything, even completely unrelated to eCommerce.
Until v0.17.0 Sylius had no real SEO module, which would allow to easily generate titles, keywords and other important SEO values based on formulas.
This is now possible thanks to new
Metadata component and bundle implemented by Kamil and sponsored by REISS. Thank you!
The component is quite new and not heavily used in Sylius core, but it has great potential and we will improve it as we progress with integration in Sylius and other projects.
Apart from new features, we are reworking our Behat scenarios, because BDD in PHP has evolved a lot since we started using Behat in its very early days.
The scenarios that we have written initially for Sylius were technical and coupled to UI. Based on our current state of knowledge, it is clearly quite far from true BDD we have been doing on commercial projects for a while.
You can have a look at our new scenarios here.
Our scenarios are now totally decoupled from implementation and we can test them against UI, Domain, API and CLI. Or any combination that makes sense.
Another problem was that our contexts got really fat (we have 7K steps) and had mixed responsibilities. We decided to rewrite them and treat as standard PHP objects with all dependencies injected.
This required a bit of customization to Behat, which is just amazingly easy to extend through its great system of extensions.
Quick overview of our new Behat architecture:
todotag for pending features;
apitags added to scenarios;
ui_*suites is represented by a page object, registered as a service too;
All this allows us to better organize our Behat suite and implement features step-by-step, for example: starting from “domain” implementation, then via API and finally through UI.
Changes in Order model are quite significant, but must-have improvements.
Thanks for great effort from Peter Ward, Mateusz Zalewski and Michał Marcinkowski, all money calculations on Order are now handled properly.
Quick overview of changes:
add/removeItemcalls, same for adding and removing adjustments on all levels;
TaxableInterface, so you can apply taxes to shipping.
This is gonna be little long, but all these are very significant and worth looking at, especially when upgrading!
Features introduced in v0.17.0 are last big things that land in Sylius core. We get a lot of feature requests, but now it is the time to stabilize what we have and finally release Sylius BETA.
There is plenty of things I want to add to Sylius and I am confident that they will be part of future Sylius versions.
In v0.18.x we are going to focus on:
You can install and try the latest Sylius by running the following commands:
$ composer create-project sylius/sylius-standard my_project $ cd my_project $ app/console sylius:install $ app/console server:run $ open http://127.0.0.1:8000
We really need your help to make the final push towards Sylius 1.0. Learn how to contribute!
I have never been more excited about Sylius development. There is still a lot of work, but now we are starting the stabilization and clean-up phase, we will be focused more on documentation, refreshing our website and on preparations for the BETA stage.