Vorbereitung SW5.5: Cart + Checkout - geht ein Theme für 5.4 und 5.5?

Tagchen

So ab und an gucke ich mal bei Git in die uprade.md, und denke mir. So manch einer wird mit 5.5 in eine böse Plugin-Update-Falle laufen.
Konkret geht es um die Aufteilung der Positionen in der Cart und im Chekout in separate Dateien. Da wird expliziet drauf hingewiesen, dass hier Plugins und Themes angepasst werden müssen. Mir fallen da schon ein paar Plugins ein, die böse loosen werden. Kundentext pro Position, Nummerneingabe für Menge etc., Grundpreis…

Hier im Forum sind auch einige unterwegs, die in der Cart und im Checkout an den Positionen Änderung vorgenommen haben - andere Kurztexte über Freitext, Eigenschaften oder Grundpreisangabe. Das dürfte ja alles über die betroffenen Template-Blöcke laufen. Der eine hat es im Theme, der andere im Plugin umgesetzt.

In Pugins kann man ja eine Template-Weiche für die SW-Version machen. hat da wer grad eine kurze Idee, wie die im preDispatch zu machen ist? (Versionsvergleich alte Struktur)

Zweite Frage - und nun zum Topic:
Ist es überhaupt möglich, sein 5.4-Theme soweit vorzubereiten, dass unter es 5.4 geich nach einem Update auf 5.5 läuft? Immerhin kann ich im Theme ja keine “Versionsweiche” bauen. Oder muss ich meine Theme 5.5 fitt machen und direkt nach dem (in ferner Zukunft) Update auf 5.5 ersetzen?

Hallo,

ich habe es gerade mal mit einem simplen Test probiert:
 

{extends file='parent:frontend/checkout/cart_item.tpl'}
    {block name='frontend_checkout_cart_item_product'}
        TEST TEST TEST
        {$smarty.block.parent}
    {/block}

Vor dem Update wird hier im Cart dann TEST TEST TEST angezeigt, nach dem Update nicht mehr.
Du kannst das Ganze natürlich dennoch vobereiten, indem du deine Änderungen bereits schon einmal in die Files packst, die erst nach dem Update included werden. Wenn ich also nun eine Datei frontend/checkout/cart_item_product.tpl anlege mit gleichem Inhalt, dann kann ich die gefahrlos auch unter 5.4 schon im Theme ablegen, da der Include durch den Core ja erst mit dem Update dazu kommt. Vorher wird die Datei einfach nicht genutzt.

Ich habe also eine Datei cart_item.tpl die ich vor dem Update benutze und eine cart_item_product.tpl die ich danach nutze. Nach dem Update kann man dann natürlich die Änderungen auch wieder zurückbauen aus der cart_item.tpl.

Das ist jetzt natürlich nur ein einfaches Beispiel.

Auch werden die zugrundeliegenden Files - also die, die die eigentlichen Anpassungen enthalten sollten, auch nicht angefasst. Du kannst also ganz normal frontend/checkout/items/product.tpl extenden und es wird auch nach dem Update noch extended. Die Blöcke vorher sind ja erstmal nur dazu da, den kompletten Include überschreibbar zu machen - kleinere Änderungen würde man ja nicht am Außenliegenden Block vornehmen, sondern direkt in der products.tpl und die wird ja auch nach den Änderungen noch geladen und heißt auch noch gleich.

Es geht ja daher nur um die Blöcke die in dieser Datei liegen: shopware/cart_item.tpl at v5.4.4 · shopware/shopware · GitHub
Dafür kannst du ja regulär die Methode mit den zwei Dateien wie oben verwenden.

Moritz

1 Like

So in die “Tiefe” bin ich noch gar nicht gegangen. Bin gerade mit einer eher langweiligen “nicht-am-Computer-Tätigkeit” beschäftigt, und mache eher nur Gedankenspiele. In welcher Datei ich jetzt Änderungen gemacht habe, kann ich auch so nicht sagen. Die Includes anlegen, ist logisch, und wenn NACH der “Änderung” Änderungen nach Deinem Versuch wegfallen, ist es ja auch gut  Wink

ist wie mit der DSGVO: Manch einer sollte schon besser ein Auge auf die 5.5 haben - sofern sich was in der Cart / Checkout geändert hat.

Danke für Deinen Test und dir Rückmeldung  Thumb-Up
Ich geh mich dann mal weiter langweilen.  Undecided