The cache is a buffer for database queries, template files and snippets and is used to boost performance. Cached data does not require further query in the database.
The central Cache/Performance module can be found under Configuration in the backend. This is divided into three areas:
- Start - Simplifies the cache handling of your shopware installation.
- Cache - Overview of the cache directories, their sizes and their rights (full write and read access required). Areas can be cleared individually.
- Settings - Definition of the cache strategies of individual areas, updated manually. Individual areas can be activated/deactivated here.
Shopware 5 introduced a simplified means of cache management. The system now creates a separate directory every time a revision is made (including staging environments). This means with an update, Shopware automatically creates and uses the new folder, while the previous folder is archived.
The Start tab contains the following modes to simplify the cache handling in shopware.
- Productive mode - The production mode should be activated if the template will no longer be changed and the shop is running in a live environment. Since the HTTP cache is automatically activated, changes (i.e. to the template or prices) will not appear until the cache has been cleared. This makes for better performance in your online shop.
- Development mode - This mode is for setting up and configuring Shopware, as most changes will immediately be visible in the frontend without a need to clear the cache first. Since the HTTP cache is not activated, the shop will run a bit slower than when in the production mode.
- Shopware configuration - Settings and snippets
- Proxies and metadata - Proxy objects
- Smarty template cache - Frontend templates
- Cache search function - Search results and index
- Theme cache - Clears the compiled theme caches. After this, a popup will appear to rebuild the theme cache and clear the HTTP cache
- Http proxy cache - Frontend HTTP cache (clears the cache directories)
- Index SEO URLs - Create new SEO URLs
Here the SSI optimization methods are displayed.
- APCu activated: The APCu can activated
- Zend OPcache activated: The Zen OPcache can be activated
- PHP Version: Use a PHP version >= 5.4 (with Shopware 5, the hook will be set only if you are running the latest version of PHP)
These are only suggestions for optimization. Omitting optional settings has no effect on Shopware's functionality.
The HTTP cache comes as a default feature of Shopware. In order for it to be used, it must first be activated in the backend.
The http-cache can be completely warmed up using the Cache Warmer. In simple terms, this means that all pages of the shop are called once and loaded into the cache. If this did not happen using the Cache Warmer, the cache would build up when a user visits the shop, resulting in a considerably longer load time. To save the user this waiting time, you can warm up the cache yourself.
If the HTTP cache is active, you can warm it up using the blue "Warm up cache" button. Click on the button and select the desired shop in the popup that opens and click on "Start process". The cache will then be warmed up.
Batch size: This is the number of calls processed by the server.
Concurrency: Select here how many processes should work in parallel on the cache warmup. Depending on the server, more or less parallel processes can be useful, just test here which setting delivers the fastest results.
Advanced settings: Here you can define which pages of your shop should be warmed up. Click "Save as default" to save the current configuration for future use.
Activating and configuring the HTTP cache
In the backend, go to Configuration > Cache/performance and switch to the Settings tab. In the directory labeled General, find the subdirectory HTTP cache.
By clicking the checkbox next to Activate HTTP cache, the plugin will handle all caching from this point forward.
Additional configuration options like the cache invalidation, alternate proy URLs and the admin view can also be found here.
- Automatic cache invalidation clears the cache of the product detail page whenever a product is modified.
- Alternate proxy URL allows you to select a desired proxy if you work, for example, with Varnish.
- Admin view hides the option that product detail pages are no longer cached, but opened from the backend.
Defining cache times
- Here you can set the cache time of the shop itself. This defines the number of seconds that a controller is held in the cache. Once the set time has elapsed, the cache will be regenerated the next time the page is called.
- The same applies for controller tags which have not been cached. Here individual areas of the page are not caches, such as a screenshot of the price on the product detail page and in the listing.
For further information, see our developers documentation about HTTP cache.
Please note that the cache function isn’t compatible with scrolling functions on the product detail page. This applies only if you change the sorting in the category view (i.e. from sorting by price to date of creation). The sorting is ignored if you open a product in the overview then click the “Next” button.
Here you can rebuild the theme cache. After rebuilding the theme cache, the HTTP cache will be cleared.
Here you can define the cache strategies for SEO friendly URLs. The default setting is Live. This setting determines how URLs are dynamically updated and created. The process here is identical to previous versions of Shopware. There are Manual and Cronjob strategies for this. The automatic generation of SEO URLs is deactivated with this setting. URLs are only updated by cronjob (i.e. evenings) or manually. Manual updating is performed by clicking the button in this window. The URLs can then be handled for the desired shop completely via batch processing.
Here the update strategies of the search indexes can be defined. This setting determines how often the search index is recreated (by calling the search in the frontend). The process here is identical to previous versions of Shopware. There are Manual and Cronjob strategies for this. The automatic generation of SEO URLs is deactivated with this setting. The search index is only updated by cronjob (i.e. evenings) or manually. Manual updating is performed by clicking the button in this window.
- Rebuild category tree: This is a repair functionality, that is not meant to be used ragulary and which reorders and thus repairs categories, their connections and the product assignment.
- Move categories into batch mode: Suitable for larger operations and structures.
- Default sort order for listing: Here you can confiure the default sort for the listing.
- Items per page: Define the number of products that appear per product listing page.
- Display filter button: Product listing will be reloaded using a button.
- Live product reloading: When a product list get filtered, it will get reloaded immediatly.
- Live product and filter reloading: When a product list get filtered, it will get reloaded immediatly. Filters, which are not combinable will be deactivated.
- Deactivate Shopware statistics: When selected, customer/visitor data will not be collected in the frontend.
- Display previously viewed items: Default setting = active
- Number of items displayed: Default setting = 5
- Disable item navigation on item detail pages: Default setting = not active
- Build new index: All data in the shop is recalculated and recached.
- Display top seller in shop: Top sellers can be deactivated here.
- Top seller valid for [n] days: Set the length of time for which top sellers should be displayed. Value must be >0
- Include orders from the past [n] days: Shopware calculates top sellers based on orders from the last [n] days.
- Refresh strategy: Determine whether updates should be performed live, via cronjob or manually.
- Take pseudo sales into account: If this is active, pseudo sales will have an influence on determining top sellers.
- Build index for 'Customers also bought': These are recalculated with every new item purchase. Recalculation can be memory intensive.
- Customers also bought: Activates the "Customers also bought" box on the product detail page.
- Rebuild 'Customers also viewed' index: This recalculates what other customers have already viewed in context. Recalculation can be memory intensive.
- Activate 'Customers also viewed': Here you have the option to deactivate the saving of data once an order is completed. This is helpful if you have many orders in a shop that take up several positions, as many combinations need to be reloaded.
- Display: The box "Customers also viewed" will be displayed on the product detail page.
- Generate new every [n] days: Defines the period after which the product is to be recalculated.
- Refresh strategy: Live (refreshes in a live environment), Via cronjob (refreshes via cronjob), Manually (refreshes via Build index)