Netto und Brutto Preise anzeigen

Hallo zusammen,
ich hätte da mal ein Problem. Ich möchte auf den Artikelseiten, neben den Brutto-Preisen, auch die Netto-Preise ausgeben.
Ich habe aus dem der Shopware Dokumentation entnommen, dass die Variable für den Nettopreis folgende ist: {$sArticle.netprice}

Ich möchte nun also in der “frontent/detail/data.tpl” folgende Zeile erweitern:

von

{if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name='ListingBoxArticleStartsAt' namespace="frontend/listing/box_article"}{/s} {/if}{$sArticle.price|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}

zu
 

{if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name='ListingBoxArticleStartsAt' namespace="frontend/listing/box_article"}{/s} {/if}{$sArticle.price|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}{$sArticle.netprice|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}

also ich füge diesen Codeschnipsel an:
 

{$sArticle.netprice|currency} {s name="Star" namespace="frontend/listing/box_article"}{/s}

Der Preis der ausgeben wird, ist aber leider immer nur 0,00 €.

Warum wird mir der Nettopreis nicht ausgegeben?
Kann mir da jemand weiterhelfen?

Könntest du anstatt currency mal dir ein var_dump ausgeben lassen? Bzw. mal schauen was in der Variable drin steht?

Wo steht das denn in der Doku?
Der netprice ist glaube ich garnicht überall verfügbar. Schau dir erstmal das Array an mit {$sArticle|print_r}

Wie mache ich ein var_dump?

Ich verstehe leider zu wenig von Smarty, dass ich wüsste wie sich ein Array anschaut. :frowning:

 

Ich hätte aber einen anderen Lösungsansatz für mein Problem. Ich könnte ja einfach 19% vom Preis runterrechnen. Aber wie schreibe ich das?

{$sArticle.price-???|currency}

ein var_dump ergab NULL

Dann ist die Variable dort nicht vorhanden.

1 „Gefällt mir“

was natürlich blödsinn ist, weil ich es nicht kapiere.

Eigentlich solltest du es so machen können wie du vorgeschlagen hast. Also mit

 

{$sArticle.price-19%|currency}

Hab aber leider keinen Shop zur verfügung um das zu testen.
Sonst ist hier noch ein Beispiel von der Smarty-Seite:

 

Math

Mathematische Operationen können direkt auf Variablen verwendet werden.

Beispiel 3-6. Mathematik Beispiele

{$foo+1}
{$foo*$bar}

{* kompliziertere Beispiele *}

{$foo->bar-$bar[1]*$baz->foo->bar()-3*7}
{if ($foo+$bar.test%$baz*134232+10+$b+10)}
{$foo|truncate:"$fooTruncCount/$barTruncFactor-1"}
{assign var=„foo“ value="$foo+$bar"}

1 „Gefällt mir“

Ok, danke Ziney. Ich versuche mal mein Glück!

Funktioniert leider nicht. Ich hab dazu einen neuen Thread eröffnet.

Hallo,

was soll denn “$sArticle.price-19%” für eine schräge Formel sein? Ich würde mal ein Schulbuch zu Prozentrechnung in die Hand nehmen. Ein wenig Auffrischung sollte helfen (wichtigste Kenntnis: 1 % = 1/100 - deswegen ist das ganz normale Bruchrechnung).

Wenn es sich darum handelt von Bruttopreisen auf Nettopreise zu kommen, sollte man sich als erstes vergegenwärtigen, daß Bruttopreise nicht 100 % sondern 119 % sind, da sich die Umsatzsteuer immer auf die Nettopreis als Basis bezieht. Die passende Formel wäre also:

{$sArticle.price/119*100}

1 „Gefällt mir“

Du hast natürlich völlig recht, das war schlechte Mathematik. Ich bin mit Smarty nicht vertraut, deswegen hatte ich mehr die Syntax im Auge. Also vielen Dank für das Augen öffnen.

Und ja, es funktioniert jetzt.

Da wir die Nettopreise zuerst anzeigen wollen und nur als Hinweis auch den Bruttopeis einblenden, wird dann bei uns von 100% auf 119% gerechnet.
Also: {$sArticle.price/100*119}
 

…ist aber keine saubere Lösung. Wenn du Artikel mit unterschiedlichen Steuerklassen hast? Oder Evtl. andere Länder mit anderen Steuerklassen? Dann hast du ein Problem mit den hart kodierten Steuern…