Shopware Template statt Plugin Template

Hallo,

ich würde gerne statt dem Twig Template eines Plugins auf das Default Shopware template zurückgreifen. Wie setzte ich das am besten mit Twig um? Derzeit versuche ich im Storefront/storefront/component/product/card/action.html.twig den Default component_product_box_action_buy block anzuzeigen.

Dafür habe ich bis jetzt folgendes:

{% sw_extends ‚@Storefront/storefront/component/product/card/action.html.twig‘ %}

{% block component_product_box_action_buy %}
{# hier weiß ich nicht was dazwischen kommt #}
{% endblock %}

Ich habe es bereits mit {{ parent() }} versucht, allerdings rufe ich damit ja den Block aus dem Plugin template auf. Mein anderer Ansatz wäre gewesen mit {%sw_include ‚@Storefront/storefront/component/product/card/action.html.twig‘ %}. Allerdings scheint das auch nicht der richtige Ansatz zu sein.

parent() sollte eigentlich immer den Content des extended Template liefern. Wenn das bei dir nicht funktioniert, dann kann eigentlich fast nur die Reihenfolge, welche Themes/Plugins in welcher Reihenfolge geladen werden, bewusst geändert worden sein.

Aber ja, sonst wäre dein zweiter Ansatz mit sw_include sinnvoll, wobei du da natürlich das ganze twig und nicht nur einen Block lädst.

Da {# hier weiß ich nicht was dazwischen kommt #} nicht klar ist, was du meinst. An dieser Stelle muss das {{ parent() }} stehen.

Danke für deine Antwort. In welcher Reihenfolge müssen denn die Plugins geladen werden? Derzeit ist es so dass „mein“ Plugin (welches dafür zuständig ist das Drittanbieter Plugin zu überschreiben, damit wieder Default Shopware angezeigt wird), als erstes installiert wurde - dementsprechend zuletzt geladen werden sollte. Das Drittanbieter Plugin wurde zuletzt installiert, wird also vor meinem Plugin geladen. Wenn ich jetzt parent() aufrufe lade ich damit doch das Drittanbieter plugin (da dieses ja zuerst geladen wird und somit der Parent meines Plugins ist). Wenn ich die Reihenfolge umdrehe, dann würde allerdings das Drittanbieter Plugin „mein“ Plugin überschreiben, da dieses ja nicht parent() aufruft oder?

parent() bezieht sich meinem Wissen nach immer auf das extend. Wenn aber ein anderes Plugin den gleichen Block später überschreibt, dann bringt dir das natürlich alles nichts, da du die Änderungen nicht siehst.

Selbst ein extend eines weiteren Plugins nützt dir zum Teil nichts mehr… irgendwann wird’s verwirrend.

Ich kann dir nur empfehlen die .env auf dev zu stellen und dann zu schauen, wie welches Plugin welche Datei überschreibt. So kommst du dem Problem am schnellsten auf den Grund.