Sylius v1.0.0 BETA2 Now Available!
We are happy to announce the availability of the second BETA release of Sylius! This long-awaited release finalizes the core functionality of the platform and adds the foundations for plugin development.
This release of Sylius is based on the huge amount of feedback from the first BETA release back in December. Almost 400 people have joined our Slack and provided us with plenty of bug reports, feature requests and support questions, which resulted in a much more complete codebase and documentation.
It is a result of over 1750 commits from 30 contributors. So, what is new in this release?
Complete Admin REST API
Thanks to the work of Łukasz, Ania and other amazing contributors, our REST API for admins is much more complete and allows managing products, taxons and store configurations. It also enables the API client to perform a full checkout process on multiple channels. This opens exciting opportunities for integrations with other systems, like ERPs, CRMs, PIMs and more. What is more, this API can be consumed by any device.
But stay tuned, we are working on the official plugin, which also adds a dedicated Shop API, which will make the development of mobile eCommerce applications and progressive web apps a breeze! We hope to release its MVP in the coming weeks.
One of our main areas of focus for this release was providing a foundation for plugin development. The reason is simple, we can’t have all the features and integrations in the core.
The biggest improvement is the new template events system, which will make upgrades much easier as you no longer need to override core templates to add something to the UI. If you like that feature, you should thank Grzesiu and Kamil!
Thanks to the fact that we are based on Symfony, which is the best PHP framework for web applications, we already had a powerful plugin system in place. We just needed to provide extension points in Sylius itself and document them. So far, you have the following extension points:
- Template events, which allow you to modify the Sylius built-in interface with blocks;
- You can provide traits, which extend the models;
- You can override/decorate all services, including repositories;
- You can use State Machine callbacks to customize the business logic;
- You can hook into our HTTP events, to override/customize responses/redirects or intercept certain actions;
- You can use events to modify menus;
- You can reconfigure grids & routings;
- And much more!
Sylius plugins are different from Wordpress plugins or PrestaShop modules, they are not “click to install”. They are Composer packages & Symfony bundles, which you install like and other library in your project. You can read more in our official plugin development guide and we will be following-up with blog posts and tutorials.
Magda has been continuing her amazing work on our documentation, which consists of the following parts:
- The Book, which will teach you about Sylius’ architecture, installation process and core concepts, like Product Catalog, Taxation, Shipping, Promotions and more;
- The Customization Guide, which describes the process of modifying Sylius core, extending it with new features both in your project and a plugin;
- The REST API Reference, which covers all the available endpoints, request & response formats for the admin API;
- The Cookbook, which contains concrete solutions to concrete problems, wondering “How to send a custom e-mail”? That’s the place to look for an answer;
- The Behat Guide, which documents our BDD approach and way of using Behat;
- Symfony Bundles & PHP Components, which covers our standalone packages;
- The Contribution Guide, which will get you up to speed with our internal development process;
We hope that all this work will help you in building your next eCommerce application with Sylius! ;)
Other Major Improvements & New Features
We have been working hard on completing the core feature set and improving the DX of Sylius!
YARN instead of NPM
Due to performance reasons and lack of version locking mechanism, we switched to Yarn for the frontend package management. Don’t worry, your package.json and Gulp files will still work.
Fully Translatable Product Catalog
We have completed the work on making the catalog translatable, and now all related data can be translated to multiple languages. That now also includes product attributes and associations. For proper SEO, the locale code has been added to the shop URLs.
Sorting in Admin
You can now sort shipping methods, taxons and products within taxons from the admin panel. This has been a much requested feature and now it is available for core entities. Can also be easily added to your custom models.
We have also added mechanism to prevent various race conditions in the checkout process and inventory. This solution is quite generic and can be used in your custom code as well.
Optimization & Autocompletes
All admin pages, which use taxons or products have been equipped with autocompletes, which prevent from too much data being loaded, hence allowing for larger product catalogs. We have also taken time to optimize the most important queries, which will result in much better performance. Arek and Jasiek have been working hard on this. Oh, did I mention we now have the ajax tree view for taxons?
UI Configuration for Payment Gateways
Thanks to the work of Mateusz & Maksim from Payum, you now can configure the gateways in the admin panel, without the need to redeploy the application. Also, the configurations are encrypted for security reasons.
BC Policy & Upgrades
No breaking changes will be done since this release, unless absolutely necessary. This applies (contrary to the previous BETA release) to all levels of the Sylius cake, including the REST API.
Only critical bugs or security issues will be considered valid reasons for breaking the BC and everything will be documented in the UPGRADE file.
You can access our online demo here. Give it a try and let us know what do you think!
You can install and try the latest Sylius by running the following commands:
$ composer create-project -s beta sylius/sylius-standard project $ cd project $ yarn install $ yarn run gulp $ bin/console sylius:install $ bin/console server:start $ open http://127.0.0.1:8000
Feedback & Support
We need your feedback. Our Slack & Facebook Group are growing and there are more and more questions on StackOverflow, which is a tremendous amount of learning for us. If you want to work with Sylius, make sure to join us there!
What is Next?
We are starting a new project called Wild Bug Hunt, which aims to identify and fix as many bugs as possible during this BETA period. As soon as we identify and fix enough critical issues and bugs, we can declare Sylius stable! Your help is needed now more than ever! ;)
Big thanks to the Sylius dev team and also to all contributors. Every issue, bug report, feature request is super important to us. There is plenty of new people in the community, patching small typos and bugs. Our daily installations have doubled, which means there is a lot of projects in the works, keep up the good work guys! We will make sure to give you the best eCommerce framework in the world! :) See you on GitHub!