# Block in einem Plugin überschreiben, wenn Bedingung erfüllt

**URL:** <https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138>\
**Category:** Programmierung\
**Created:** [28. März 2023 um 18:16 UTC](https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138 "2023-03-28T18:16:06Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![amargo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/amargo/32/8217_2.png) [@amargo](https://forum.shopware.com/u/amargo)\
**Post date:** [28. März 2023 um 18:16 UTC](https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138/1 "2023-03-28T18:16:06Z")

</div>

Wir haben ein kleines Test-Plugin geschrieben, das den „Kaufen“-Button ausblendet / deaktiviert, wenn der im Admin eingestellte Mindestbestellwert noch nicht erreicht ist. Das funktioniert einwandfrei.

Im Warenkorb Template gibt es aber einen Block {% block component\_offcanvas\_cart\_actions\_cart %} in den z.B. die Plugins von PayPal und Amazon schreiben.

Ist ein solches Plugin aktiv, dann reicht es nicht aus, den „normalen“ Kaufen-Button zu deaktivieren, da eine Bezahlung dann ja auch direkt über z.B. PayPal-Express möglich ist.

Wir müssen also dafür sorgen, dass diese Plugins nur dann in den Block schreiben, wenn der Mindestbestellwert erreicht ist. Wenn dieser nicht erreicht ist, dann darf auch die Bezahl-Möglichkeit über PayPal-Express usw. nicht angezeigt werden.

Über das abgeleitete Twig-Template unseres Plugins lässt sich das gewünschte Verhalten nicht erzeugen. Vgl. Dokumentation Twig [extends - Documentation - Twig - The flexible, fast, and secure PHP template engine](https://twig.symfony.com/doc/3.x/tags/extends.html) („Contrary to what you might think, this template does not define a block conditionally“)

Hinter dem Problem steckt die grundsätzliche Frage, ob und wie man mit einem Plugin das Verhalten eines anderen Plugins beeinflussen kann.

Wie könnte eine sinnvolle Lösung aussehen?

Wichtig ist vor allem, dass diese Lösung in allen Konstellationen 100% funktionieren muss. Die Existenz eines bestimmten Plugins oder bestimmte Einstellungen eines Plugins dürfen nicht vorausgesetzt werden.

Über eine Lösung bzw. Hinweise, die zu einer Lösung führen, würde ich mich sehr freuen.

Vielen Dank schonmal im Voraus und viele Grüße,  
Matthias

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [29. März 2023 um 06:30 UTC](https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138/2 "2023-03-29T06:30:38Z")

</div>

Im Theme die Render-Reihenfolge definieren.

```json
{
  //...
  "views": [
    "@Storefront",
    "@Plugins",
    "@MyTheme"
  ],
  //...
}

```

> **[Theme inheritance](https://developer.shopware.com/docs/guides/plugins/themes/add-theme-inheritance)**

---

<div class="post-metadata">

**Author:** ![amargo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/amargo/32/8217_2.png) [@amargo](https://forum.shopware.com/u/amargo)\
**Post date:** [29. März 2023 um 08:08 UTC](https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138/3 "2023-03-29T08:08:56Z")

</div>

Vielen Dank für die Rückmeldung.

Diese Lösung passt immer dann, wenn wir den Kunden betreuen und für ihn eine Ableitung des Themes erstellen können.

Das Plugin sollte aber auch ohne eine Änderung / Anpassung des Themes funktionieren.

---

<div class="post-metadata">

**Author:** ![AlexGalax](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/alexgalax/32/9925_2.png) [@AlexGalax](https://forum.shopware.com/u/AlexGalax)\
**Post date:** [29. März 2023 um 11:45 UTC](https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138/4 "2023-03-29T11:45:01Z")

</div>

Seit 6.4.12 kann man mit der Methode `getTemplatePriority()` die Renderreihenfolge der Plugins bestimmen (default: `-1`):

> <https://github.com/shopware/platform/blob/37e1fcdf8fb4ae9ab54a329447e38d5938eb330f/changelog/release-6-4-12-0/2022-05-11-add-template-prio.md>

---

<div class="post-metadata">

**Author:** ![amargo](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/amargo/32/8217_2.png) [@amargo](https://forum.shopware.com/u/amargo)\
**Post date:** [29. März 2023 um 12:03 UTC](https://forum.shopware.com/t/block-in-einem-plugin-ueberschreiben-wenn-bedingung-erfuellt/99138/5 "2023-03-29T12:03:42Z")

</div>

Vielen Dank für Deinen Hinweis, das ist die Lösung.

Dieser Issue-Eintrag [Shopware Issuetracker](https://issues.shopware.com/issues/NEXT-4953) beschreibt das Problem genau.

Frage mich allerdings, warum ich diesen nicht bei meiner google Suche gefunden hatte … vielleicht zu ungeduldig.

Jedenfalls nochmal vielen Dank!
