Sylius v1.0.0 Released! Try it out now!

Blog

Welcome to our blog, where we share news related to Sylius and post about technology & eCommerce.

Sylius v0.15.0 with multiple channels

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.

Overview

The new release is over 570 commits from almost 40 contributors. There are several big new features and improvements worth mentioning:

Multi-Channel

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:

  • Languages
  • Currencies
  • Products
  • Shipping and Payment Methods

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.

Dropping FOSUserBundle for Customer/User separation

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:

Conventions

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.

Separation of User and Customer

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:

  • Customer contains all personal information (e-mail, firstname, lastname, gender, preferences etc.);
  • User entity holds the credentials and everything related to the user account;
  • Every User is related to a Customer, but not every Customer has a User account;
  • Customer is created when someone sends a contact request, sign ups for a newsletter or places an order as a guest;
  • You can also create Customers in the backend;
  • User is created transparently for a Customer, when he want to setup an account in the store.

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.

Payment fees and many bug fixes

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.

Things coming in v0.16.x and future versions

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:

  • Advanced SEO metadata management
  • Product reviews
  • Product associations
  • Better attribute handling
  • SymfonyCMFMedia for handling all product media
  • Theming support (theme inheritance)
  • Grids & improved backend interface (materializecss)

All this stuff has PR waiting for final polish and review!

Installation

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.

Summary

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!


More from our blog

A Month of Sylius #4 (October 2017)

October was the first month in business with the stable version of Sylius. We are happy and impressed with the number of contact, services & partner requests we have received. It only proves the value of the product and we are doing our best to build a vibrant ecosystem around the technology that we love.

A Month of Sylius #3 (September 2017)

The most important month in Sylius history so far is already behind us. As you know, v1.0.0 was released on 13th of September. We needed some rest after these intense days, but now we’re getting back to you with even more power.

#SyliusOneZero Contest Results

Time to announce #SyliusOneZero Contest Results. Read the blog post to find out who wins and how great our community has reacted to the Stable Release.

Sylius v1.0.0 Released

We did it folks! We are excited to announce the availability of the first stable release of Sylius! This milestone is an amazing achievement of our community. We believe it will make eCommerce developers enjoy their work again.

Want to boost your business with Sylius?

CONTACT US