A new version of Shopsys Framework is out — v7.3.0 LTS! This will be the last minor release before 8.0.0 is released. This is the first long-term support (LTS) version, which basically means that we are going to offer support in the form of release patch versions on a regular basis up until 9.0.0 is released. If your project is based on this version, you can be sure you will get all the important bugfixes.
In this release, we generalized VAT calculations to simplify its worldwide usage, improved the work with Elasticsearch, and as always, we devoted some time to the incorporation of the feedback from our community. We are grateful that many improvements and bugfixes were merged thanks to the reported issues and proposed pull requests.
We do not use a rounded VAT coefficient for the price calculation anymore.
The price calculation is simplified to be in accordance with VAT laws in the majority of countries worldwide.
Selling prices with VAT are not affected at all by this change (only selling prices without VAT are changed).
Prices in the orders that were created in the past are not affected in any manner.
Projects based on Shopsys Framework go to the Cloud
In the last few weeks, we helped a few implementation teams to successfully run their Shopsys Framework based projects in Cloud solutions (AWS, OpenStack). Thanks to that, we are gaining more and more experience from real-life scenarios which in turn helps us make the framework run better and better in the Cloud.
We are leveraging Elasticsearch more and more to boost the performance and we are improving its usage along the way:
The data structure in Elasticsearch is now updated swiftly during deploy which results in significantly shorter downtimes (#1133).
Data sorting in Elasticsearch now respects the specific language sort order (#1069).
Elasticsearch debug toolbar can be a very handy feature for project developers for streamlining everyday functions; thanks @pk16011990 for creating PR #1053!
For now, we have decided to support two implementations of product filtering using either SQL or Elasticsearch. Both the approaches are covered by automated tests and project developers have a choice on which implementation they want to use. There are instructions for a project developer who extend one of the implementations (#1130). If interested, you can read about the two implementations in Front-end Product Filtering.
The memory usage during data export to Elasticsearch is now stable even with an increased number of products (#1122).
When a product is created, edited, or deleted in administration, the data is exported to Elasticsearch instantly, hence the users can see the changes immediately (#1153).
Other improvements and fixes
Developers have a new awesome section in Symfony debug bar available! It includes useful information about their project, such as which version of Shopsys Framework they use. Thanks @henzigo for the implementation in #1015.
Services configuration in project-base is now unified with the one in the framework. That means when a developer extends a service in his project, they can be sure their class is configured the same way as the parent one from the framework. Thanks @pk16011990 for proposing the change in #1049.
Shopsys Framework source codes are improved to fulfill PHPStan level 4 rules so your project will be automatically checked for hard to spot mistakes, like incorrect return types of methods. This allows potential bugs to be discovered and fixed in advance (#1040).
We value community involvement, and are always looking for ways to make it easier to contribute to Shopsys Framework. There were already standards checks and unit tests run on Travis for each pull request made on Github, but now we’ve also added functional, smoke, and acceptance tests so a developer knows whether their modifications pass all the important checks (#1031).
Phing targets (console commands for the application management) are restructured, refactored, cleaned up and made upgradable! The project developers are now able to use and extend them with ease (#1068).
It is now easier to extend the framework’s Twig extensions. The classes in the namespace are now watched by ForbiddenPrivateVisibilityFixer to be sure there are no private properties or methods (#1114). Thanks @henzigo for reporting!
Image config definition now works properly with additional image sizes in types; thanks @HakimFractal for fixing the bug in PR #1092!