Release Notes - October - 2 2017Edit on GitHub
Multi-currency for Discounts
We are currently working on full enablement of multi-store and multi-currency concepts. In consequent releases, we will be enabling every relevant functionality with multi-store and -currency step-by-step.
This release focuses on enabling multi-currency for discounts. It allows you to enter discount amount per currency and price mode (net/gross), filter discounts by currency and/or price mode. We have also introduced new money collection component for multi-currency forms.
For module documentation, see Module Guide - Discount, Module Guide - Currency, Module Guide - Money.
For detailed migration guides, see Discount Module Migration Guide from Version 4. to 5, Migration Guide - Discount Amounts Migration Console Command.
To upgrade, follow the steps described below:
- Apply every minor and patch:
composer update "spryker/*"
- Once that is done, upgrade to the new module major and its dependencies:
composer require spryker/cart-currency-connector:"^1.0.0" spryker/discount:"^5.0.0"
Twig Data Access Optimization
With this release, we are introducing performance optimizations for a transfer object. The usage of transfer objects is a frequent procedure in Twig templates. Flexible Twig tries to access a property of a passed object in different ways and that slows it down. The most optimized way is to pass an array to twig (up to 10x). In order to achieve a middle level optimization (3x) for Twig calls without any changes from project side, we now apply
ArrayAccess to transfer object.
Code Sniffer for Project Modules
With this release, we now allow the code sniffer to run in module specific folders on project level. It checks the existence of each application layer per module. You can run the code sniffer for a specific module using the following command:
console code:sniff:style -m MyModuleName. You can also check out the new version of our Code Sniffer 0.11.0. We now have full PSR-2 support and many new powerful sniffs available.
Architecture Sniffer for Custom Paths in Project or Vendor
With this release, the architecture sniffer supports custom paths for project and vendor folders.
Prevent Logger from Encoding All Entity Relations
In order to have a detailed DB access log during development, Spryker provides Propel model builder with a logger stack attached. In some cases, the logger stack could cause a system timeout. To prevent this, the logger stack now processes only the array presentation of Propel entities, Spryker Demoshop uses a model builder without logging by default.
In order to prevent performance issues and switch off the Propel logging in your project:
- Find the “APP_DIR/config/Shared/config_propel.php” and replace in it the Propel object builder from
Propel models with./vendor/bin/console propel:model:build` in command line.
Synchronize URL Facade Bridges
UrlFacade offers backward compatibility over
UrlFacadeInterface::deleteUrlRedirect() methods. Related bridges in other modules now also allow the backward compatible calls to the
UrlFacade and thus the interface incompatibilities between Facade and Bridges were removed.
getMulti Returning Nonprefixed Keys
With one of our recent releases, in order to implement cache for getMulti, a BC breaking bug was introduced. getMulti was returning nonprefixed keys. This issue has been fixed now.
Navigation Child Node Frame
In Zed Administration Interface for the Navigation UI, the child node frame height was formerly causing usability issues. In certain cases the height of the frame was too small introducing inner scrolling. This issue is fixed now by introducing a new way of height calculation.
Your feedback would be highly appreciated. Please help us understand what you need from the Spryker Academy by filling out a very short survey.
For submitting the form