Ich habe ein Produkt, welches verschiedene Preisstaffeln hat. Dabei stören mich jetzt 2 Dinge: 1. Im Listing wird der günstigste Preis angezeigt, ohne einen Hinweis darauf, dass er nur durch Abnahme von XY Stück zu bekommen ist. Das mag gängig sein, ich möchte meine Kunden aber nicht mit solchen Marketingtricks konfrontieren. *Der einzige Hinweis ist natürlich das “Ab xy Euro”, das entferne ich im entsprechenden Textbaustein. 2. Beim Artikel selber, wird der preis nun in einer Tabelle angezeigt, je nach Menge der Abnahme. Hier fehlt mir ein deutlicher Preis, der fett und groß sofort sichtbar ist. Ich weiss nicht wie das rechtlich ist, optisch finde ich es aber unbefriedigend. Das Auge findet nicht wie üblich den dazugehörigen Preis auf Anhieb, was ich extrem störend finde. Ich versuche jetzt seit einer ganzen Weile diese beiden Dinge zu ändern. Für das Listing ist es glaube ich /frontend/listing/box_article.tpl so um Zeile 90 (kann sein dass ich da ein paar Zeilen verrutscht bin durch andere Änderungen. Folgender Code: {if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData} {s name='ListingBoxArticleStartsAt'}{/s} {/if}{$sArticle.price|currency} {s name="Star"}\*{/s}
$sArticle.price|currency gibt den preis an, ich kann dort mit $sArticle.referenceprice|currency z.B. den Grundpreis anstatt des Artikelpreises angeben. Mit …pseudoprice… den Pseudopreis, etc… Wenn das Template in der Variable $sArticle.price bei Staffelpreisen bereits den günstigsten Preis hat, woher bekommt es den? Wie komme ich an den originalen Artikelpreis? Eine Möglichkeit die mir einfallen würde, wäre eine simple Rechnung [quote] “referenceprice x Menge / 1000” [/quote] Aber wie baue ich so eine Rechnung dort in den Code ein? muss ich an geeigneter Stelle eine eigene Variable bilden dafür erstellen oder kann ich diese Rechnung direkt in dem Codeblock vornehmen? Das sind meine ersten Schritte mit dem Template-System und alle Versuche diese Rechnung direkt einzubauen sind gescheitert. Oder besser - gibt es eine andere Variable als $sArticle.price, die mir den originalen, unrabattierten preis liefert? Habe schon nach einer Referenz aller Variablen gesucht, aber nichts gefunden. So etwas würde mir in meiner jetzigen Situation und beim Verstehen des Codes ungemein helfen. Ohne das bleibt mir nichts anderes über, als durch alle entsprechenden tpl-files zu gehen, und in den passenden Blöcken Variable für Variable abzuklappern, und dann zu versuchen diese Variable versuchsweise in meinen Code oben einzubauen, und zu gucken was dabei in der Anzeige des Listings rauskommt. Und für Problem nummer 2. das gleiche, dort den unrabattierten Preis in fett und groß anzuzeigen. Ich könnte ihn nochmal extra über ein Attribut (Freitext) in die Anzeige bringen, aber hab noch nicht versucht, ob ich den dann fett&groß formatieren kann, weil ich noch bei Problem 1 stecke. Und gibt es da nicht vielleicht auch eine elegantere Lösung? **edit 23.07.13 Was mir z.B. sehr helfen würde, für die generelle Arbeit mit Shopware und dem Templatesystem, wäre etwas wie dieses Cheat-Sheet: templates-und-design-f57/template-cheatsheet-fur-shopware-4-0-t11326.html Nur mit den von Shopware benutzten Variablen anstatt des Syntaxes.
Keiner eine Idee? Ich hab mir inzwischenmit einem Kompromiss geholfen, sobald ich gestaffelte Preise habe bei einem Artikel, dann gebe ich den unrabattierten Preis noch einmal zusätzlich in das 1. Freitextfeld ein und rufe diesen preis dann im Listing, auf der Detailseite und bei “Ähnlichen Artikeln” über “attr1” auf. Sieht folgendermaßen aus: (vielleicht hilft es ja beizeiten noch jemandem) Bei /frontend/listing/box_article.tpl {\* wenn unrabattierter preis im freitext angegeben ist (bei staffelpreisen) \*} {if $sArticle.attr1==true} {if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name='ListingBoxArticleStartsAt'}{/s} {/if}{$sArticle.attr1|currency} {s name="Star"}\*{/s} {/if} {\* wenn kein unrabattierter preis im freitext angegeben ist (keine staffelpreise) \*} {if $sArticle.attr1==false} {if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name='ListingBoxArticleStartsAt'}{/s} {/if}{$sArticle.price|currency} {s name="Star"}\*{/s} {/if}
Oberer Code ersetzt Zeile 9 in diesem Auszug des Original Codes [code] {* Article Price *} {block name=‘frontend_listing_box_article_price’}
{if $sArticle.pseudoprice} {s name=“reducedPrice”}Statt: {/s}{$sArticle.pseudoprice|currency} {s name=“Star”}*{/s} {/if} {if $sArticle.priceStartingFrom && !$sArticle.liveshoppingData}{s name=‘ListingBoxArticleStartsAt’}{/s} {/if}{$sArticle.price|currency} {s name=“Star”}*{/s}
{/block} [/code] Nach gleichem Prinzip das ganze bei /Frontend/listing/box_similar.tpl Und bei /frontend/detail/data.tpl einfach bei vorhandenem Freitext diesen über {$sArticle.attr1|currency} ausgeben, der wird dann über der Tabelle mit den Staffelpreisen angezeigt. Wenn kein Freitext vorliegt, wird der Standartpreis eh ohne Tabelle angezeigt, da keine Staffelpreise vorhanden sind. Also im Prinzip gelöst. Nur etwas fummelig für meinen Geschmack.
Mal wieder ein gute Frage, die ich aber nicht als gelöst bezeichnen würde. Denn den Originalpreis in ein Freitextfeld zu schreiben nur um irgendeine, nicht nachvollziehbare Logik zu umgehen ist schon bitter. Es sollte doch jemand wissen, wo die Variable $sArticle.price mit dem tiefsten Staffelpreis belegt wird (und warum?). Und mit welcher Variablen man im Listing auf den Grundpreis zugreifen könnte. Sucht man zu dem Thema über Google, landet man auch nur hier im Forum, bis auf diesen Eintrag allerdings nur Beiträge zur Version 3.5. Eine ernsthafte Lösung würde mich also auch interessieren, Thomas
Ich bin leider auch nicht weiter gekommen. Und da es “erstmal” auch über diesen Umweg ging, hab ich mich einem der X anderen kleinen Problemchen zugewendet. Wäre aber nach wie vor auch für mich interessant.
Also gelöst ist das ja nicht wirklich. Ich würde eher festhalten, Antwort ausstehend. templates-und-design-f57/unkorrekte-preisangabe-bei-ab-preise-im-original-template-t18887.html Gruss Ken
Die nächsten Tage werde ich nicht dazu kommen, brauche aber eine Lösung. Sobald ich die habe, werde ich die gerne hier kundtun (dauert also noch).