In this document you will find a changelog of the important changes related to the code base of Shopware.
- The config option
showException
now only applies to frontend errors. Backend errors will always display the exception details. - New event
Shopware_Modules_Basket_AddArticle_CheckBasketForArticle
in class sBasket - The
Google Analytics
plugin is deprecated and will be removed in the next release. Please use the newGoogle Services
plugin instead, available on the community store.
- Fixed name used as reference when setting attributes of an order document.
- Added new event
Shopware_Modules_Articles_sGetArticlesByCategory_FilterCountSql
Forgotten password
feature now takes into account the configured minimum password length when generating new passwords- Create an attributes entity when creating an order document using the Document component and check for an
attributes
array in the document config, whose key/value pairs will be set as the document's attributes - Customer reviews backend module was improved to better handle reviews with large texts
- Auto update module now also reports main shop and subshops languages
- Maintenance mode options can now be configured by subshop
- Error notification via email was improved and now additionally includes environment and request information
- Minor occurrences of
metadescription
andmetakeywords
have been uniformized tometaDescription
andmetaKeywords
- It's now possible to filter payment methods by subshops
/widgets
and/listing
added torobots.txt
- Calling certain widget urls without the required parameters will no longer trigger a server error (returns 404 instead)
Overview
andStatistics
backend modules were adjusted to have matching data and differentiate between new users and new customers.Shopping worlds
pages without assigned categories now support SEO urls- The query passed in the
Shopware_Modules_Basket_GetBasket_FilterSQL
event will no longer includes_core_units
join and fields - The config option
showException
isfalse
by default (engine/Shopware/Configs/Default.php
)- Exceptions will no longer be shown in the store front
- Exceptions are logged in a logfile since 4.2.0 (/logs)
- The old behaviour can be restored by setting
'front' => array('showException' => true)
in the projectsconfig.php
- Hiding the country field for shipping addresses will also hide the state field. The option label in the backend was adjusted to better describe this behaviour.
- Removed
location
header in responses for all REST-API PUT routes (e.g. PUT /api/customers/{id}). - Removed deprecated Zend Framework components:
Zend_Amf
Zend_Application
Zend_Barcode
Zend_Cloud
Zend_CodeGenerator
Zend_Console
Zend_Gdata
Zend_Markup
Zend_Measure
Zend_Memory
Zend_Pdf
Zend_Reflection
Zend_Search
Zend_Serializer
Zend_Tag
Zend_Test
Zend_Tool
Zend_EventManager
Zend_Feed
Zend_Dojo
Zend_Mobile
Zend_Queue
Zend_Captcha
Zend_Service
- Removed the following core classes deprecated and/or unused methods
sArticles::sGetArticleAccessories
sArticles::sCreateTranslationTable
sArticles::sGetLiveShopping
sArticles::sGetArticleBundlesByArticleID
sArticles::sGetArticleBundleByID
sArticles::sGetBundleBasketDiscount
sSystem::sPreProcess
sSystem::sInitMailer
sSystem::sGetTranslation
sSystem::sInitAdo
sSystem::sTranslateConfig
sSystem::sInitConfig
sSystem::sInitSmarty
sSystem::sInitSession
sSystem::sCallHookPoint
sSystem::sLoadHookPoints
sSystem::sInitFactory
sSystem::sCheckLicense
sSystem::E_CORE_ERROR
sCms::sGetDynamicContentByGroup
sCms::sGetDynamicContentById
sCms::sGetDynamicGroupName
sAdmin::sGetDispatch
sAdmin::sGetDispatches
sAdmin::sGetShippingcosts
sAdmin::sCheckTaxID
sCore::sCustomRenderer
sBasket::sCountArticles
sBasket::sGetBasketWeight
- Removed the following core classes deprecated and/or unused variables
sSystem::sDB_HOST
sSystem::sDB_USER
sSystem::sDB_PASSWORD
sSystem::sDB_DATABASE
sSystem::sDB_CONNECTOR
sSystem::sDEBUG
sSystem::sBENCHRESULTS
sSystem::sBENCHMARK
sSystem::sPathMedia
sSystem::sBasePath
sSystem::sBasefile
sSystem::sLicenseData
sSystem::sCurrencyData
sSystem::sPathCmsFiles
sSystem::sPathCmsImg
sBasket::sBASKET
sCore::sBuildLink()
second argument removed (dead code)sCore
no longer returnsnull
when calling not implemented functionssNewsletter
core class removedShopware_Controllers_Frontend_Content
legacy controller removedtemplates/_default/frontend/content
legacy template files removeds_cms_content
legacy database table removed- Removed functions
simpledom_load_file()
andsimpledom_load_string()
- Removed class
SimpleDOM
andShopware_Components_Xml_SimpleXml
- Add new product feed modifier
articleImages
andproperty
- Create a new product export cronjob to export all active product feeds
- Implement new article association for new seo categories. The seo categories can be assigned over the array key seoCategories in the article api resource.
- Access to GET, POST and COOKIES through sSystem is deprecated.
- The current arrays have been replaced with wrappers objects to the global variables
- This might introduce breaks in some scenarios (eg.: when using array functions like array_merge)
- Plugin configuration: Stores of
select
andcombo
elements can now be translated - Dynamically injecting variables into sSystem is no longer supported
- Removed
Shopware\Models\Widget\View::label
variable, getter and setter, and correspondents_core_widget_views::label
database column - Deprecated
Shopware\Models\Widget\Widget::label
variable, getter and setter, and correspondents_core_widgets::label
database column - Removed deprecated widget settings from the config module. Active widgets and their positions will now be saved automatically.
- Removed desktop switcher from the
Shopware.container.Viewport
base component.
- Remove old payment dummy plugins out of the core: PaymentSofort and PigmbhRatePAYPayment
- The tell a friend feature is now disabled by default, due to legal requirements. This will affect new and existing installations. You can enable/re-enable it using a new configuration option in the backend settings menu.
- [REST API] Add thumbnail generation to article and variant create and update actions
- Deprecation: The Database Column impressions in s_articles_details in now deprecated. Please use the s_statistics_article_impression table.
Shopware_Components_Plugin_Bootstrap
now has aaddFormTranslations()
method to facilitate translations creation for forms.- Removed view variables
sOrders
andsNotes
from/engine/Shopware/Controllers/Frontend/Account.php
index action - The methods
sGetOpenOrderData
andsGetDownloads
in/engine/core/class/sAdmin.php
will now return a different array structure and will accept new optional parameters to provide a pager functionality - Added X-Sendfile support for ESD downloads.
redirectDownload
configuration variable is now deprecated,esdDownloadStrategy
should be used instead - Deprecation:
/engine/Shopware/Models/Payment/Repository.php:
getPaymentsQuery
andgetPaymentsQueryBuilder
usegetActivePaymentsQuery
andgetActivePaymentsQueryBuilder
instead.
- Add new metaTitle field to the Blog
- Add new metaTitle field to the Article
- Removed unused class
Services_JSON
, was located at/engine/core/ajax/json.php
. - The subquery in
$priceForBasePrice
used insArticles::sGetArticlesByCategory
has been removed. - A userland implementaion of
array_column()
has been included. - Deprecated class
sTicketSystem
has been removed. - Doctrine has been updated to version 2.4. See: https://github.com/doctrine/doctrine2/blob/2.4/UPGRADE.md
- Break:
Doctrine\ORM\Query::setParamters()
has changed. See: https://github.com/doctrine/doctrine2/blob/2.4/UPGRADE.md Shopware\Components\Model\QueryBuilder::setParameters()
provides old behavior.- Break:
Shopware_Plugins_Frontend_RouterOld_Bootstrap::onAssemble
event and implementation removed - Update Zend Framework to version 1.12.3 (latest stable)
- Deprecation: Several unused Zend Framework components and classes are now deprecated. Refer to the full upgrade guide for details
- Break: Custom article attributes of type
Time
are now always saved using the german format. Only affects values inserted in non-german backends - Removed the sSetLastArticle in sArticles.php. Was deprecated through setLastArticleById in the Shopware_Plugins_Frontend_LastArticles_Bootstrap plugin.
- Implement new options in the article resource. "considerTaxInput" allows to get the variant prices considering the article tax. "language" allows to get a whole translated article array. The "language" parameter can contain a sub shop id or a language iso like en_GB.
s_core_debit
table is now deprecated.s_core_payment_data
ands_core_payment_instance
should be used instead.- core payment classes were removed. Existing references in the core to those classes now use the core PaymentMethods module implementation. Refer to the module for details on how to implement payment method logic
- Break: PaymentMethods core plugin components and templates had their performance improved, resulting in potential breaks for extensions
-
- getCurrentPaymentData() was removed and should be replaced with getCurrentPaymentDataAsArray(), which returns the same information but in an array format
- Break: some payment snippets had their namespaces changed to comply with recent changes in snippet handling
- Break: customer detail editing in the backend: field names and field container structured to add support for additional payment methods. As such, debit.js view and detail controller have some breaks
- Ext.editorLang variable is no longer used and is being deprecated.
- Deprecation (REST API): 'debit' info in /api/customers/{id} is deprecated. Use 'paymentData' instead
- Break: Removed the Shopware.apps.Analytics.view.table.Conversion, Shopware.apps.Analytics.view.toolbar.Source and Shopware.apps.Analytics.view.toolbar.Shop file which now defined in the analytics/view/main/toolbar.js file.
- Removed unused class
Shopware_Components_Subscriber
, was located at/engine/Shopware/Components/Subscriber.php
. - Deprecation: Enlight's assertArrayCount() and assertArrayNotCount() are deprecated. Use phpunit's assertCount() instead
- New method
\Shopware\Components\Model\ModelManager::createPaginator($query)
. - This method should be used instead of
new \Doctrine\ORM\Tools\Pagination\Paginator($query)
. - As of SW 4.2
$paginator->setUseOutputWalkers(false)
will be set here. - New methods for calculating the basepricedata have been integrated in
/engine/core/class/sArticles.php
calculateCheapestBasePriceData
| This methods returns always the basepricedata of the cheapest variant. This is used in the listing views.getCheapestVariant
| This method is used by the methodcalculateCheapestBasePriceData
to get the purchaseunit and the referenceunit of the cheapest variant.calculateReferencePrice
| This method does the basic calculation to get the right referenceprice.- New PaymentMethods core plugin including refactored Debit and new SEPA payment methods.
- New
Shopware\Models\Customer\PaymentData
model to store customer's payment information. - New
Shopware\Models\Payment\PaymentInstance
model to store payments information for individual orders.
- The subquery in
$priceForBasePrice
used in the methodsGetArticlesByCategory
of the class/engine/core/class/sArticles.php
is marked deprecated, because the query variablepriceForBasePrice
is no longer in use. Please do not use it anymore.
- Add configuration
Always display item short descriptions in listing views
. Shopware_Components_Plugin_Bootstrap::assertVersionGreaterThen()
is now an alias toShopware_Components_Plugin_Bootstrap::assertMinimumVersion()
and returns alwaystrue
if run on an development/git Version of Shopware- Added a new method
getDefault()
inengine/Shopware/Models/Shop/Repository.php
which returns just the default shop without callingfixActiv()
. - Removed the unused
downloadAction()
inengine/Shopware/Controllers/Backend/Plugin.php
decompressFile()
in/engine/Shopware/Controllers/Backend/Plugin.php
decompressFile()
in/engine/Shopware/Plugins/Default/Core/PluginManager/Controllers/Backend/PluginManager.php
You should use the decompressFile method in the CommunityStore component instead
With Shopware 4.1.1 we have fixed a bug that appeared during certain constellations in the customer registration process. Submitting the registration formular empty, from time to time a fatal error was displayed.
For further information have a look at the following wiki article: