Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The Shopware Update Playbook

Avatar for Shyim Shyim
September 16, 2025

The Shopware Update Playbook

Avatar for Shyim

Shyim

September 16, 2025
Tweet

More Decks by Shyim

Other Decks in Programming

Transcript

  1. 0000  0300 0300  1500 3000  4000 Introduction

    Before the Upgrade 1500  3000 General Advices Code Advices Agenda
  2. Soner Sayakci Also known as Shyim Working for 7 Years

    for Shopware What I do? Build Developer Tooling Also working on FriendsOfShopware, Testcontainers and OpenSearch
  3. Why it’s mostly not that simple? • Extension Updates •

    Breaking Changes • Composer Patches • Requirements changed like PHP/MySQL/OpenSearch • Less knowledge about the project Photo by Michał Parzuchowski on Unsplash
  4. The problems we are facing • Long upgrade times •

    Expensive Updates • Frustrated developers, shop owners Photo by sarah b on Unsplash
  5. Fixing existing deprecations • Check var/log entries • Update to

    latest patch version of current minor • Running automated checks Update Server Requirements • Make sure PHP / MySQL does work with current and next Shopware version Before Upgrade
  6. shopware-cli project validate • All in one validation • Contains

    PHPStan, ESlint,… • Also available as Docker image for CI
  7. Problems: • Did Shopware add new css/data attributes? • Do

    we miss out bugfixes? Twig Block Versioning
  8. Hash contains the content of the original template and from

    which Shopware version. Twig Block Versioning
  9. Migrate installed extensions to Composer • Composer can update extensions

    and Shopware together • Extensions are compatible to Shopware Version • Performance improvements as Composer can build a static class loader
  10. Migrate to Symfony Flex • Manages configuration updates • Updates

    config files based on installed Composer packages • Required since 6.5 • Supported since 6.4.18.0
  11. Before Upgrade • Updated Server Requirements • Fixed existing deprecations

    • Added Twig block versioning • Migrated all extensions to Composer • Using Symfony Flex • All store extensions are compatible with the next version We are ready start with the actual update!
  12. Using AI to upgrade Twig template AI compared old 6.6

    and new 6.7 template and applied changes to our template
  13. Build and use less extensions Why? • A single extension

    often cannot be disabled • Extensions depend on each other and produce recursion • Many boilerplate • A single extension is mostly not shared outside the project Recommendation: A single Symfony bundle containing all modifications and the theme
  14. Don’t over complicate extensions Created 7 Classes for just a

    simple feature When we do it like Shopware itself: - src/Storefront/Controller/StoreFinderController.php - src/Storefront/Page/StoreFinder/StoreFinderPage.php - src/Storefront/Page/StoreFinder/StoreFinderPageLoadedEvent.php - src/Storefront/Page/StoreFinder/StoreFinderPageLoader.php - src/Storefront/Page/StoreFinder/StoreFinderPageLoaderInterface.php - src/Core/StoreFinderRoute.php - src/Core/CachedStoreFinderRoute.php
  15. Don’t overcomplicate extensions Your project does not to be flexible

    as Shopware itself: You don’t need: • Storefront / Store-API support at same time • No external extension will extend you and requires an extension point
  16. Decoration vs Events vs Configuration Our recommendation: 1. Try to

    solve over configuration 2. Event driven solution 3. Decoration 4. Maybe Composer Patch 5. Upstream the missing Event!
  17. Questions? Shopware Update Handout © 2024 Viacom International Inc. All

    rights reserved. Nickelodeon, SpongeBob SquarePants characters are trademarks of Viacom International Inc. Created by Stephen Hillenburg