Warenkorb Gesamtpreis für Pseudopreis - Gesamte Ersparnisse der Bestellung anzeigen

Hallo zusammen,

ich würde gerne überall, wo der Preis angezeigt wird die entsprechende Ersparnis des Pseudopreises ausgeben, also auch in der Navigation beim Warenkorb, sowie Im Warenkorb und im Checkout. Also nicht pro Artikel sondern im Gesamtpreis. Ich bin total neu mit Shopware und hab versucht mich ein bisschen reinzufinden. So hab ich bereits herausgefunden, das $sBasketAmount durch eine Funktion namens sGetAmount() ausgerechnet wird, die ich bisher noch nicht in der entsprechenden Datei finden konnte. Ich hab versucht in der shop-navigation.tpl  mehr Infos als nur den $sBasketAmount zu kommen, was allerdings nicht funktioniert hat. Bedeutet vermutlich ich müsste irgendeine Form von Plugin schreiben und hier den Pseudopreis entsprechend zusammen zurechnen und dort überall verfügbar machen. Weiß nicht so richtig wo ich anfangen soll. Gibt es hier vielleicht schon ein entsprechendes Plugin für?

Ich hab heute eine ganze Weile danach im Internet gesucht und konnte nichts brauchbares dazu finden, ich hoffe es kann mir hier vielleicht jemand helfen!

Grüße

Julia

Mal ein kleines Update:

Hab es jetzt soweit ich allen tpl ausgerechnet und ausgegeben, allerdings bekomme ich es in dem /widgets/checkout/info.tpl überhaupt nicht hin. Verstehe nicht was und wie ich das genau dorthin übergeben kann, hat da vielleicht jemand eine Idee?

Für alle die es vielleicht interessiert, wie man den Pseudogesamtpreis im Warenkorb/Checkout ausgibt:

Zum Errechnen des Gesamtpseudopreises benutze ich eigentlich überall diesen Code:

{* PSEUDOGESAMTPREIS *}
{$hasPseudo = false}
{foreach $sBasket.content as $sBasketItem}
   {if $sBasketItem.additional_details.has_pseudoprice == 1}
       {$hasPseudo = true}
       {$pseudoAmount=$pseudoAmount+($sBasketItem.additional_details.pseudoprice_numeric*$sBasketItem.quantity)}
   {else}
       {$pseudoAmount=$pseudoAmount+($sBasketItem.additional_details.price_numeric*$sBasketItem.quantity)}
   {/if}
{/foreach}
{if $hasPseudo}
   {$pseudoAmount|currency}{s name="Star" namespace="frontend/listing/box_article"}{/s}
{/if}

Ich hab mir eine Variable angelegt, um das ganze wirklich nur dann auszugeben, wenn auch ein Artikel mit Pseudopreis vorhanden ist. Dann wird durch alle Artikel im Warenkorb geloopt um die Preise zusammen zurechnen, wobei Artikel ohne Pseudopreis mit ihrem normalen Preis dazu addiert werden.

Das habe ich dann in folgene Dateien eingefügt:

  • themes/Frontend/MEINTHEME/frontend/checkout/ajax_cart.tpl - Zeile 63
  • themes/Frontend/MEINTHEME/frontend/checkout/cart_footer.tpl - Zeile 76

 

Ansonsten fehlten in den Tabellen noch die Pseudopreise für die einzelnen Artikel:

  • themes/Frontend/MEINTHEME/frontend/checkout/ajax_cart_item.tpl - Zeile 128

    {* PSEUDOGESAMTPREIS }
    {if $basketItem.additional_details.has_pseudoprice == 1}
    {$pseudoAmount = $basketItem.quantity
    $basketItem.additional_details.pseudoprice_numeric}
    {$pseudoAmount|currency}{s name=“Star”}{/s}
    {/if}

 

  • themes/Frontend/MEINTHEME/frontend/checkout/items/product.tpl
    • Zeile 141 

      {* PSEUDOGESAMTPREIS *}
      {if $sBasketItem.additional_details.has_pseudoprice == 1}
      {$sBasketItem.additional_details.pseudoprice|currency}{block name=‘frontend_checkout_cart_tax_symbol’}{s name=“Star” namespace=“frontend/listing/box_article”}{/s}{/block}
      {/if}

 

Falls hier jemand einen Hinweis hat, wie ich das vielleicht schöner hätte integrieren können, immer her damit. Hatte überlegt, ob ich das irgendwie in ein Plugin auslagern kann und dann an den Stellen den entsprechenden Wert nur ausgebe, aber damit hab ich mich noch nicht genug beschäftigen können.

 

Grüße

Julia