Alle Shopware Profis mögen mir diesen Titel verzeihen. Aber bei joomla heißt eine ähnliche Technik Overrides und damit möchte ich es vergleichen.

Möchte man bei Joomla z.B. eine Joomla Komponente anpassen, kopiert man in den html Ordner seines Templates, mit leichten Pfadanpassungen die View-Dateien der Komponente mit kompletten Inhalt und passt diesen nach seinen Bedürfnissen an. Joomla sucht zuerst im Template in dem html Ordner nach möglischen Anpasssungen und verwendet diese. Wenn dort keine Dateien gefunden werden, werden die Originaldateien verwendet.

Bei Shopware5 ist es ähnlich.

Wenn hier bei Shopware von Themes gesprochen wird ist das bei Joomla analog dazu der Begriff Template. Sprechen wir bei Shopware von Templates, sind damit die Smarty Templatedateien gemeint.

Shopware wird mit zwei Themes ausgeliefert. Dem Bare Theme welches alle Grundfunktionalität beinhaltet und dem Responsive Theme welches von dem Bare Theme abgeleitet ist, die Template Dateien des Bare Themes verwendet und zu Gunsten der Responsivität manche Bare Theme Templates verändert.

Da in der Regel Responsivität erwünscht ist, leitet man sein eignes Theme von dem Resonsive Theme ab.

Beispiel Footer anpassen.

Das Footer Template liegt in themes/Frontend/Bare/frontend/index/footer.tpl

Diese Datei wird in den den gleichen Ordner des angelegten Themes kopiert.
Wird nun der Inhalt der Datei im neuen Theme entfernt, sieht man wie man schon vermuten möchte den Footer nicht mehr.

Schreibt man jetzt diese Zeile

{extends file="parent:frontend/index/footer.tpl"}

in die Footer Templatedatei des neuen Themes, wird der Footer wieder vollständig angezeigt und man kann mit den Anpassungen beginnen.

1. Teile/Blöcke nicht mehr anzeigen.

Man kopiert den gewünschte Smarty-block in die Footer Templatedatei des neuen Themes und entfernt dort die Inhalte, dass nur noch der leere Block vorhanden ist. z.B.:

Quelle:

{* Shopware footer *}
{block name="frontend_index_shopware_footer"}

    {* Copyright *}
    {block name="frontend_index_shopware_footer_copyright"}
        <div class="footer--copyright">
            {s name="IndexCopyright"}{/s}
        </div>
    {/block}

    {* Logo *}
    {block name="frontend_index_shopware_footer_logo"}
        <div class="footer--logo">
            <i class="icon--shopware"></i>
        </div>
    {/block}
{/block}

Ziel:

{extends file="parent:frontend/index/footer.tpl"}
{* Shopware footer *}
{block name="frontend_index_shopware_footer"}{/block}

 Natürlich kann man so auch eigene Inhalte in den Block schreiben.

{extends file="parent:frontend/index/footer.tpl"}
{* Shopware footer *}
{block name="frontend_index_shopware_footer"}
  Own content...
{/block}

Ähnlich kann man mit append oder prepend eigene Inhalte vor oder nach dem Block schreiben.

{* before *}
{block name="frontend_index_shopware_footer" prepend}
  Own content before...
{/block}
{* Or! after *}
{block name="frontend_index_shopware_footer" append}
  Own content after...
{/block}

Aber, es ist nur eine der genannten Anpassungen pro Block möglich!