Hallo zusammen,
nach langem experimentieren ist es mir nun endlich gelungen, Shopware 5 Updates wieder einzuspielen. Und somit habe ich Schrittweise von 5.6.6 zu 5.7.15 die Updates eingespielt. 5.7.16 nicht, da das neue Fehler bringt, zu denen ich aber erst demnächst komme – immer ein Problem nach dem anderen.
Mit dem Update auf die zweit-neueste Version wollte ich auch endlich von php 7.4 auf php 8.0 umstellen. Doch das bringt mich nun zu einem aktuellen Problem:
Stelle ich auf php 8 um (Production-Ordner natürlich erneuert) so kann man als Kunde keine Artikel mehr in den Warenkorb legen. Der Off-Canvas Warenkorb zeigt nur das Ladesymbol, es geht nichts weiter.
Ich habe dann Schritt für Schritt alle Plugins gelöscht (richtig gelöscht, nicht nur deaktiviert) bis nichts mehr da war – Problem besteht weiter. Dann habe ich mal Testweise das Standard-Responsive-Theme eingeschalten – und siehe da, es funktioniert wieder.
Ok, das Problem liegt also in meinem Theme – ich hatte da auch eine Idee und konnte es durch löschen der Datei “ajax_cart_item.tpl” im Ordner “/themes/Frontend/THEMENAME/frontend/checkout” auch beheben. Ist die Datei weg, kann ich auch mit meinem Theme problemlos wieder Artikel in den Warenkorb legen.
Das eigentliche Problem ist aber, das ich diese angepasste Datei unbedingt brauche. Sie sorgt nämlich dafür, das der Grundpreis auch im Offcanvas-Warenkorb angezeigt wird, was ja rechtlich notwendig ist, im Standard aber nicht enthalten ist.
Die Datei hat folgenden Inhalt:
{extends file="parent:frontend/checkout/ajax_cart_item.tpl"}
{block name="frontend_checkout_ajax_cart_articlename_price"}
{$smarty.block.parent}
{if count($basketItem.additional_details.prices) > 0 && $basketItem.additional_details.prices[0].referenceprice}{assign var="price" value=$basketItem.additional_details.prices[0]}
<span class="item--name" style="font-size:0.75em"><b>Inhalt:</b> {$sBasketItem.purchaseunit|string_format:"%.2f"} {$sBasketItem.itemUnit}</span></style><br>
<span class="item--name" style="font-size:0.75em">(Grundpreis: {$price.referenceprice|currency}* / {$price.referenceunit} {$price.sUnit.unit})</span></style>
{/if}
{/block}
Da alles Problemlos funktioniert, sobald ich wieder auf php 7.4 zurückstelle, liegt es eindeutig an php 8. Aber da bin ich absolut am Ende mit meinem Latein – was genau macht php 8 anders, damit o.g. Anpassung nicht mehr funktioniert?
Wer hat eine Idee, was ich ändern muss, damit php 8 funktioniert und ich trotzdem den Grundpreis im Offcanvas-Warenkorb angezeigt bekomme?