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_basedir
for restricting access to the filesystem
- Changed
\Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\CategoryGateway::get
to supportint
andarray
parameters
- Deprecated support for
array
parameters in\Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\CategoryGateway::get
, use\Shopware\Bundle\StoreFrontBundle\Gateway\DBAL\CategoryGateway::getList
instead
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_cwd
andopcache.validate_root
to the system info's requirements tab - Added more GTIN formats for itemprops in
frontent/detail/content/header.tpl
- Added following events to
sBasket
Shopware_Modules_Basket_DeleteNote_Start
Shopware_Modules_Basket_UpdateArticle_FilterSqlDefaultParameters
Shopware_Modules_Basket_UpdateCartItems_Updated
Shopware_Modules_Basket_BasketCleared
Shopware_Modules_Basket_DeleteArticle_Start
Shopware_Modules_Basket_DeletedArticle
Shopware_Modules_Basket_getTaxesForUpdateProduct_FilterReturn
- Added new blocks to
frontend/checkout/ajax_cart.tpl
for inactive links to checkout:frontend_checkout_ajax_cart_open_checkout_inner_unavailable
frontend_checkout_ajax_cart_open_basket_unavailable
- Added the following public methods to
Shopware\Models\Order\Repository
:getDetailsQueryBuilder
getPaymentsQueryBuilder
getDocumentsQueryBuilder
- Added product number and open action to backend product stream module
- Added new column
pseudo percent
in article detail module - Added new interface
ReflectionAwareInterface
- Changed meta-tag
viewport
to allow zooming on mobile devices - Changed the usage of translation for shop pages in the side menu in mobile view
- Changed the
worstRating
for Google's struct data - Changed
SnippetManager
to consider plugin directories and theme directories inreadFromIni
mode - Changed
Checkout
controller, 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
Blog
andListing
controllers to throw an exception if a blog category-id is passed to theListing
controller or vice versa - Changed
EsBackendIndexer
to improve support for unicode characters - Changed
mediaselectionfield
to also work with enabled translation in tabs - Changed RSS templates to contain correct language code
- Changed
BatchProcess
to fix an issue withremoveString
operator - 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.tpl
to not show the 'No account' checkbox on signup form
- Deprecated
sBasket::clearBasket
, usesBasket::sDeleteBasket
instead - Deprecated
Shopware\Models\Article\Download::getSize
andShopware\Models\Article\Download::setSize
. UseShopware\Models\Media\Media::getFileSize
andShopware\Models\Media\Media::setFileSize
instead - Deprecated column
s_articles_downloads.size
. Uses_media.file_size
instead
View all changes from v5.5.7...v5.5.8
- Added new config
alwaysShowMainFeatures
to show the template frommainfeatures
in 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_wrapper
toaccount/order_item_details.tpl
- Added missing attribute accessor methods to
CustomerStream
model - Added rich-snippets for
priceValidUntil
,url
,image
andgtin13
- Added new block
frontend_index_header_meta_tags_inner
tofrontend/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_query
to 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
CategoryProvider
to skip excluded categories from sitemap - Changed
CookieSubscriber
to clear session value foruserInfo
after a login - Changed article REST api to properly deal with configuration option positions
- Changed shipping costs pre calculation display configuration
- Changed
HreflangService
to only consider active subshops - Changed availability filter for ES condition
- Changed
ProductListingVariationLoader::fetchAvailability
to consider only given variants - Changed cachebuster parameter for images in backend to contain the datetime of the last change
- Changed
font-display
value toswap
for improved font rendering performance - Changed
CdnOptimizerService
to work with external filesystems - Changed
sAdmin::sLogout
to 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::sCheckIfEsd
as 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_inner
tolisting/actions/action-pagination.tpl
andfrontend_listing_actions_sort_inner
tolisting/actions/action-sorting.tpl
- Added
shopId
to theShopware_Controllers_Seo_filterCounts
Event - Added
laststock
to "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.lockeduntil
to2010-01-01 00:00:00
- Changed order module sorting to consider sorting also when elasticsearch is activated
- Changed
StaticUrlProvider
to 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.js
to initialize component value by element value on init - Changed return array of
\Shopware\Bundle\ESIndexingBundle\TextMapping\TextMappingES5::getNotAnalyzedField
to fix warning thrown on indexing in an Elasticsearch 5 server - Changed double cache testing in advanced menu
- Changed
ReflectionHelper
to 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
GarbageCollector
to consider links - Changed the type of the
docId
column ins_order_documents
to VARCHAR, the models and backend module have been changed accordingly - Changed pluginPath assignment in
\Shopware\Commands\PluginDeleteCommand::execute
to delete plugins located in "/custom/plugins/" correctly - Changed the backend search for chars like 'ß'
- Changed following service ids to lower-case:
Loader
Hooks
Modelconfig
EventSubscriber
OrderHistorySubscriber
CategorySubscriber
CategoryDuplicator
CategoryDenormalization
MediaSubscriber
- Deprecated the global
$Shopware
variable 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\XmlConfigDefinitionReader
They have been replaced in Shopware 5.6 with new implementations in the namespace Shopware\Components\Plugin\XmlReader
- Removed
appendSession
parameter from router due to possible security implications. Use theOptinService
to 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::productsAction
and\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.js
to 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_MailContext
toengine/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/onHistoryChanged
in in order to listen to changes in browser history after variants did change - Added blocks
frontend_account_order_item_pseudo_price_inner
andfrontend_account_order_item_pseudo_price_inner_value
tofrontend/account/order_item_details.tpl
to modify price if necessary - Added filter event
Shopware_Modules_Basket_CheckBasketQuantities_ProductQuantities
in order to modify variables for each basket item - Added
max_expansions
in config.php for thephrase_prefixes
name
andnumber
- 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.customerstream
to service with idshopware.api.customer_stream
to fix problem in cronjob - Added new property
showIdColumn
toShopware.grid.Panel
to add the possibility of showing the id column - Added
CustomEventPolyfill
for IE 11 on Windows 7 - Added article details to api variant endpoint
- Added
IN
andNOT IN
operators for filters in backend's article overview - Added a new event
onRequestDataCompleted
to 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:topseller
to 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_inner
andfrontend_account_order_item_pseudo_price_inner_value
inaccount/order_item_details.tpl
- Added the interfaces to the classes in the StoreFrontBundle where they are missing
- Added
setTemplateName
andgetTemplateName
methods 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
priceCurrency
to be available for products with price groups - Changed
ajaxListing
action tolistingCount
action 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::addAdditionalTextForVariant
to 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::resolveExtJsData
to 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.ClassCache
ExtJs 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.tpl
frontend_widgets_captcha_custom_captcha_config
frontend_widgets_captcha_custom_captcha_honeypot
- Added dependency to Symfony Expression Language, this allows using something like
container.initialized('shop') ? service('shop') : null
inservices.xml
- Added
deleteDocument
ACL 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
DISTINCT
forpriceListingQuery
to improve ES indexing performance with activated variant filter - Added media optimizer overview to backend systeminfo
- Added
notify
-eventShopware_Command_RebuildSeoIndexCommand_CreateRewriteTable
that 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
sARTICLEAVAILABLE
template - 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.tpl
to 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.tpl
template, if any other captcha method than "legacy" is active:themes/Frontend/Bare/frontend/blog/comment/form.tpl
themes/Frontend/Bare/frontend/detail/comment/form.tpl
themes/Frontend/Bare/frontend/newsletter/index.tpl
themes/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
CronjobSynchronizer
to consider action names without Cronjob Prefix - Changed
Enlight_Template_Manager
to 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
OrmBacklogSubscriber
to 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::getRootDir
to usedirname
instead 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.sh
to usersync
if 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_FilterMpdfConfig
to be able to filter the mpdf config for document rendering - Added the
renderer=html
GET-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_FilterVariables
Shopware_Modules_Admin_sendMail_FilterVariables
- notify:
Shopware_Modules_Admin_Newsletter_Unsubscribe
Shopware_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_attributes
inlisting/product-box/product-image.tpl
- Added
Retry-After
header for maintenance mode - Added new config flag isCustomStore for the
Shopware.apps.Base.view.element.Select
to create a store with a custom "valueField". - Added new smarty block
widgets/emotion/index/classes
to filewidgets/emotion/index.tpl
- Added config
backward_compatibility.predictable_plugin_order
with defaultfalse
. Enabling this loads plugins in alphabetical order instead of an undefined one. - Added command
sw:es:backend:index:cleanup
to 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_QueryBuilder
to the notification plugin to be able to change the QueryBuilder - Added new filter event
Shopware_Modules_Basket_InsertDiscount_FilterParams
to the basket discount functionality - Added service
\Shopware\Components\StreamProtocolValidator
(service id:shopware.components.stream_protocol_validator
) to validate stream protocols in URLs - Added method
resetShop
toShopware/Components/Snippet/Manager.php
to reset the assigned shop - Added event
Shopware_Modules_Admin_GetDispatchBasket_Calculation_QueryBuilder
to 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.average
for 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
getListQueryBuilder
method toShopware/Models/Order/Repository.php
- Added plugin manager reloading on plugin update failure
- Added
CheapestPriceESGateway
to be able to use the price filter with ES - Added new filter event
Shopware_Controllers_Article_CreateConfiguratorVariants_FilterData
to article backend controller to modify variant data during generation - Added new property
pageShortParameter
injquery.infinite-scrolling.js
to 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.1
tosArticle.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.tpl
to also render adepartment
if it is part of the address - Changed FormSynchronizer to consider sorting from config.xml
- Changed the
instock
column in the product variants list to be sortable - Changed
emotion/components/component_banner_slider.tpl
to reset thumbnail URLs correctly - Changed Symfony library to version 3.4.17
- Changed jQuery plugin
swRegister
to correctly use data attributes - Changed VariantHelper to work also on search page
- Changed
controllerAction
andcontrollerName
Smarty 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
detailAction
method ofEmotion
backend controller to not add the shop base URL to media URLs again if it's already set - Changed statistic call to also encode
&
inreferer
parameter - 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
JsonRequest
to usegetRawBody()
instead ofphp://input
- Changed
Shopware.apps.Voucher.model.Tax
to explicit define field types
- Removed trailing slash from LESS variable
@font-directory
- Removed private method
Shopware_Controllers_Widgets_Emotion::getEmotionsByCategoryId
- Remove unused
ajax_validate_billing
case 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_documents
for 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:
HtmlCodeComponentHandler
HtmlElementComponentHandler
IFrameComponentHandler
YoutubeComponentHandler
- Added
mainDetail
to REST API call for retrieving a list of products - Added struct
Shopware\Components\Cart\Struct\CartItemStruct
to represent items in the cart during calculation - Added public function
sBasket::updateCartItems
to provide a new way of interacting with cart updates - Added following templates to
themes/Frontend/Bare/frontend/checkout/
cart_item_premium_product.tpl
cart_item_product.tpl
cart_item_rebate.tpl
cart_item_surcharge_discount.tpl
cart_item_voucher.tpl
confirm_item_premium_product.tpl
confirm_item_product.tpl
confirm_item_rebate.tpl
confirm_item_surcharge_discount.tpl
confirm_item_voucher.tpl
finish_item_premium_product.tpl
finish_item_product.tpl
finish_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
EsBackendBundle
to 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/Repository
Reader/OrderReader.php
Searcher/OrderSearcher.php
CustomerRepository.php
OrderRepository.php
- Added indexing and backlog sync command
engine/Shopware/Bundle/EsBackendBundle/Commands/IndexPopulateCommand.php
engine/Shopware/Bundle/EsBackendBundle/Commands/SyncBacklogCommand.php
- Added new templates to
themes/Backend/ExtJs/backend/search/
to split theindex.tpl
articles.tpl
customers.tpl
orders.tpl
- Added new config parameters
write_backlog
,enabled
andbackend
toes
parameter
- Added
- Added attributes to shop forms page
- Added new column
changed
withDEFAULT NULL
to tabless_order
ands_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\ProportionalTaxCalculator
to calculate proportional taxes for the cart items - Added
Shopware\Components\Cart\BasketHelper
to to add items to the cart that need to be calculation in a proportional way - Added
Shopware\Components\Cart\ProportionalCartMerger
to 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_rate
to s_order, to save exact dispatch shipping tax rate - Added
Shopware\Components\DependencyInjection\LegacyPhpDumper
to support old container events such asEnlight_Bootstrap_InitResource_*
- Added new column
articleDetailsID
to tables_order_details
- Added new
sqli
privilege 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.public
andshopware.filesystem.private
for file handling- Documents, ESD and Sitemap files can now also served from S3 or Google Cloud
- Added service
shopware.filesystem.public.url_generator
for generating public urls
- Added automatic prefixed filesystem service registration for plugins
plugin_name.filesystem.public
plugin_name.filesystem.private
- Added sitemap splitting with entries over 50.000.
- sitemaps can be now generated by cronjob, live or
sw:generate:sitemap
command - sitemaps will be now served from cache and compressed with gzip
- Added new DI tag
sitemap_url_provider
to add custom sitemap url provider - Added new interface
Shopware\Bundle\SitemapBundle\UrlProviderInterface
for 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
InvalidationDateInterface
and implementationsAbstractInvalidationDate
BlogDate
BlogListingDate
ListingDate
ListingDateFrontpage
ProductDetailDate
- Added services
CacheRouteGenerationService
DefaultRouteService
- Added
CacheTimeServiceInterface
and implementationsDefaultCacheTimeService
DynamicCacheTimeService
- Added
invalidation_date_provider
tag to the DIC
- Added
- Added parameter mode to Log module, to directly open the systemlogs tab
- Added possibility to set
sTarget
for Detail/ratingAction - Added support in
config.php
to 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_custom
toBare/frontend/account/order_item.tpl
- Added new smarty blocks
frontend_checkout_cart_item_rebate_name_wrapper
,themes/Frontend/Bare/frontend/checkout/items/rebate.tpl
andfrontend_checkout_cart_item_rebate_tax_price_wrapper
tothemes/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_Handlers
to add component handler on legacy plugin system - Added filter event
Legacy_Struct_Converter_Convert_Product_Price
toShopware\Components\Compatibility\LegacyStructConverter::convertProductPriceStruct
- Added filter event
Shopware_Components_Document_Render_FilterHtml
toShopware_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_QueryBuilder
to the sAdmin which will be fired for change the sGetDispatchBasket query builder. - Added new notify event
Shopware_Modules_Basket_GetAmountArticles_QueryBuilder
to the sBasket which will be fired for change the sGetAmountArticles query builder. - Added new notify event
Shopware_Modules_Admin_GetPremiumDispatches_QueryBuilder
to 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
replace
hooks to prevent multiple calls of the hooked method, if more than onereplace
hook 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_Builder
so that thereference
contains theBlockPrefix
of the Formtype, not the name - Changed
s_order_documents
columnID
toid
on new installations of 5.5. See paragraph MySQL 8 workaround for details - Changed REST API
articles
list call to includemainDetail
- Changed
themes/Frontend/Bare/frontend/checkout/cart_item.tpl
in which the following blocks are contained:frontend_checkout_cart_item_product
frontend_checkout_cart_item_premium_product
frontend_checkout_cart_item_voucher
frontend_checkout_cart_item_rebate
frontend_checkout_cart_item_surcharge_discount
All 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.tpl
andfinish_item.tpl
to keep track of the earlier mentioned changes and additions tocart_item.tpl
and 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_id
tocountryId
andstate_id
tostateId
inShopware.apps.Customer.model.Address
- Changed xml files in
engine/Library/Zend/Locale/Data
to 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_rule
permission ofshipping
to edit it. - Changed following classes constructor to accept
IteratorAggregate
insteadarray
fortagged
services collections:Shopware\Bundle\AttributeBundle\Repository\Registry
Shopware\Bundle\CustomerSearchBundleDBAL\HandlerRegistry
Shopware\Bundle\EmotionBundle\Service\EmotionElementService
Shopware\Bundle\ESIndexingBundle\DependencyInjection\Factory\CompositeSynchronizerFactory
Shopware\Bundle\ESIndexingBundle\DependencyInjection\Factory\ShopIndexerFactory
Shopware\Bundle\MediaBundle\MediaServiceFactory
Shopware\Bundle\MediaBundle\OptimizerService
Shopware\Bundle\SearchBundle\StoreFrontCriteriaFactory
Shopware\Bundle\SearchBundleDBAL\ProductNumberSearch
Shopware\Bundle\SearchBundleDBAL\ProductNumberSearch
Shopware\Bundle\SearchBundleDBAL\QueryBuilderFactory
Shopware\Bundle\SearchBundleES\DependencyInjection\Factory\ProductNumberSearchFactory
Shopware\Components\Captcha\CaptchaRepository
Shopware\Components\DependencyInjection\Bridge\Router
Shopware\Components\Emotion\Preset\PresetDataSynchronizer
- Changed
getRolesAction
inShopware/Controllers/Backend/UserManager
so it takes theid
parameter 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:analyze
andsw:es:switch:alias
commands 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
,createShopIndex
of theIndexFactory
and theIndexFactoryInterface
- Modified attributes mapping in the product mapping. Changed type of 'raw' field to keyword (>= 6).
- Added method
supports
to the\Shopware\Bundle\ESIndexingBundle\DataIndexerInterface
to 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 expired
growl message, to hide it for a week - Changed form controller to allow multiple receivers comma separated
- Changed behaviour of the
HttpCache
core 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\AddressHydrator
to 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\UrlProviderInterface
to 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_Failure
to always contain parameteremail
- Removed class
Shopware\Models\Config\Element\Shopware_Components_Form
- Removed class
Shopware_Components_Convert_Csv
,Shopware_Components_Convert_Excel
andShopware_Components_Convert_Xml
- Removed class
Shopware\Models\Customer\Billing
andShopware\Models\Customer\BillingRepository
- Removed class
Shopware\Models\Customer\Shipping
- Removed class
Shopware\Models\Order\Document\Type
- Removed methods
getByCategory
andgetListByCategory
of interfaceShopware\Bundle\StoreFrontBundle\Gateway\SimilarProductsGatewayInterface
- Removed methods
addAttribute
andremoveAttribute
ofShopware\Components\Model\ModelManager
- Removed methods
indexAction
,listingAction
,requestAction
,detailAction
,directAction
,commitForm
ofShopware_Controllers_Frontend_Ticket
- Removed methods
emotionTopSellerAction
andemotionNewcomerAction
ofShopware_Controllers_Widgets_Emotion
- Removed methods
getCategoryEmotionsQuery
andgetCategoryEmotionsQueryBuilder
ofShopware\Models\Emotion\Repository
- Removed methods
getPaymentsQuery
,getPaymentsQueryBuilder
ofShopware\Models\Payment\Repository
- Removed method
getSourceSet
ofShopware\Bundle\StoreFrontBundle\Struct\Thumbnail
- Removed method
assertVersionGreaterThen
ofShopware_Components_Plugin_Bootstrap
- Removed method
getSnippet
ofShopware_Components_Snippet_Manager
- Removed method
confirmAction
ofShopware_Controllers_Frontend_Newsletter
- Removed method
ajaxListingAction
ofShopware_Controllers_Widgets_Listing
- Removed method
sGetAffectedSuppliers
ofsArticles
- Removed method
sCreateRewriteTableSuppliers
ofsRewriteTable
- Removed method
save
ofShopware\Models\Config\Form
- Removed method
onUpdate
ofShopware\Models\Media\Settings
- Removed variables
billing
andshipping
with methodsgetShipping
,setShipping
,getBilling
,setBilling
ofShopware\Models\Customer\Customer
- Removed variables
$sLanguage
andsMultishop
with methodsGetMultishop
ofsExport
- Removed variables
o_attr_1
,o_attr_2
,o_attr_3
,o_attr_4
,o_attr_5
,o_attr_6
ofsOrder
- Removed variable
label
and methodsgetLabel
andsetLabel
ofShopware\Models\Widget\Widget
- Removed variable
preLoadStoredEntry
ofShopware.form.field.PagingComboBox
- Removed variable
description
with methodssetDescription
andgetDescription
ofShopware\Models\Order\Status
- Removed variable
sSelfCanonical
inShopware\Components\Compatibility\LegacyStructConverter
- Removed constant
PAYMENT_STATE_THE_PAYMENT_HAS_BEEN_ORDERED_BY_HANSEATIC_BANK
ofShopware\Models\Order\Status
- Removed snippets
table/s_user_billingaddress_attributes
andtable/s_user_shippingaddress_attributes
- Removed smarty block
frontend_blog_detail_comments
infrontend/blog/detail.tpl
, usefrontend_blog_detail_comments_count
andfrontend_blog_detail_comments_list
instead. - Removed smarty block
frontend_detail_data_block_prices_headline
infrontend/detail/block_price.tpl
- Removed smarty block
frontend_detail_buy_variant
infrontend/detail/buy.tpl
- Removed smarty block
frontend_index_header_css_ie
infrontend/index/header.tpl
- Removed smarty block
frontend_index_ajax_seo_optimized
infrontend/index/index.tpl
- Removed smarty block
frontend_index_categories_left_ul
infrontend/index/sidebar-categories.tpl
- Removed smarty block
frontend_listing_box_article_actions_more
infrontend/listing/product-box/product-actions.tpl
- Removed smarty block
frontend_listing_box_article_actions_inline
infrontend/listing/product-box/product-actions.tpl
- Removed ExtJs models
Shopware.apps.Customer.model.Billing
andShopware.apps.Customer.model.Shipping
- Removed following unnecessary CompilerPasses due to Symfony 3.0
tagged
attribute:Shopware\Bundle\AttributeBundle\DependencyInjection\Compiler\SearchRepositoryCompilerPass
Shopware\Bundle\CustomerSearchBundleDBAL\DependencyInjection\Compiler\HandlerRegistryCompilerPass
Shopware\Bundle\EmotionBundle\DependencyInjection\Compiler\EmotionComponentHandlerCompilerPass
Shopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\DataIndexerCompilerPass
Shopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\MappingCompilerPass
Shopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\SettingsCompilerPass
Shopware\Bundle\ESIndexingBundle\DependencyInjection\CompilerPass\SynchronizerCompilerPass
Shopware\Bundle\MediaBundle\DependencyInjection\Compiler\MediaAdapterCompilerPass
Shopware\Bundle\MediaBundle\DependencyInjection\Compiler\MediaOptimizerCompilerPass
Shopware\Bundle\SearchBundle\DependencyInjection\Compiler\CriteriaRequestHandlerCompilerPass
Shopware\Bundle\SearchBundleDBAL\DependencyInjection\Compiler\DBALCompilerPass
Shopware\Bundle\SearchBundleES\DependencyInjection\CompilerPass\SearchHandlerCompilerPass
Shopware\Components\DependencyInjection\Compiler\AddCaptchaCompilerPass
Shopware\Components\DependencyInjection\Compiler\EmotionPresetCompilerPass
Shopware\Components\DependencyInjection\Compiler\RouterCompilerPass
- Removed following unnecessary Subscriber:
Shopware\Bundle\EsBackendBundle\Subscriber\ServiceSubscriber
Shopware\Bundle\ESIndexingBundle\Subscriber\ServiceSubscriber
- Removed Ioncube checks from PluginManager
- Removed
SwagLicense
dependency in plugin licenses
- Deprecated
lastStock
field in\Shopware\Models\Article\Article
as the field has been moved to the variants. It will be removed in 5.6 - Deprecated
laststock
column ins_articles
since this field has been moved to the variants. It will be removed in 5.6 - Deprecated uppercase column
ID
ins_order_documents
. It is lowercaseid
on 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_SitemapMobileXml
for mobile sitemaps. It will be removed in 5.6 - Deprecated
Shopware\Components\SitemapXMLRepository
. It will be removed in 5.6 - Deprecated
Shopware_Controllers_Frontend_SitemapXml
it 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.command
instead
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.