This changelog references changes done in Shopware 5.1 patch versions.
View all changes from v5.1.5...v5.1.6
- The interface
Enlight_Components_Cron_Adapterinengine/Library/Enlight/Components/Cron/Adapter.phpgot a new methodgetJobByAction. For default implementation seeengine/Library/Enlight/Components/Cron/Adapter/DBAL.php. - Fix a unserialize regression with PHP 5.6.21 and PHP 7.0.6.
View all changes from v5.1.4...v5.1.5
- The smarty variable
sCategoryInfoin Listing and Blog controllers is now deprecated and will be removed soon. UsesCategoryContentinstead, it's a drop in replacement.
View all changes from v5.1.3...v5.1.4
- Customer logout will now regenerate the session id and clear the customers basket.
- Added
IsNewcondition for product streams - Added
SimilarProductscondition - Deprecated Method
Shopware\Bundle\StoreFrontBundle\Gateway\SimilarProductsGatewayInterface::getListByCategorywill be removed in shopware version 5.3 - Deprecated Method
Shopware\Bundle\StoreFrontBundle\Gateway\SimilarProductsGatewayInterface::getByCategorywill be removed in shopware version 5.3 - Added method
\Shopware\Models\Article\Repository::getSupplierListQueryBuilder()to make the query builder extensible - Added index on
s_article_img_mapping_rules.mapping_idands_article_img_mapping_rules.option_id - Fixed
ANDsearch logic for search terms which not exist in the s_articles table. - Added order and payment state constants in
\Shopware\Models\Order\Status - change email validation to a simple regex:
/^.+\@\S+\.\S+$/. You can implement your own email validation by implementing theEmailValidatorInterface. - Optimized header lookups for
x-shopware-cache-idwill improve HTTP-Cache invalidation performance. Old behaviour can be restored by settinglookup_optimizationto false - Moved the
divelement in blockfrontend_index_left_switchesbelowulelement for W3C compatability inthemes/Frontend/Bare/frontend/index/sidebar.tpl. - Added css rule in order to remove bottom border from last child of
.emotion--html > .html--contentso there is no scrollbar when only whitespace would overlap parent div - Enabled product streams for parent categories
- Disabled the automatic detection of similar products for install customers. Enabling this option may decrease the shop performance.
- Fixed the
removeListenermethod inEnlight_Event_Subscriber_Config,Enlight_Event_Subscriber_ArrayandEnlight_Event_EventManager - Removed
engine/Shopware/Bundle/SearchBundleES/SimilarProductsService.php - Added the possibility to configure the file and directory permissions for the
LocalCDN adapter.
View all changes from v5.1.2...v5.1.3
- Switch Grunt to relativeUrls to unify the paths to less.php
- Deprecated
Enlight_Application::getOption()andEnlight_Application::getOptions - Renamed smarty block from
rontend_index_starttofrontend_index_startinthemes/Frontend/Bare/frontend/sitemap/index.tpl - Added new global snippets before (
priceDiscountLabel) and after (priceDiscountInfo) all pseudo prices for the possibility to provide more detailed information - Removed old snippet
reducedPriceinorder_item_details.tplandcompare/col.tpl. - Introduced smarty blocks for footer headlines in
themes/Frontend/Bare/frontend/index/footer-navigation.tpl. New blocks:frontend_index_footer_column_service_hotline_headlinefrontend_index_footer_column_service_menu_headlinefrontend_index_footer_column_information_menu_headlinefrontend_index_footer_column_newsletter_headline
- Removed out-of-stock variant selection due to problems
View all changes from v5.1.1...v5.1.2
- Out-of-stock variants on the detail page are now selectable
ProductNumberService::getAvailableNumber()now returns the provided product variant to allow deep linking of out-of-stock variants- Added new configuration property to shopware themes, to configure the inheritance position before or after plugins.
- Added new smarty blocks
frontend_index_left_menu_entriesandfrontend_index_left_menu_containertoindex/sites-navigation.tpl. - Removed usage of the deprecated
Doctrine\Common\Annotations\FileCacheReader. Removed methods:\Shopware\Components\CacheManager::getDoctrineFileCacheInfo()\Shopware\Components\Model\Configuration::setFileCacheDir()\Shopware\Components\Model\Configuration::getFileCacheDir()
- Added
timed_deliverycolumn ins_campaigns_mailingsfor automatic newsletter delivering. - Added new Smarty blocks to the
index/index.tplfilefrontend_index_body_classesfrontend_index_page_wrapfrontend_index_header_navigationfrontend_index_container_ajax_cartfrontend_index_content_main
- Removed
extendsTemplate()method in the AdvancedMenu plugin. Now the template uses the normal{extends}action. - Moved template file of the AdvancedMenu plugin from the plugin directory to the normal index directory.
- Moved content for the AdvancedMenu to separate include file.
- Added new Smarty block for extending the complete AdvancedMenu template
frontend_plugins_advanced_menu_outer. - Removed obsolete config options
displayFiltersOnDetailPageandpropertySorting - Add sub shop validation in \Shopware\Bundle\StoreFrontBundle\Service\Core\ListProductService
- Add getProductsCategories function to \Shopware\Bundle\StoreFrontBundle\Service\CategoryServiceInterface and \Shopware\Bundle\StoreFrontBundle\Gateway\CategoryGatewayInterface which returns all categories of the provided products.
- Removed duplicate content in
frontend/detail/data.tplfor block prices - Marked unnecessary block
frontend_detail_data_price_infoas deprecated - Added seo title for landing pages
- Added config option to force the selection of a payment method in checkout
- Deprecated table column
s_filter_values.value_numeric \Shopware\Bundle\SearchBundleDBAL\PriceHelper::getSelection()now requires aProductContextinstead of aShopContext- Changed type of
\Shopware\Models\Article\Detail::$activetoboolean(wasinteger) - Emotions can be assigned to multiple categories. Author: Christiansen t.christiansen@reply.de via GitHub.
- Allow clearing caches after plugin update
- Added Event
Shopware_Modules_Admin_Execute_Risk_Rule_[RuleName]to provide checks for custom risk rules - Added sValidation parameter to the frontend/register/login.tpl url to redirect to same login page in case the login validation failed.
- Default media albums are now editable in their name. The negative ids are still compatible and fix for development checks and assignments.
- Add constants for default album ids in \Shopware\Models\Media\Album
- Replaced
FuzzyLikeThisFieldQuerywithMultiMatchQueryin ES Product Search implementation. Should now be compatible to versions >= 1.6 - Removed deprecated Google Analytics config form and s_core_plugins entry.
- Removed config option
fuzzysearchresultsperpage, usearticlesPerPageinstead.
View all changes from v5.1.0...v5.1.1
- Added new smarty block
frontend_detail_index_tabs_cross_sellingin the detail/ajax.tpl to prevent problems with custom themes - Renamed block
backend/order/view/detail/communicationinbackend/order/view/detail/configuration.jstobackend/order/view/detail/configuration. The name was duplicated in another file and was renamed to match the correct file.
View all changes from v5.0.4...v5.1.0
- Added event
Shopware_Plugin_Collect_MediaXTypesto collect media related x_type fields for which the value needs to be normalized - Updated Behat to v3.0 and other related libraries
- Activated media fallback by default so that old media paths get resolved to the new location
- Update ongr/elasticsearch-dsl to version 1.0.0-RC1
- Update elasticsearch/elasticsearch to version 2.0.0
- The MediaBackend and PathNormalizer have been moved into the MediaService
- The media live migration is now enabled by default
- Added new Smarty block
frontend_index_header_javascript_trackingfor tracking codes which are required to be included into the "head" section of the document - Upgraded mPDF to version 6.0
- Removed
Zend_Json_Serverrelated classes - Removed unused classes
Shopware_Components_Test_MailListenerandShopware_Components_Test_TicketListener - Removed unused snippets in
snippets/backend/article/view/main.ini:detail/sidebar/options/article_optionsdetail/sidebar/options/article_previewdetail/sidebar/options/columns/namedetail/sidebar/options/deletedetail/sidebar/options/drop_zonedetail/sidebar/options/duplicatedetail/sidebar/options/image_field_setdetail/sidebar/options/rapid_categorizationdetail/sidebar/options/select_categorydetail/sidebar/options/selected_categoriesdetail/sidebar/options/shopdetail/sidebar/options/titledetail/sidebar/options/tooltipdetail/sidebar/options/translatedetail/sidebar/options/upload_button
- Removed
Shopware.apps.Article.view.detail.sidebar.Linkbackend component and created two new components instead:Shopware.apps.Article.view.resources.DownloadsShopware.apps.Article.view.resources.Links
- Removed unused file:
themes/Backend/ExtJs/backend/article/view/detail/sidebar/link.js - Removed
article-sidebar-linkobject inShopware.apps.Article.view.detail.Sidebar - Changed views in
Shopware.apps.Article:- Removed
detail.sidebar.Link - Added
resources.Links - Added
resources.Downloads
- Removed
- Changed events in
Shopware.apps.Article.controller.Detail:- Removed
article-detail-window article-sidebar-linkevent alias - Added
article-detail-window article-resources-linksevent alias - Added
article-detail-window article-resources-downloadsevent alias
- Removed
- Changed grid reconfigures in
Shopware.apps.Article.controller.Detail:- Removed
mainWindow.down('article-sidebar article-sidebar-link grid[name=link-listing]').reconfigure(article.getLink()); - Removed
mainWindow.down('article-sidebar article-sidebar-link grid[name=download-listing]').reconfigure(article.getDownload()); - Added
mainWindow.down('article-resources-links grid[name=link-listing]').reconfigure(article.getLink()); - Added
mainWindow.down('article-resources-links grid[name=link-listing]').reconfigure(article.getLink());
- Removed
- Removed unused snippets in
snippets/backend/article/view/main.ini:detail/sidebar/links/download/buttondetail/sidebar/links/download/field_setdetail/sidebar/links/download/grid/deletedetail/sidebar/links/download/grid/editdetail/sidebar/links/download/grid/titledetail/sidebar/links/download/linkdetail/sidebar/links/download/namedetail/sidebar/links/download/noticedetail/sidebar/links/link/buttondetail/sidebar/links/link/field_setdetail/sidebar/links/link/grid/deletedetail/sidebar/links/link/grid/editdetail/sidebar/links/link/grid/externaldetail/sidebar/links/link/grid/titledetail/sidebar/links/link/linkdetail/sidebar/links/link/namedetail/sidebar/links/link/noticedetail/sidebar/links/title
- Removed
article-detail-window article-sidebar-optionevent listeners inShopware.apps.Article.controller.Media - Removed
onSidebarMediaUploadmethod inShopware.apps.Article.controller.Media - Removed
addCategory: me.onAddCategoryevent listener inShopware.apps.Article.controller.Detail - Removed
onAddCategorymethod inShopware.apps.Article.controller.Detail - Changed event listener alias from
article-detail-window article-sidebar-optiontoarticle-detail-window article-actions-toolbarinShopware.apps.Article.controller.Detail - Removed
article-sidebar-optionobject inShopware.apps.Article.view.detail.Sidebar - Removed
detail.sidebar.Optionfromviewsarray inShopware.apps.Article - Removed
Shopware.apps.Article.view.detail.sidebar.Optionbackend component - Removed
onTranslatemethod fromShopware.apps.Article.controller.Detail - Removed unused snippets in
snippets/backend/article/view/main.ini:detail/sidebar/accessory/article_numberdetail/sidebar/accessory/article_searchdetail/sidebar/accessory/assignment_boxdetail/sidebar/accessory/assignment_fielddetail/sidebar/accessory/bundle_boxdetail/sidebar/accessory/bundle_fielddetail/sidebar/accessory/deletedetail/sidebar/accessory/editdetail/sidebar/accessory/namedetail/sidebar/accessory/number
- Removed all unprefixed jQuery plugin events of the core plugins that were deprecated in the 5.0.2 Release.
- Removed the jQuery plugin events and added new prefixed values in these core plugins:
jquery.lightbox.jsjquery.loading-indicator.jsjquery.modal.jsjquery.advancedMenu.js
- Move directory
logs/tovar/log/andcache/tovar/cache - The property selection for an product is now a dedicated tab.
- The
beforeeditevent will now be triggered on thearticle-detail-window grid[name=property-grid] - The property selection was built from scratch to provide a better user experience but the method names haven't changed
- The store
Shopware.apps.Article.store.PropertyValueand the associated modelShopware.apps.Article.model.PropertyValueare not available anymore - Property values are now creates on demand with an AJAX request
- The selection of property values is now on select to allow for a faster usage of the component
- The
- Added library beberlei/assert for low-level validation.
- Changed returning array keys to
ordernumberin\sArticles::sGetArticlesByCategorywhich introduces an BC break for plugins hooking into the following methods:\Shopware_Controllers_Frontend_Listing::manufacturerAction\Shopware_Controllers_Frontend_Listing::indexAction\Shopware_Controllers_Widgets_Listing::ajaxListingAction\sArticles::sGetArticlesByCategory
- Added Escaper component to escape output data, dependent on the context in which the data will be used
- Added library zendframework/zend-escaper
- New interface:
\Shopware\Components\Escaper\EscaperInterface - Default implementation:
\Shopware\Components\Escaper\Escaper, usesZend\Escaper - Available in DI-Container:
shopware.escaper - Smarty Modifiers:
- escapeHtml
- escapeHtmlAttr
- escapeJs
- escapeUrl
- escapeCss
- The following basic settings values are deprecated and will be removed in Shopware 5.2. Their corresponding snippet values from the
backend/static/discounts_surchargesnamespace should be used instead:discountnamepaymentSurchargeAbsolutepaymentsurchargeaddpaymentsurchargedevshippingdiscountnamesurchargenamevouchername
- Added the ability to change variants using an AJAX call, therefore the page won't reload anymore. The configuration can be enabled / disabled in theme config, the default value is
true, therefore the variants will be loaded via AJAX by default.- Plugin developers which supports variants needs to change their plugin accordingly. They can subscribe to the event
plugin/swAjaxVariant/onRequestDatato update their plugin. - If your plugin modifies the product page using Smarty, you're good to go.
- Plugin developers which supports variants needs to change their plugin accordingly. They can subscribe to the event
- Deprecated pre-installed import / export module in favor of the new import / export plugin, which is for free now
- Changed the way in which order and payment status translations are handled:
- Added
Shopware\Models\Order\Status::name. Its value should be matched to the corresponding snippet name in one of thebackend/base/model/order_status/*namespaces - Deprecated
Shopware\Models\Order\Status::description Shopware.apps.Base.model.OrderStatusandShopware.apps.Base.model.PaymentStatusExtJs translations are now done using thenameinstead of theid.
- Added
- Deprecated
Shopware\Bundle\StoreFrontBundle\Struct\Thumbnail::getSourceSetsince it should be placed in a hydrator or view - Introducing the
MediaBundleto support huge amounts of media items and add support for CDN's (Content Delivery Network)- Added library thephpleague/flysystem to switch the underlying filesystem.
- Media directory structure has been changed
- Paths in
s_mediaare now virtual paths, meaning that the files will no longer be accessible with the given path. - A MediaBackend decides how and where media files are getting stored (e.g. /media/image/blue_shoes_size37.jpg could be /media/image/e0/77/f8/blue_shoes_size37.jpg)
- A MediaService handles file operations and generation of urls
- A MediaPathNormalizer removes all unrelevant parts of a string to get a coherent syntax like
media/image/blue_shoes_size37.jpg - A live migration, which is disabled by default, migrates media files to the new filesystem and format as they get requested
- The store front, product feed and api endpoints have already been updated to make use of the underlying filesystem.
- Paths in
- Added
sw:mediacli commands to easily manage your new media systemsw:media:migratemigrates from one filesystem to another- E.g. use
sw:media:migrate --from=local --to=awsto migrate all media items to Amazon S3
- E.g. use
- Added
sw:media:cleanupcli command to find all unused media and place them in a new album called Trash- Optional:
sw:media:cleanup --deleteto find all unused media and remove them automatically
- Optional:
- Added event
Shopware_Collect_MediaPositionsto collect more tables to scan for unused images. You should return a ArrayCollection of MediaPosition instances. - Added configuration option 'errorHandler.throwOnRecoverableError'. When set to true errors of type
E_RECOVERABLE_ERRORwill result in an exception. This is useful to test PHP 7 compatiblity. - Fixed duplicated jQuery event in
jquery.listing-actions.jsfromplugin/listingActions/onApplyUrlParamstoplugin/swListingActions/onGetListingUrl - Removed previously deprecated
Enlight_Components_Adodb- Container Key
AdoDb/ Shopware()->Adodb() sSystem::$sDB_CONNECTIONShopware_Plugins_Core_System_Bootstrap::onInitResourceAdodb()Enlight_Components_AdodbEnlight_Components_Adodb_Statement
- Container Key
- Removed previously deprecated search classes:
Shopware_Components_SearchShopware_Components_Search_Adapter_DefaultShopware_Components_Search_Adapter_AbstractShopware_Components_Search_Result_DefaultShopware_Components_Search_Result_AbstractShopware_Components_Search_Result_Interface
- Removed previously deprecated API
Shopware()->Api()Shopware_Plugins_Core_Api_BootstrapsCsvConvertsShopwareExportsShopwareImportsMappingConvertsXmlConvert
- Removed previously deprecated table
s_core_multilanguage- Table:
s_core_multilanguage Shopware_Plugins_Core_System_Bootstrap::getSingleShopData()sSystem::$sSubShop
- Table:
- Removed previously deprecated Plugin Bootstrap methods
Shopware_Components_Plugin_Bootstrap::deleteForm()Shopware_Components_Plugin_Bootstrap::deleteConfig()Shopware_Components_Plugin_Bootstrap::createHook()Shopware_Components_Plugin_Bootstrap::subscribeCron()Shopware_Components_Plugin_Bootstrap::createEvent()
- Removed previously deprecated or unused classes / methods
sSystem::E_CORE_WARNING()sSystem::$sExtractorsSystem::$sPathArticleFilessCore::rewriteLink()Shopware_Bootstrap::run()Shopware_Controllers_Backend_ExtJs::setAclResourceName()Shopware\Models\Property\Repository::getGroupsQueryBuilderShopware\Models\Property\Repository::getGroupsQueryShopware_Plugins_Frontend_CronRefresh_Bootstrap::onCronJobTranslation()Shopware_Components_DummyPlugin_Bootstrap