Berechnungen der Variablen

Hallo Forum,

ich möchte mit {$sDispatch.weight} das Versandgewicht im Offcanvas-Warenkorb ausgeben. Diese wird nur nicht ausgegeben. Ich nehme an, dass die Berechnung für das Versandgewicht an dieser stelle garnicht zur Verfügung steht.

Wo bzw. in welcher/en Datei/en steht eigentlich der code für die Berechnungen der Variablen und wie kann ich die nutzen?

Ich verstehe deine Frage nicht ganz.

Welche Variablen verfügbar sind, kannst du so auslesen: Debugging Shopware

Der Profiler kann das auch: Debugging Shopware

Eigene Variablen zur Verfügung stellen, kannst du nur per Plugin.

Danke für die Antwort.

Eigene Variablen möchte ich nicht definieren, sondern vorhandene ausgeben.

Mit {debug} bekomme ich, wie in der Doku beschrieben, ein Popup mit der Variablen-Liste. Einige Variablen enthalten ein Array mit einem Objekt, dass einen Wert enthält. Z.B. $sBasket->array->amount->“wert”. Soweit so gut.

Wenn ich in irgendeinen Block im Template der ajax_cart.tpl die Variable {$sBasket.Amount} einfüge, wird im Frontend auch der dementsprechende Wert ausgegeben. Wenn ich allerdings z.B.{$sBasket.Articlename} in den Block einfüge, wird mir der darin befindliche Wert nicht ausgegeben.

Die Frage dabei ist, warum der Preis aber nicht der Artikelname ausgegeben wird, obwohl beide Werte in der Liste stehen und wie ich eine Ausgabe erreiche? Stimmt überhaupt mein Syntax?

Zum einen ist ja mehr als ein Produkt im Warenkorb, also hast du ja mehr als einen Artikelnamen. Das wird auch in den von dir genannten Template-Dateien ja schon alles ausgelesen: shopware/ajax_cart.tpl at 5.5 · shopware/shopware · GitHub

 

{foreach $sBasket.content as $sBasketItem}
    {block name='frontend_checkout_ajax_cart_row'}
        {include file="frontend/checkout/ajax_cart_item.tpl" basketItem=$sBasketItem}
    {/block}
{/foreach}

Und dann in der inkludierten Datei:

{$basketItem.articlename|escape}

Wenn du es also ausgeben willst, musst du schon sowas machen:

{foreach $sBasket.content as $sBasketItem}
 {$basketItem.articlename|escape}
{/foreach}

Oder wenn du nur den ersten ausgeben willst halt sowas:

 {$sBasket.content.0.articlename|escape}

 

1 „Gefällt mir“

Der Code hat mir sehr weitergeholfen, hat aber meine Kernfrage noch nicht beantwortet oder ich bin noch nicht hinter das System gestiegen.

Mit deinem Code werden mir die Variablen „amount“ und „articlename“ ausgegeben. Das kommt, meiner Vermutung nach, daher, dass beide Variablen in der ajax_cart_item.tpl schon definiert sind, die in die ajax_cart.tpl includiert ist.

Worum es mir aber geht ist, ich möchte an irgendeiner Stelle im Frontend irgendeine Variable ausgeben, in diesem Fall das Versandgewicht im Offcanvas-Warenkorb. Wie finde ich heraus, wo die jeweilige Variable definiert ist, in diesem Fall das Artikelgewicht, damit ich einen Bezug herstellen kann? Dazu stehen im debug-modus keine Pfade.

Na du packst ein {debug} in die Template-Datei wo du etwas ausgeben willst und im Popup stehen alle verfügbaren Variablen. Die beziehen sich immer auf die jeweilige Datei wo das debug drin steht.

1 „Gefällt mir“

Habe den Fehler gefunden.

Ich muss das untergeordnete Array „additional_details“ angesprechen und {$sBasketItem.additional_details.weight|escape} anstatt {$sBasketItem.weight|escape} verwenden.

Danke für deine Mühen und deine Geduld.