We have released a new version of Shopsys Framework — v8.0.0!
We have continued our work in the areas we defined a few months ago, so in this version, you can look forward to the basics of our backend API, increased frontend performance, and upgrades to the administration.
8.0 version wraps all changes that have been introduced in previous minor versions 7.1, 7.2 and 7.3 LTS, giving you all of the performance boosts and pricing upgrades that we introduced previously.
As this is a major release, you can expect some features to have difficulty with backward compatibility, however, there’s no need to worry since every change has been covered in our detailed upgrading instructions.
What is new in Shopsys Framework?
Introducing the Backend API
Do you want to manage your products in ERP and transfer it to your e-commerce project? The API is the easiest way! Our goal is to create a clear backend API that will allow manipulation with entities from outside of the framework.
In this version, we’ve included basic solutions to manage goods via API. It covers the whole CRUD, so it is possible to export all the products from the e-shop, import them into another e-shop, and modify or delete them using the REST API. See API Methods article in our docs.
Not every project needs such functionality and we want to keep the framework lean, so the API is implemented as a standalone package and is not included in the default project-base. However, there is an automated script that makes the API installation super easy! See our Backend API Installation article for more information.
This step will be followed in the future by adding API methods for manipulation of prices, orders, and other features.
20% performance boost and scalability for frontend product lists
A few weeks earlier (in v7.3.0 release), we introduced a new layer in Shopsys Framework called read model that clearly separates the application model and view templates.
You can see it in action on frontend product lists where the read model objects are used instead of Doctrine entities, and data for displaying the products are obtained from Elasticsearch.
Now, to display a list of products on the frontend, you do not need a single call to the relational database (PostgreSQL).
Thanks to this the load times of product lists and search results have decreased by 20%.
Overcoming the technical debt is also one of our priorities.
Even though we, as developers, focus mainly on the framework’s internal operations and usage of up-to-date technologies, we understand that the user experience and a modern look of the application are equally important.
The frontend is always heavily customized for every project, but the administration part usually remains untouched, so in the v8.0.0 release, we decided to give it a facelift!
Product detail before:
Product detail after:
Developer experience improvements
The creation of new frontend pages is now easier thanks to the simplified registration of BreadcrumbGenerator (#1141) and FriendlyUrlDataProvider (#1140) classes.
Extending the model layer is a bit easier as entities don’t depend on services anymore (#1123).
All languages and collations are supported by default, thanks @henzigo for creating PR #1004.