After a whole year of intense development, we are happy to announce the first BETA release of Sylius! Continue reading to learn what it means and what is the future?

We are happy to announce the first BETA release of Sylius for testing and feedback! This key milestone is extremely important for the project and our entire community. There are over 13,200 commits from 354 contributors so far from which 1,200 since the alpha release little over a month ago.

Sylius has been used in production for multiple years by experienced Symfony teams, but now it’s time to give it a try for a much more broader audience than early adopters! We need as much feedback as possible to deliver the best stable version.

Backstory

Together with Michał we have started Lakion as a two man company in August 2014. Only last December we have finally assembled and trained a team that could enable full potential of the project. We have started major rework in order to turn Sylius into what it should be from the very beginning – the first decoupled eCommerce framework on top of Symfony and Doctrine.

As you can see from the screenshot above, this has been a huge effort from the Lakion Team and the entire Community.

What is Sylius really about?

We are developers and we wanted an eCommerce solution that is pleasure to work with. But as we have developed Sylius and worked with innovative businesses, including Start-up companies from all around the world – we have learned that they struggle with several problems:

Writing their own software from scratch “because there is nothing like this one on the market”;

Making the business fit into out-of-the-box solutions, instead of the other way around;

Accumulating Technical Debt too fast;

Not being able to change their software as fast as their business needs to pivot;

Sylius is the answer to all these problems!

Extensions for Sylius

Thanks to Symfony, we have a “plugin system” ready out of the box. That being said we are still experimenting with recommended ways to build Sylius extensions. The possibilities are really exciting and we are looking forward to publishing sample extensions and building a marketplace for these. This will help us to keep the core lighter and polish the feature we have instead of pushing towards building an all-in-one solution. Stay tuned!

Integrations

With core being much more stable, we encourage you to look at integrating Sylius with other Open Source projects. There are already Sylius + eZ Publish/Drupal 8 projects running in production with great results. We are hoping to have much more time now to work on these as the most “aggressive” development period is over.

BC Policy and Upgrades

If you have been using or following Sylius since early days (~2011), you know that very often the upgrade required more effort than expected. We are innovating at many areas (Symfony, Doctrine ORM, BDD with Behat, phpspec) and this required various experiments and evolutionary process. That being said, we are setting a much better BC Policy since this BETA Release:

Breaking changes will be only done when necessary (critical bugs, security issues, major DX issues, performance)

All breaking changes will be properly documented in the UPGRADE file, with clear instructions

Database structure shall not be altered in any major way. That being said, if it is needed, a migration preserving data shall be included

shall be included We are still experimenting with reusing Behat scenarios in projects, therefore the code related to them is not considered stable at least until the next release

REST API still requires some polishing and there will be breaking changes

We really appreciate our early-adopters, there have been great projects built on top of Sylius and we are looking forward to see more. Hopefully this BC policy will ease the migration to further releases.

Stable releases of Sylius will follow Semantic Versioning! Given a version number MAJOR.MINOR.PATCH, we will increment the:

MAJOR version when we make incompatible API changes,

MINOR version when we add functionality in a backwards-compatible manner, and

PATCH version when we make backwards-compatible bug fixes.

Currency Changes

There is one major BC break from previous versions – currency handling. Previously, Sylius had one base currency per installation and stored all amounts in the database using this currency. This was a serious limitation, because in order to operate in several currencies, you would need several instances or deal with rounding issues occuring when converting amounts.

Sylius is an eCommerce framework, so we have decided to change that just in time for the BETA release. Now, every channel has a base currency, so you can easily process payment in different currencies. Exchange rates are now only used for displaying purposes. That being said, every store and business is different, so we provide a sensible default that can be easily customized, even if you prefer previous behavior.

Demo

You can access our online demo here.

Installation

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

$ composer create-project -s beta sylius/sylius-standard project $ cd project $ npm install $ npm run gulp $ bin/console sylius:install $ bin/console server:start $ open http://127.0.0.1:8000

Documentation

Documentation has been greatly improved and contains much more instructions and customization guides than previous releases, have a look: docs.sylius.org.

Feedback & Community Support

Your feedback is the most important thing now. Install Sylius, play with it, play with our demo and post suggestions to our GitHub issues or ask on our community Slack (coming soon). The more we learn from this BETA period, the more bugs we fix, the better the final release will be and we will be able to enjoy being eCommerce developers again!

New website

As you have probably noticed, the new Sylius.org has been published together with this release. We hope you like it and it will be constantly developed to better support the community and Sylius as a product. Feel free to post suggestions in the comments section below this post.

What next?

Beta 1 will be followed by a series of additional beta releases with bug fixes, performance improvements and improved stability.

The release version of Sylius 1.0.0 will be ready after there are no more critical issues and we will have had at least one release candidate (RC) that does not introduce new bugs.

“When” you ask? “When it’s ready.” The more people help, the faster the release will be available to everyone. We expect it to happen within the next 4-6 months. As this is our first stable release, we really hope to gather a lot of feedback!

Thank you!

This BETA release is a huge thing. Really, the amount of effort everyone has put into it is amazing. I’d like to thank everyone involved, especially Michał and entire Lakion dev team: Kamil, Mateusz, Łukasz, Arek, Ania, Magda, Grzesiu and Jasiek.

Huge thanks goes to our great community members, who have been supporting us with ideas, bug reports and amazing feedback in 2016: Gabi, Peter, Dan, Steffen, Nicolas, Ben, Hussein, Loic, Oleg, Ishmael and many more…

Everyone has put tremendous work into this release… and we are not done yet. See you on GitHub! 🙂