3 min. read
Categories:
Sylius v0.15.0 with multiple channels
This release brings tons of bug fixes and new features, like support for multiple channels!
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!

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
Cloud 3 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
Technical 3 min read 11.06.2024
Abstract 1.12 released in Q4 2022 1.13 on Apr 23rd, 2024 (a year later than we anticipated while releasing 1.12) 3859 commits 23 contributors A stabilized Sylius API powered by API Platform It’s been a long and bumpy road. Having it behind our backs was a highway that led Sylius… Read More
Business Ecosystem News 3 min read 06.06.2024
Welcome to the May summary! As an open-source eCommerce framework, Sylius continues to evolve with significant contributions from our vibrant community and valuable product updates. Apart from describing the technical changes, we will also quickly summarize the Sylius Technical Fundamentals & Sylius Polish Community Meetup and eCommerce Day Kaunas, as… Read More
Comments