This changelog references changes done in Shopware 5.5 patch versions.
View all changes from v5.5.9...v5.5.10
- Added support for environments using
open_basedirfor restricting access to the filesystem
- Changed
\Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\CategoryGateway::getto supportintandarrayparameters
- Deprecated support for
arrayparameters in\Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\CategoryGateway::get, use\Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\CategoryGateway::getListinstead
View all changes from v5.5.8...v5.5.9
- Added option to "I am" select field in basic configuration
- Added paragraph to license.txt regarding the permission to relicense plugins
- Added cartItem to event
Shopware_Modules_Basket_UpdateArticle_Start - Added OPCache options
opcache.use_cwdandopcache.validate_rootto the system info's requirements tab - Added more GTIN formats for itemprops in
frontent/detail/content/header.tpl - Added following events to
sBasketShopware_Modules_Basket_DeleteNote_StartShopware_Modules_Basket_UpdateArticle_FilterSqlDefaultParametersShopware_Modules_Basket_UpdateCartItems_UpdatedShopware_Modules_Basket_BasketClearedShopware_Modules_Basket_DeleteArticle_StartShopware_Modules_Basket_DeletedArticleShopware_Modules_Basket_getTaxesForUpdateProduct_FilterReturn
- Added new blocks to
frontend/checkout/ajax_cart.tplfor inactive links to checkout:frontend_checkout_ajax_cart_open_checkout_inner_unavailablefrontend_checkout_ajax_cart_open_basket_unavailable
- Added the following public methods to
Shopware\Models\Order\Repository:getDetailsQueryBuildergetPaymentsQueryBuildergetDocumentsQueryBuilder
- Added product number and open action to backend product stream module
- Added new column
pseudo percentin article detail module - Added new interface
ReflectionAwareInterface
- Changed meta-tag
viewportto allow zooming on mobile devices - Changed the usage of translation for shop pages in the side menu in mobile view
- Changed the
worstRatingfor Google's struct data - Changed
SnippetManagerto consider plugin directories and theme directories inreadFromInimode - Changed
Checkoutcontroller, to resolve race condition problems on confirm page - Changed the album selection in the media manager for the blog images to show all images
- Changed
BlogandListingcontrollers to throw an exception if a blog category-id is passed to theListingcontroller or vice versa - Changed
EsBackendIndexerto improve support for unicode characters - Changed
mediaselectionfieldto also work with enabled translation in tabs - Changed RSS templates to contain correct language code
- Changed
BatchProcessto fix an issue withremoveStringoperator - Changed the handling of custom-page attribute translations
- Changed the handling of the grouping for shop pages
- Changed custom-page attributes to be translated properly
- Changed shop page attributes to be translatable
- Changed Symfony library to version 3.4.27
- Changed buttons in empty off-canvas baskets to be disabled
- Changed button for mobile-view rating to work properly
- Changed cache file permission definition in
\Enlight_Template_Manager - Changed Article and Category API endpoints to support translation of attributes with underscores
- Changed the order of the columns in article module
- Changed the listing for the category-teaser to also list main categories
- Changed template
register/personal_fieldset.tplto not show the 'No account' checkbox on signup form
- Deprecated
sBasket::clearBasket, usesBasket::sDeleteBasketinstead - Deprecated
Shopware\Models\Article\Download::getSizeandShopware\Models\Article\Download::setSize. UseShopware\Models\Media\Media::getFileSizeandShopware\Models\Media\Media::setFileSizeinstead - Deprecated column
s_articles_downloads.size. Uses_media.file_sizeinstead
View all changes from v5.5.7...v5.5.8
- Added new config
alwaysShowMainFeaturesto show the template frommainfeaturesin the whole checkout process - Added configuration for displaying shipping costs pre calculation in off canvas shopping cart
- Added wrapping smarty blocks to
documents/index.tpl - Added condition for not displaying basic price if it is a product with graduated prices
- Added new block
frontend_account_order_item_detail_info_wrappertoaccount/order_item_details.tpl - Added missing attribute accessor methods to
CustomerStreammodel - Added rich-snippets for
priceValidUntil,url,imageandgtin13 - Added new block
frontend_index_header_meta_tags_innertofrontend/index/header.tpl - Added preselected checkbox option to 'Deactivate No Customer Account' in basic configuration
- Added an upload compatibility check for plugins
- Added smarty function
http_build_queryto the list of allowed functions - Added Elasticsearch mapping debug option to show all mapping data
- Changed HTTPCache to fix issues with the first request of a URL when debugging is active
- Changed url plugin to resolve base-url on CLI
- Changed variant switch to consider url parameters without value
- Changed
CategoryProviderto skip excluded categories from sitemap - Changed
CookieSubscriberto clear session value foruserInfoafter a login - Changed article REST api to properly deal with configuration option positions
- Changed shipping costs pre calculation display configuration
- Changed
HreflangServiceto only consider active subshops - Changed availability filter for ES condition
- Changed
ProductListingVariationLoader::fetchAvailabilityto consider only given variants - Changed cachebuster parameter for images in backend to contain the datetime of the last change
- Changed
font-displayvalue toswapfor improved font rendering performance - Changed
CdnOptimizerServiceto work with external filesystems - Changed
sAdmin::sLogoutto refresh ShopContext on logout - Changed ESD download to send headers only once, fixing issues in IE and Safari browsers
- Changed role selection in rule management to work with roles from the second page
- Changed backend log viewer to work properly
- Changed conversion of resource to service id with CamelCase-Name
- Changed duplicated variable assignment in
frontend/checkout/header.tpl - Changed blog meta description length from 150 to global used meta description length
- Changed deprecation on
Shopware\Bundle\SearchBundleDBAL\PriceHelperInterface. It was deprecated since 5.3.0, that deprecation got removed
- Deprecated the class
Shopware_Components_Benchmark_Point. It will be removed in 5.6 without replacement. - Deprecated the class
Shopware_Components_Benchmark_Container. It will be removed in 5.6 without replacement. - Deprecated the class
Shopware_Controllers_Backend_Search::getArticles. It will be removed in 5.7, use the ProductRepository instead. - Deprecated the class
Shopware_Controllers_Backend_Search::getOrders. It will be removed in 5.7, use the OrderRepository instead. - Deprecated the class
Shopware_Controllers_Backend_Search::getCustomers. It will be removed in 5.7, use the CustomerRepository instead. - Deprecated the function
sArticles::sCheckIfEsdas it is unused. It will be removed in 5.7 without replacement.
Shopware by default only allows a fixed list of known file extensions to be uploaded to the server using the MediaManger. If you need to upload files with an extension not in this internal list, you can now add necessary file extensions in your config.php:
<?php
return [
...
'media' => [
'whitelist' => [
'docx',
'xslx'
],
]
];Shopware adds a _source to reduce the size of the indices by default. By setting the debug option to true, you can get every field back by Elasticsearch.
<?php
return [
...
'es' => [
'debug' => true,
]
];For security reasons, some extensions like php, cgi, com, exe are not allowed in the whitelist.
View all changes from v5.5.6...v5.5.7
- Added a license synchronization button in Plugin Manager
- Added a standardized way to filter certain entities from being exported to the sitemap, or have custom URLs exported as well (see paragraph "Excluding URLs from sitemap and adding custom URLs" below)
- Added new blocks
frontend_listing_actions_paging_innertolisting/actions/action-pagination.tplandfrontend_listing_actions_sort_innertolisting/actions/action-sorting.tpl - Added
shopIdto theShopware_Controllers_Seo_filterCountsEvent - Added
laststockto "Apply Standard Data" - Added blocks "frontend_index_header_css_screen_stylesheet" and
frontend_index_header_javascript_jquery_lib_file - Added button to order module detail window, to open customer directly
- Added new option to AdvancedMenu to improve performance when not using customer groups
- Added clearing of note entries, that are older than a year, by the "CronRefresh" cronjob
- Changed the default value in column
s_core_auth.lockeduntilto2010-01-01 00:00:00 - Changed order module sorting to consider sorting also when elasticsearch is activated
- Changed
StaticUrlProviderto prevent duplicate URLs - Changed minibasket to also update amount/number badge when the last product is being removed from offcanvas basket
- Changed libraries in Updater-app to most recent versions
- Changed initial BI teaser to only show after a few days
- Changed
jquery.datepicker.jsto initialize component value by element value on init - Changed return array of
\Shopware\Bundle\ESIndexingBundle\TextMapping\TextMappingES5::getNotAnalyzedFieldto fix warning thrown on indexing in an Elasticsearch 5 server - Changed double cache testing in advanced menu
- Changed
ReflectionHelperto improve support for Composer projects - Changed filters in blog categories can now be hidden in mobile view
- Changed plugin CLI commands to clear relevant caches
- Changed jQuery preloader plugin to fix reset function
- Changed SQL query in risk management to avoid block nested loops
- Changed
GarbageCollectorto consider links - Changed the type of the
docIdcolumn ins_order_documentsto VARCHAR, the models and backend module have been changed accordingly - Changed pluginPath assignment in
\Shopware\Commands\PluginDeleteCommand::executeto delete plugins located in "/custom/plugins/" correctly - Changed the backend search for chars like 'ß'
- Changed following service ids to lower-case:
LoaderHooksModelconfigEventSubscriberOrderHistorySubscriberCategorySubscriberCategoryDuplicatorCategoryDenormalizationMediaSubscriber
- Deprecated the global
$Shopwarevariable in templates. It will be removed in 5.6 without replacement. - Deprecated the following classes:
\Shopware\Components\Plugin\XmlMenuReader\Shopware\Components\Plugin\XmlCronjobReader\Shopware\Components\Plugin\XmlPluginInfoReader\Shopware\Components\Plugin\XmlConfigDefinitionReaderThey have been replaced in Shopware 5.6 with new implementations in the namespace Shopware\Components\Plugin\XmlReader
- Removed
appendSessionparameter from router due to possible security implications. Use theOptinServiceto store the session name and id internally and use the generated hash in combination with a ListenerService instead to restore the session where necessary - Removed duplicate folder renaming in
PluginExtractor
With Shopware 5.5.0, we added a better way to handle a lot of sitemap URLs. Unfortunately this way we also dropped the support for customizing the URLs being used in a sitemap.
With Shopware 5.5.7, we've reimplemented a way to deal with unwanted URLs, as well as a way to add custom URLs to your generated sitemaps.
Just add the example configuration mentioned below into your config.php file.
<?php
return [
...
'sitemap' => [
'excluded_urls' => [
[
// Possible resources:
// - product (\Shopware\Models\Article\Article::class)
// - campaign (\Shopware\Models\Emotion\Emotion::class)
// - manufacturer (\Shopware\Models\Article\Supplier::class)
// - blog (\Shopware\Models\Blog\Blog::class)
// - category (\Shopware\Models\Category\Category::class)
// - static (\Shopware\Models\Site\Site::class)
'resource' => \Shopware\Models\Article\Article::class,
// The ID for the entity mentioned above (e.g. 5 excludes the URL for the product with ID 5).
// If left empty (or 0), the whole resource will be skipped for URL generation
'identifier' => '',
// The ID of the shop to which this exclusion applies. If left empty (or 0), this applies for every shop
'shopId' => 0
]
],
'custom_urls' => [
[
// The custom URL
'url' => 'https://myCustomUrl.de',
// Date in format Y-m-d H:i:s
'lastMod' => '2019-01-01 00:00:00',
// How frequently the page is likely to change
// Possible values: always, hourly, daily, weekly, monthly, yearly, always
'changeFreq' => 'weekly',
// The priority of this URL relative to other URLs on your site
// Must be a value between 0 and 1
'priority' => 0.5,
// The ID for the shop to which this custom URL applies. If left empty (or 0), this applies for every shop
'shopId' => 2,
]
]
]
];- Deprecated the unspecific request params assignment to view in
\Shopware_Controllers_Widgets_Listing::productsActionand\Shopware_Controllers_Widgets_Listing::streamAction. Use a *PostDispatchEvent to assign necessary variables in a plugin. The assignment will be removed in 5.6
View all changes from v5.5.5...v5.5.6
- Changed the selector for the emotion-wrapper in
jquery.emotion.jsto fix an issue with emotions using the 'resize' layout - Changed SQL in migration to fix possible issues
View all changes from v5.5.4...v5.5.5
- Added attributes to shop entities
- Added missing countries to list of available countries (table
s_core_countries) - Added new event
TemplateMail_CreateMail_MailContexttoengine/Shopware/Components/TemplateMail.php - Added new event
Shopware_Modules_Basket_CheckBasketQuantities_ProductsQuantity - Added new config option to define Elasticsearch version
- Added internal locking to sitemap generation so the sitemap isn't generated multiple times in parallel
- Added event
plugin/swAjaxVariant/onHistoryChangedin in order to listen to changes in browser history after variants did change - Added blocks
frontend_account_order_item_pseudo_price_innerandfrontend_account_order_item_pseudo_price_inner_valuetofrontend/account/order_item_details.tplto modify price if necessary - Added filter event
Shopware_Modules_Basket_CheckBasketQuantities_ProductQuantitiesin order to modify variables for each basket item - Added
max_expansionsin config.php for thephrase_prefixesnameandnumber - Added aggregation size to product attribute range sliders
- Added product attribute parser for elasticsearch indexing to allow indexing of boolean values
- Added alias
shopware.api.customerstreamto service with idshopware.api.customer_streamto fix problem in cronjob - Added new property
showIdColumntoShopware.grid.Panelto add the possibility of showing the id column - Added
CustomEventPolyfillfor IE 11 on Windows 7 - Added article details to api variant endpoint
- Added
INandNOT INoperators for filters in backend's article overview - Added a new event
onRequestDataCompletedto jQuery pluginswAjaxVariant - Added support for attribute html fields in the media garbage collector
- Added block 'backend/search/index/result' to the backend search result template
- Added loading of payment attributed to the frontend
- Added new console command
sw:refresh:topsellerto refresh the topsellers - Added help text icon and support text icon to ExtJs HTML fields
- Added new template blocks
frontend_account_order_item_pseudo_price_innerandfrontend_account_order_item_pseudo_price_inner_valueinaccount/order_item_details.tpl - Added the interfaces to the classes in the StoreFrontBundle where they are missing
- Added
setTemplateNameandgetTemplateNamemethods toEnlight_Components_Mail
- Changed all occurences of snippets embedded in strings
- The snippets content now gets assigned to a variable instead
- This may lead to broken links or text, in case a snippet contains escaped quotemarks (
\"), since escaping them is not necessary anymore
- Changed Symfony library to version 3.4.21
- Changed non-idempotent basket actions to forward the current request
- Changed user timeout to session
session.gc_maxlifetime - Changed itemprop
priceCurrencyto be available for products with price groups - Changed
ajaxListingaction tolistingCountaction in Bare theme - Changed backend filter for variants with laststock
- Changed namespace for plugins in custom/project directory to fix theme recognition in composer projects
- Changed calculation of conversion rate in backend widget
- Changed wrong exception instantiation in
\Shopware\Components\Thumbnail\Manager - Changed snippet namespace parsing to improve compatibility to windows installations
- Changed Querybuilder to fix compatibility with PHP7 on cygwin
- Changed
\Shopware_Controllers_Backend_Base::addAdditionalTextForVariantto show variant text on new order position - Changed the jQuery swRegister plugin to use the correct input ids for input validation if they were changed by data attributes
- Changed
\Shopware_Controllers_Backend_Application::resolveExtJsDatato use constants instead of numbers in ORM relation mapping - Changes category links in HTML sitemap to now also be translated
- Changed filter for
data-attributes - Changed display of translatable checkbox attributes in backend to show the fallback value if no translation is configured
- Changed sitemap export to contain the correct lastmod in sitemap entries of products
- Changed the internally stored last exported product ids to prevent duplicate exports of single products in the sitemap
- Changed the reset of the account number when saving a costumer
- Changed the overwrite protection time zone when saving an order detail or deleting one
- Changed Plugin Manager in backend to also show strikethrough prices of plugins
- Removed unused
Shopware.data.ClassCacheExtJs class
Wherever a snippet's content was embedded inside a string, it's value now gets assigned to a variable instead. This may lead to broken links or text, in case a snippet contains escaped quotemarks (\"), since escaping them is not necessary anymore.
Please check all snippets with escaped quotation marks after upgrading.
By default, Shopware makes an info request to the Elasticsearch backend to be able to determine the version of Elasticsearch that is being used. In high load environments, this can create unnecessary additional load on all services due to the slight overhead these requests create.
Starting with Shopware 5.5.5, it is possible to define the version of Elasticsearch being used in the config.php like described below. Doing so will keep Shopware from making these info requests.
<?php
return [
...
'es' => [
...
'version' => '5.6.5',
],
];View all changes from v5.5.3...v5.5.4
- Added the following new blocks to
themes/Frontend/Bare/widgets/captcha/custom_captcha.tplfrontend_widgets_captcha_custom_captcha_configfrontend_widgets_captcha_custom_captcha_honeypot
- Added dependency to Symfony Expression Language, this allows using something like
container.initialized('shop') ? service('shop') : nullinservices.xml - Added
deleteDocumentACL privilege to order - Added new event
Shopware_Controllers_Backend_CustomerQuickView_listQuerySearchFields - Added forwarding to manufacturer listing for old supplier urls
- Added support for own product box layouts via an ExtJS Plugin
- Added AWS endpoint configuration
- Added product notification attributes
- Added
DISTINCTforpriceListingQueryto improve ES indexing performance with activated variant filter - Added media optimizer overview to backend systeminfo
- Added
notify-eventShopware_Command_RebuildSeoIndexCommand_CreateRewriteTablethat is triggered after the SEO index is rebuilt via cli commandsw:rebuild:seo:index - Added privilege check for sensitive data of API's user endpoint
- Added functionality to restore expert mode status on snippet manager loading
- Added possibility to create a customized product box layout with own ExtJS plugin
- Added product information to
sARTICLEAVAILABLEtemplate - Added country filter to customer module
- Added country entity to attributes multiselect
- Added changetime to ListProduct struct
- Added events indicating plugin-lifecycle changes to PluginInstaller
- Added grunt development task
- Changed Symfony library to version 3.4.19
- Changed new countries created via programming interfaces default to allowing shipping to restore backwards compatibility to versions before Shopware 5.5.3.
- Changed
themes/Frontend/Bare/widgets/captcha/custom_captcha.tplto also include the honeypot captcha template if the corresponding option is active - Changed
themes/Frontend/Responsive/frontend/_public/src/js/jquery.captcha.js, so the plugin won't try to fetch the honeypot captcha template via AJAX - Changed the following templates to include the
custom_captcha.tpltemplate, if any other captcha method than "legacy" is active:themes/Frontend/Bare/frontend/blog/comment/form.tplthemes/Frontend/Bare/frontend/detail/comment/form.tplthemes/Frontend/Bare/frontend/newsletter/index.tplthemes/Frontend/Bare/frontend/tellafriend/index.tpl
- Changed seo product query to clarify select statement
- Changed document view to hide document boxes on new entry
- Changed
CronjobSynchronizerto consider action names without Cronjob Prefix - Changed
Enlight_Template_Managerto allow overriding file permissions - Changed API variant resource to compare configuration groups in lowercase
- Changed type annotation on a product's EAN field
- Changed ES backend
OrmBacklogSubscriberto fix backlog sync - Changed adding items to the cart to use laststock from variant
- Changed structured data properties on blog article page to meet the requirements
- Changed default groupKey to get correct subpages of custom pages in mobile menu
- Changed some mailer options to combo boxes to avoid wrong entries
- Changed CSV import of snippets to only remove one apostrophe from the beginning of a line
- Changed field trackingcode to type "text" to be able to save multiple trackingcodes
- Changed open-sans file size
- Changed mailer config elements to combo box to simplify configuration
- Changed
Kernel::getRootDirto usedirnameinstead ofrealpath - Changed backend search to consider order documents
- Changed customer orders to translate order state
- Changed product preview combobox to show only active shops
- Changed EventManager to improve plugin phpunit capability
- Changed regex in media manager to filter all symbols
- Changed cart item information to use laststock from variant instead product
- Changed media normalizer to consider model objects
- Changed
clear_cache.shto usersyncif available for faster cache clearing
- Removed IE history check from ajax variants
- Removed wrong css class from password reset page
View all changes from v5.5.2...v5.5.3
- Added shipping country restrictions
- Added ESD Article support for REST API
- Added where-Condition for ES SubPriceQuery to improve indexing speed with active variant filter
- Added filter event
Shopware_Components_Document_Render_FilterMpdfConfigto be able to filter the mpdf config for document rendering - Added the
renderer=htmlGET-parameter to be able to debug documents - Added button to unlock backend users in the detail view
- Added new payment api resource
- Added fileSize column to table view of media manager
- Added possibility to use boolean keywords when defining boolean attributes
- Added shop site as possible entities in attributes
- Added translation fallback for mails
- Change order overwrite protection to fix false positive message
- Changed backend session loading to fix issues with incomplete locale object
- Changed model definition of order status to allow setting id
- Changed multi select entities in attributes to allow shop sites
- Changed "Save" on newsletter page is now being disabled on submit
- Changed Shopware RSS Feed to use php default stream context
- Changed topseller generation so it now also works when topseller are deactivated
View all changes from v5.5.1...v5.5.2
- Added the following events for newsletter un/subscription
- filter:
Shopware_Controllers_Frontend_Newsletter_sendMail_FilterVariablesShopware_Modules_Admin_sendMail_FilterVariables
- notify:
Shopware_Modules_Admin_Newsletter_UnsubscribeShopware_Modules_Admin_sUpdateNewsletter_Subscribe
- filter:
- Added possibility to edit index.max_result_window for ES via
config.php - Added new block
frontend_listing_box_article_image_attributesinlisting/product-box/product-image.tpl - Added
Retry-Afterheader for maintenance mode - Added new config flag isCustomStore for the
Shopware.apps.Base.view.element.Selectto create a store with a custom "valueField". - Added new smarty block
widgets/emotion/index/classesto filewidgets/emotion/index.tpl - Added config
backward_compatibility.predictable_plugin_orderwith defaultfalse. Enabling this loads plugins in alphabetical order instead of an undefined one. - Added command
sw:es:backend:index:cleanupto delete old ES backend indices - Added numeric amounts for order details in the account orders action
- Added pagination to backend order filter shipping country and billing country
- Added numeric amounts for cart items in cart array structure
- Added new notify event
Shopware_CronJob_Notification_Product_QueryBuilderto the notification plugin to be able to change the QueryBuilder - Added new filter event
Shopware_Modules_Basket_InsertDiscount_FilterParamsto the basket discount functionality - Added service
\Shopware\Components\StreamProtocolValidator(service id:shopware.components.stream_protocol_validator) to validate stream protocols in URLs - Added method
resetShoptoShopware/Components/Snippet/Manager.phpto reset the assigned shop - Added event
Shopware_Modules_Admin_GetDispatchBasket_Calculation_QueryBuilderto change the possible dispatches for the basket (SW-22646) - Added confirmation dialog when deleting or overwriting a order document
- Added streamId translation of categories
- Added "not in" compare to product stream attributes
- Added information to systeminfo to show time difference between MySQL and PHP
- Added Polish language to installer
- Added amountNumeric and priceNumeric to order items in template
- Added numeric amounts for basket items
- Added column "active" for product feed-list in the backend
- Added mapping for
voteAverage.averagefor elastic search indexing - Added proper helpText to 'displayOnlySubShopVotes' configuration
- Added possibility to remove supplier images via REST API
- Added unit test for manufacturers api resource
- Added instance check for ES category facet
- Added random sorting option to emotion products slider
- Added support for configurable lengths of the meta description
- Added
getListQueryBuildermethod toShopware/Models/Order/Repository.php - Added plugin manager reloading on plugin update failure
- Added
CheapestPriceESGatewayto be able to use the price filter with ES - Added new filter event
Shopware_Controllers_Article_CreateConfiguratorVariants_FilterDatato article backend controller to modify variant data during generation - Added new property
pageShortParameterinjquery.infinite-scrolling.jsto add compatibility with a custom sPage query alias in the product listings
- Changed thumbnail variable on detail page for href-attribute from
sArticle.image.src.1tosArticle.image.source - Changed failed login behaviour by only increasing the failedlogin-count of active customer accounts, not guest accounts
- Changed product saving to handle invalid changetime dates
- Changed document template
themes/Frontend/Bare/documents/index.tplto also render adepartmentif it is part of the address - Changed FormSynchronizer to consider sorting from config.xml
- Changed the
instockcolumn in the product variants list to be sortable - Changed
emotion/components/component_banner_slider.tplto reset thumbnail URLs correctly - Changed Symfony library to version 3.4.17
- Changed jQuery plugin
swRegisterto correctly use data attributes - Changed VariantHelper to work also on search page
- Changed
controllerActionandcontrollerNameSmarty functions to sanitize action and controller names - Changed session name validator to be more rigid
- Changed VariantFilter to work with different customer group then fallback customer group
- Changed
detailActionmethod ofEmotionbackend controller to not add the shop base URL to media URLs again if it's already set - Changed statistic call to also encode
&inrefererparameter - Changed menu-scroller to hide scrollbar on IE 11
- Changed Media Resource of REST API to deal with uploads that contain a ftp file-path
- Changed product module preview combobox to preselect the default shop
- Changed API media resource to support
file://paths - Changed sub-albums to inherit thumbnail settings on creation
- Changed ajax variant jquery plugin have a own function for pushing history states
- Changed default value of required in config.xsd to match
XmlConfigDefinitionReader - Changed
JsonRequestto usegetRawBody()instead ofphp://input - Changed
Shopware.apps.Voucher.model.Taxto explicit define field types
- Removed trailing slash from LESS variable
@font-directory - Removed private method
Shopware_Controllers_Widgets_Emotion::getEmotionsByCategoryId - Remove unused
ajax_validate_billingcase injquery.register.js
View all changes from v5.5.0...v5.5.1
- Changed the loading of shopping worlds to fix issues with missing shopping worlds
View all changes from v5.4.6...v5.5.0
- Added unique identifier to
s_core_documentsfor document types in order to create a unique, settable property for plugin developers and enabling risk free user editing of the name field - Added new emotion component handlers:
HtmlCodeComponentHandlerHtmlElementComponentHandlerIFrameComponentHandlerYoutubeComponentHandler
- Added
mainDetailto REST API call for retrieving a list of products - Added struct
Shopware\Components\Cart\Struct\CartItemStructto represent items in the cart during calculation - Added public function
sBasket::updateCartItemsto provide a new way of interacting with cart updates - Added following templates to
themes/Frontend/Bare/frontend/checkout/cart_item_premium_product.tplcart_item_product.tplcart_item_rebate.tplcart_item_surcharge_discount.tplcart_item_voucher.tplconfirm_item_premium_product.tplconfirm_item_product.tplconfirm_item_rebate.tplconfirm_item_surcharge_discount.tplconfirm_item_voucher.tplfinish_item_premium_product.tplfinish_item_product.tplfinish_item_voucher.tpl
- Added ability to translate categories
- Added ability to translate shop forms
- Added ability to translate shop pages. Please rename the key of the old groups ("gLeft", "gBottom" etc.) to "left", "bottom", "bottom2", "disabled" and translate the pages.
- Added hreflang-tag support to translated pages
- Added configuration to "Seo / Router" to disable href-lang or show only language instead of language and locale
- Added configuration to "Seo / Router" to select a language shop for the x-default tag
- Added payment and dispatch translation for order status mails
- Added snippets for locales in backend menus
- Added implementation of elasticsearch backend
- Added
EsBackendBundleto index and search products, customers and orders for the backend - Added new searcher, reader and repositories to AttributeBundle for implementing elasticsearch backend
engine/Shopware/Bundle/AttributeBundle/RepositoryReader/OrderReader.phpSearcher/OrderSearcher.phpCustomerRepository.phpOrderRepository.php
- Added indexing and backlog sync command
engine/Shopware/Bundle/EsBackendBundle/Commands/IndexPopulateCommand.phpengine/Shopware/Bundle/EsBackendBundle/Commands/SyncBacklogCommand.php
- Added new templates to
themes/Backend/ExtJs/backend/search/to split theindex.tplarticles.tplcustomers.tplorders.tpl
- Added new config parameters
write_backlog,enabledandbackendtoesparameter
- Added
- Added attributes to shop forms page
- Added new column
changedwithDEFAULT NULLto tabless_orderands_user - Added checks for changes on products, customers and orders in backend while a user saves them to prevent an overwriting of changes made by someone else
- Added proportional calculation of tax positions
- New configuration option in Basic Settings => Checkout, "Proportional calculation of tax positions", inactive by default
- Added
Shopware\Components\Cart\ProportionalTaxCalculatorto calculate proportional taxes for the cart items - Added
Shopware\Components\Cart\BasketHelperto to add items to the cart that need to be calculation in a proportional way - Added
Shopware\Components\Cart\ProportionalCartMergerto merge proportional cart items into one cart item - For the proportional tax calculation to work with vouchers and modes of dispatch, be sure to set the mode of tax calculation to "auto detection" in their settings
- Added new filter event to modify proportional vouchers
Shopware_Modules_Basket_AddVoucher_VoucherPrices
- Added new column
invoice_shipping_tax_rateto s_order, to save exact dispatch shipping tax rate - Added
Shopware\Components\DependencyInjection\LegacyPhpDumperto support old container events such asEnlight_Bootstrap_InitResource_* - Added new column
articleDetailsIDto tables_order_details - Added new
sqliprivilege to product feed to restrict access on custom filters - Added MySQL 8.0 support. See paragraph MySQL 8 workaround for details
- Added additional filesystem adapter implementations for services out of the box:
- Amazon Web Services
- Google Cloud Platform
- Added service
shopware.filesystem.publicandshopware.filesystem.privatefor file handling- Documents, ESD and Sitemap files can now also served from S3 or Google Cloud
- Added service
shopware.filesystem.public.url_generatorfor generating public urls
- Added automatic prefixed filesystem service registration for plugins
plugin_name.filesystem.publicplugin_name.filesystem.private
- Added sitemap splitting with entries over 50.000.
- sitemaps can be now generated by cronjob, live or
sw:generate:sitemapcommand - sitemaps will be now served from cache and compressed with gzip
- Added new DI tag
sitemap_url_providerto add custom sitemap url provider - Added new interface
Shopware\Bundle\SitemapBundle\UrlProviderInterfacefor url providers
- sitemaps can be now generated by cronjob, live or
- Added new DIC parameter
shopware.es.batchsize(configurable viaconfig.php) to change the number of products that are send to elasticsearch in one batch - Added confirm dialog when changing variant price with a price scale
- Added services and classes to support dynamic (time-based) cache invalidation via the HttpCache plugin
- Added
InvalidationDateInterfaceand implementationsAbstractInvalidationDateBlogDateBlogListingDateListingDateListingDateFrontpageProductDetailDate
- Added services
CacheRouteGenerationServiceDefaultRouteService
- Added
CacheTimeServiceInterfaceand implementationsDefaultCacheTimeServiceDynamicCacheTimeService
- Added
invalidation_date_providertag to the DIC
- Added
- Added parameter mode to Log module, to directly open the systemlogs tab
- Added possibility to set
sTargetfor Detail/ratingAction - Added support in
config.phpto specify TrustedHeaderSet options for Symfony - Added user attributes to PDF documents
- Added shop selection to emotions, to limit emotion to a specific shop
- Added block
frontend_account_order_item_status_value_customtoBare/frontend/account/order_item.tpl - Added new smarty blocks
frontend_checkout_cart_item_rebate_name_wrapper,themes/Frontend/Bare/frontend/checkout/items/rebate.tplandfrontend_checkout_cart_item_rebate_tax_price_wrappertothemes/Frontend/Bare/frontend/checkout/items/rebate.tpl - Added event
KernelEvents::TERMINATE, which will be fired after the response has been sent, when the kernel terminates - Added event
Shopware_Emotion_Collect_Emotion_Component_Handlersto add component handler on legacy plugin system - Added filter event
Legacy_Struct_Converter_Convert_Product_PricetoShopware\Components\Compatibility\LegacyStructConverter::convertProductPriceStruct - Added filter event
Shopware_Components_Document_Render_FilterHtmltoShopware_Components_Document::render - Added option to allow multiple documents of the same type for orders in
engine/Shopware/Components/Document.php - Added new notify event
Shopware_Modules_Admin_GetDispatchBasket_QueryBuilderto the sAdmin which will be fired for change the sGetDispatchBasket query builder. - Added new notify event
Shopware_Modules_Basket_GetAmountArticles_QueryBuilderto the sBasket which will be fired for change the sGetAmountArticles query builder. - Added new notify event
Shopware_Modules_Admin_GetPremiumDispatches_QueryBuilderto the sAdmin which will be fired for change the sGetPremiumDispatches query builder. - Added support for multiple document type mail templates for every order document
- Added
Shopware_Controllers_Backend_Order::getMailTemplatesAction - Added
Shopware\Models\Mail\Mail::isDocumentMail - Added
Shopware\Models\Mail\Repository::getMailsListQueryBuilder
- Added
- Changed the execution model of
replacehooks to prevent multiple calls of the hooked method, if more than onereplacehook on the same method exists and all of them callexecuteParent()once - Changed Symfony version to 3.4.15
- Changed jQuery version to 3.3.1
- Changed Slugify version to 3.1
- Changed the event
Shopware_Form_Builderso that thereferencecontains theBlockPrefixof the Formtype, not the name - Changed
s_order_documentscolumnIDtoidon new installations of 5.5. See paragraph MySQL 8 workaround for details - Changed REST API
articleslist call to includemainDetail - Changed
themes/Frontend/Bare/frontend/checkout/cart_item.tplin which the following blocks are contained:frontend_checkout_cart_item_productfrontend_checkout_cart_item_premium_productfrontend_checkout_cart_item_voucherfrontend_checkout_cart_item_rebatefrontend_checkout_cart_item_surcharge_discountAll these blocks are moved to own template files to optimize include process. Please be aware that these changes make it necessary to change templates that extendcart_item.tpl.
- Changed
themes/Frontend/Bare/frontend/checkout/confirm_item.tplandfinish_item.tplto keep track of the earlier mentioned changes and additions tocart_item.tpland to use Smarty Inheritance system correctly. Please check your templates when you extendcart_item.tpl. You now have to extend one of the added subtemplates. - Changed
country_idtocountryIdandstate_idtostateIdinShopware.apps.Customer.model.Address - Changed xml files in
engine/Library/Zend/Locale/Datato be more up-to-date - Changed rebates and vouchers to also show their icon in the cart for values > 1€
- Changed basic settings option
Extended SQL query, so users now need thesql_rulepermission ofshippingto edit it. - Changed following classes constructor to accept
IteratorAggregateinsteadarrayfortaggedservices collections:Shopware\Bundle\AttributeBundle\Repository\RegistryShopware\Bundle\CustomerSearchBundleDBAL\HandlerRegistryShopware\Bundle\EmotionBundle\Service\EmotionElementServiceShopware\Bundle\ESIndexingBundle\DependencyInjection\Factory\CompositeSynchronizerFactoryShopware\Bundle\ESIndexingBundle\DependencyInjection\Factory\ShopIndexerFactoryShopware\Bundle\MediaBundle\MediaServiceFactoryShopware\Bundle\MediaBundle\OptimizerServiceShopware\Bundle\SearchBundle\StoreFrontCriteriaFactoryShopware\Bundle\SearchBundleDBAL\ProductNumberSearchShopware\Bundle\SearchBundleDBAL\ProductNumberSearchShopware\Bundle\SearchBundleDBAL\QueryBuilderFactoryShopware\Bundle\SearchBundleES\DependencyInjection\Factory\ProductNumberSearchFactoryShopware\Components\Captcha\CaptchaRepositoryShopware\Components\DependencyInjection\Bridge\RouterShopware\Components\Emotion\Preset\PresetDataSynchronizer
- Changed
getRolesActioninShopware/Controllers/Backend/UserManagerso it takes theidparameter into account. This is needed for the paging combobox to work properly. - Changed elasticsearch indexing for ES6 compatibility:
- Every type gets a own index
- The
sw:es:analyzeandsw:es:switch:aliascommands require a mapping type as a new argument. - Added a new mapping type argument to the constructor of the
ShopIndex - Added a new mapping type argument to methods
createIndexConfiguration,createShopIndexof theIndexFactoryand theIndexFactoryInterface - Modified attributes mapping in the product mapping. Changed type of 'raw' field to keyword (>= 6).
- Added method
supportsto the\Shopware\Bundle\ESIndexingBundle\DataIndexerInterfaceto be able to distinguish which index is for which mapping type
- Changed
ShopIndexer::createAlias, it now deletes indexes that are named like the index alias - Changed
Subscription expiredgrowl message, to hide it for a week - Changed form controller to allow multiple receivers comma separated
- Changed behaviour of the
HttpCachecore plugin. The max-age for the cached content of shopping-worlds, blog-categories, product detail pages and blog detail pages is now set based on the activation date of the respective resource. - Changed
Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\AddressHydratorto correctly hydrate additionalAddressLine2 - Changed cache warmer behaviour by implementing a new procedure, which doesn't rely on SEO urls anymore, warms new url types and allows partial warming
-
Changed HttpCacheWarmer-Module in Backend to apply the new settings
-
Changed cache warmer to be extendable by implementing
Shopware\Components\HttpCache\UrlProvider\UrlProviderInterfaceto your own UrlProvider -
Changed sw:warm:http:cache CLI command by improving the printed information and adding new parameters:
Parameter Short Description --category -j Warm up categories --emotion -o Warm up emotions --blog -g Warm up blog --manufacturer -m Warm up manufacturer pages --static -t Warm up static pages --product -p Warm up products --variantswitch -d Warm up variant switch of configurators --productwithnumber -z Warm up products with number parameter --productwithcategory -y Warm up products with category parameter --extensions -x Warm up all URLs provided by other extensions
-
- Changed visibility of
Shopware\Bundle\PluginInstallerBundle\Service\SubscriptionService::getPluginInformationFromApi()to public - Changed Double-Opt-In behaviour to redirect back into the checkout, if user registered from there
- Changed console.command tag CompilerPass to support lazy commands.
- Changed customer editing in backend to work also when customer is in optin mode
- Changed order mergeDocuments to send a valid Content-Type to fix downloads on some webserver configurations
- Changed voucher restrictions to allow product numbers shorter then 5 characters
- Changed download strategies to work only on local adapter
- Changed installation process to generate a unique ESD key
- Changed blog categories to also redirect requests when being linked to an external site
- Changed event
Shopware_Modules_Admin_Login_Failureto always contain parameteremail
- Removed class
Shopware\Models\Config\Element\Shopware_Components_Form - Removed class
Shopware_Components_Convert_Csv,Shopware_Components_Convert_ExcelandShopware_Components_Convert_Xml - Removed class
Shopware\Models\Customer\BillingandShopware\Models\Customer\BillingRepository - Removed class
Shopware\Models\Customer\Shipping - Removed class
Shopware\Models\Order\Document\Type - Removed methods
getByCategoryandgetListByCategoryof interfaceShopware\Bundle\StoreFrontBundle\Gateway\SimilarProductsGatewayInterface - Removed methods
addAttributeandremoveAttributeofShopware\Components\Model\ModelManager - Removed methods
indexAction,listingAction,requestAction,detailAction,directAction,commitFormofShopware_Controllers_Frontend_Ticket - Removed methods
emotionTopSellerActionandemotionNewcomerActionofShopware_Controllers_Widgets_Emotion - Removed methods
getCategoryEmotionsQueryandgetCategoryEmotionsQueryBuilderofShopware\Models\Emotion\Repository - Removed methods
getPaymentsQuery,getPaymentsQueryBuilderofShopware\Models\Payment\Repository - Removed method
getSourceSetofShopware\Bundle\StoreFrontBundle\Struct\Thumbnail - Removed method
assertVersionGreaterThenofShopware_Components_Plugin_Bootstrap - Removed method
getSnippetofShopware_Components_Snippet_Manager - Removed method
confirmActionofShopware_Controllers_Frontend_Newsletter - Removed method
ajaxListingActionofShopware_Controllers_Widgets_Listing - Removed method
sGetAffectedSuppliersofsArticles - Removed method
sCreateRewriteTableSuppliersofsRewriteTable - Removed method
saveofShopware\Models\Config\Form - Removed method
onUpdateofShopware\Models\Media\Settings - Removed variables
billingandshippingwith methodsgetShipping,setShipping,getBilling,setBillingofShopware\Models\Customer\Customer - Removed variables
$sLanguageandsMultishopwith methodsGetMultishopofsExport - Removed variables
o_attr_1,o_attr_2,o_attr_3,o_attr_4,o_attr_5,o_attr_6ofsOrder - Removed variable
labeland methodsgetLabelandsetLabelofShopware\Models\Widget\Widget - Removed variable
preLoadStoredEntryofShopware.form.field.PagingComboBox - Removed variable
descriptionwith methodssetDescriptionandgetDescriptionofShopware\Models\Order\Status - Removed variable
sSelfCanonicalinShopware\Components\Compatibility\LegacyStructConverter - Removed constant
PAYMENT_STATE_THE_PAYMENT_HAS_BEEN_ORDERED_BY_HANSEATIC_BANKofShopware\Models\Order\Status - Removed snippets
table/s_user_billingaddress_attributesandtable/s_user_shippingaddress_attributes - Removed smarty block
frontend_blog_detail_commentsinfrontend/blog/detail.tpl, usefrontend_blog_detail_comments_countandfrontend_blog_detail_comments_listinstead. - Removed smarty block
frontend_detail_data_block_prices_headlineinfrontend/detail/block_price.tpl - Removed smarty block
frontend_detail_buy_variantinfrontend/detail/buy.tpl - Removed smarty block
frontend_index_header_css_ieinfrontend/index/header.tpl - Removed smarty block
frontend_index_ajax_seo_optimizedinfrontend/index/index.tpl - Removed smarty block
frontend_index_categories_left_ulinfrontend/index/sidebar-categories.tpl - Removed smarty block
frontend_listing_box_article_actions_moreinfrontend/listing/product-box/product-actions.tpl - Removed smarty block
frontend_listing_box_article_actions_inlineinfrontend/listing/product-box/product-actions.tpl - Removed ExtJs models
Shopware.apps.Customer.model.BillingandShopware.apps.Customer.model.Shipping - Removed following unnecessary CompilerPasses due to Symfony 3.0
taggedattribute:Shopware\Bundle\AttributeBundle\DependencyInjection\Compiler\SearchRepositoryCompilerPassShopware\Bundle\CustomerSearchBundleDBAL\DependencyInjection\Compiler\HandlerRegistryCompilerPassShopware\Bundle\EmotionBundle\DependencyInjection\Compiler\EmotionComponentHandlerCompilerPassShopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\DataIndexerCompilerPassShopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\MappingCompilerPassShopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\SettingsCompilerPassShopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\SynchronizerCompilerPassShopware\Bundle\MediaBundle\DependencyInjection\Compiler\MediaAdapterCompilerPassShopware\Bundle\MediaBundle\DependencyInjection\Compiler\MediaOptimizerCompilerPassShopware\Bundle\SearchBundle\DependencyInjection\Compiler\CriteriaRequestHandlerCompilerPassShopware\Bundle\SearchBundleDBAL\DependencyInjection\Compiler\DBALCompilerPassShopware\Bundle\SearchBundleES\DependencyInjection\CompilerPass\SearchHandlerCompilerPassShopware\Components\DependencyInjection\Compiler\AddCaptchaCompilerPassShopware\Components\DependencyInjection\Compiler\EmotionPresetCompilerPassShopware\Components\DependencyInjection\Compiler\RouterCompilerPass
- Removed following unnecessary Subscriber:
Shopware\Bundle\EsBackendBundle\Subscriber\ServiceSubscriberShopware\Bundle\ESIndexingBundle\Subscriber\ServiceSubscriber
- Removed Ioncube checks from PluginManager
- Removed
SwagLicensedependency in plugin licenses
- Deprecated
lastStockfield in\Shopware\Models\Article\Articleas the field has been moved to the variants. It will be removed in 5.6 - Deprecated
laststockcolumn ins_articlessince this field has been moved to the variants. It will be removed in 5.6 - Deprecated uppercase column
IDins_order_documents. It is lowercaseidon new installations of 5.5 and will be renamed automatically if you are using MySQL 8 or in Shopware 5.6. See paragraph MySQL 8 workaround for details - Deprecated the translation workaround ("gLeft", "gBottom", "eLeft", "eBottom", etc.) for shop page groups. Please rename the key of the old groups ("gLeft", "gBottom" etc.) to "left", "bottom", "bottom2", "disabled" and translate the pages.
- Deprecated
Shopware_Controllers_Frontend_SitemapMobileXmlfor mobile sitemaps. It will be removed in 5.6 - Deprecated
Shopware\Components\SitemapXMLRepository. It will be removed in 5.6 - Deprecated
Shopware_Controllers_Frontend_SitemapXmlit redirects to sitemap_index.xml. Redirect will be removed with 6.0 - Deprecated
Shopware\Components\Plugin::registerCommands. It will be removed in 5.7, use DI tagconsole.commandinstead
To activate elasticsearch in backend you have to enable the es => backend => enabled parameter in the config.php and start a indexation
of the backend entities with sw:es:backend:index:populate.
Due to a mixture of MySQL 8 and Doctrine constraints, the column s_core_documents.ID will be renamed to
s_core_documents.id on the fly if MySQL 8 is being used. To be able to do that, the service \Shopware\Components\Compatibility\LegacyDocumentIdConverter
was introduced, which is checked in the file engine/Shopware/Models/Order/Document/Document.php to determine if
a Doctrine model with uppercase or lowercase id needs to be used.
If you need to reference this column in your own model, we recommend to use the same workaround there. You can use the
same service (see above) with id legacy_documentid_converter for that.
The reason for this workaround is that MySQL 8 forces ids in foreign key constraints to be lower case.
This is a problem in current systems since we have an uppercase ID in table s_order_documents.
MySQL doesn't care if we use ID in the table and id in the constraint, but Doctrine needs both to be written
in the same way. On new installations of Shopware 5.5 this is already the case, both are lowercase there.
So in order to support MySQL 8 on updates from older Shopware versions we need to change the case of the id column
in s_order_documents, which breaks support of blue/green deployments as older versions of Shopware (< 5.5) need
that column to be uppercase.
Since this change is only really necessary if you are using MySQL 8, it is only enforced when a MySQL 8 server is detected. A downgrade to an older Shopware installation wouldn't be possible anyway in that case, as Shopware 5.4 does not support MySQL 8 yet.
If you want to make this migration offline, there is the command sw:migrate:mysql8 to check if the migration was
executed and do so if you want.
The column s_core_documents.id will be lowercase from Shopware 5.6 forward.