[gelöst] Wesentliches Artikelmerkmal auf Bestellabschlussseite

Hallo zusammen,

gemäß offizieller Shopware-Anleitung (diese hier) habe ich mir über die Funktion {$sBasketItem|print_r} die Variablen für die wesentlichen Merkmale auf der Bestellabschlussseite ausgeben lassen.

Über den Aufbau

Inhalt: {$sBasketItem.additional_details.purchaseunit} {$sBasketItem.additional_details.sUnit.description}

würde ich mir gerne den Inhalt des Artikels (z.B. 100 ml) als wesentliches Merkmal ausgeben lassen.

Betrachte ich mir die ausgegebenen Variablen, gibt die Variable „purchaseunit“ den Artikelinhalt an.

Nun zu meinem Problem. Habe ich einen Artikel, den es z.B. mit 100ml und 250ml gibt, habe ich diesen als Varianten-Artikel angelegt. Schaue ich mir nun von diesem Artikel die Variablen an, ist „purchaseunit“ mehrfach vorhanden.

Bei meiner Abfrage oben gibt er aber nur den Inhalt der ersten Variable „purchaseunit“ aus. Das heißt, auch bei der 250ml Variante wird im Warenkorb als Inhalt 100ml ausgegeben.

Jetzt meine Frage an  das Forum (und natürlich besonders auch an alle Shopware-Offiziellen): Aus der Anleitung geht leider nicht hervor, wie ich die wesentlichen Merkmale eines Varianten-Artikels anzeigen kann. Bitte gebt mir einen Tipp, was ich an {$sBasketItem.additional_details.purchaseunit} ändern soll, um den Inhalt einer Variante ausgeben lassen zu können.

Danke allen im voraus!

Beim Artikel steht doch bestimmt die Variantenbezeichnung (Größe oder Inhaltsmenge …), oder?
Wir haben Schuh- und Kleidergrößen als Varianten und die jeweilige Größe wird im Bestellvorgang/Zusammenfassung beim Artikel gezeigt. Das reicht.

Das stimmt schon, aber die Frage steht bei mir im Zusammenhang mit der Grundpreisangabe. Ich habe Artikel ohne und mit Varianten, bei denen im Warenkorb und auf der Bestellabschlussseite der Grundpreis angezeigt werden soll (siehe dieser Thread). Mit der Vorlage von artep, welche ich umgebaut/angepasst hatte, steht dann z.B. dort:

Inhalt: 250g | Grundpreis: 100g = 3,00 Euro

Das klappt soweit auch bei Artikeln ohne Variante, aber sobald eine Variante im Spiel ist, wird bei Inhalt immer nur der Inhalt der Grundvariante angezeigt (also auch wenn oben nach der Artikelbezeichung 250g entsprechend der Variante steht, steht unten bei Inhalt z.B. nur 100g sowie der jedoch passende Grundpreis). Deswegen die Frage, wie ich die “purchaseunit” passend zur Variante angezeigt bekommen kann.

@W222 schrieb:

Das klappt soweit auch bei Artikeln ohne Variante, aber sobald eine Variante im Spiel ist, wird bei Inhalt immer nur der Inhalt der Grundvariante angezeigt (also auch wenn oben nach der Artikelbezeichung 250g entsprechend der Variante steht, steht unten bei Inhalt z.B. nur 100g sowie der jedoch passende Grundpreis). Deswegen die Frage, wie ich die „purchaseunit“ passend zur Variante angezeigt bekommen kann.

Du musst dann bei jeder Variante den passenden Grundpreis eingeben, dann erscheint auch dieser im Warenkorb.   Wink 

Da hab ich mich wohl unklar ausgedrückt - mit dem Grundpreis passt und funktioniert alles, egal ob mit oder ohne Variante. Das Problem ist nur die richtige Ausgabe des Inhaltes über {$sBasketItem.additional_details.purchaseunit} im Warenkorb und der Bestellübersichtsseite.

Ahhh, ok. Den Inhalt habe ich nicht da stehen. Bei Varianten habe ich das eh hinterm Artikelnamen, da ich versch. Mengen für einen Artikel habe. 

EDIT: Aber wenn Du das doch auch beim Artikel stehen hast, brauchst Du das doch nicht noch einmal aufzuführen. Das wäre ja doppelt gemoppelt. Bei Artikeln ohne Varianten habe ich das unter wesentliche Merkmale für die Kassenseite eingegeben. Das reicht doch dann so.

Stimmt schon, mir geht es auch hauptsächlich um die Optik, das diese Zeile bei Varianten und Nicht-Varianten-Artikeln einfach gleich aussieht. Hatte gehofft, das ein Shopware-Admin etwas Licht ins Dunkel bringt und verrät, wie man die Variantenwerte bekommt. Könnte ja generell für manchen Interessant sein, der z.B. eine andere Variable eines Variantenartikels ausgeben lassen möchte. 

Unter Iteminfo in der Smarty Debug Console ist der Wert drin, wird aber nicht angezeigt/ausgegeben, einiges probiert aber erfolglos. Und Optisch sieht es nicht wirklich aus. Das gleiche problem ist auch bei Staffelpreise. Wird der Grundpreis unter der Artikelbeschreibung eingefügt wird der Grundpreis der Hauptvariante anzeigt, verschiebt man den Block unter dem Einzelpreis wird der Grundpreis der letzten Variante angezeigt ???

Warte mir mal ab, bis eine Lösung in Sicht ist. Bis dahin halt Artikel mit Grundpreis ohne Varianten und ohne Staffelpreis. 

Hat zu dem Thema schon jemand eine neue Idee?

@Shopware-Team (z.B. SebastianKlöpper oder Moritz Naczenski): Hättet ihr einen Vorschlag/Idee, wie es umzusetzen ist, das man im Warenkorb den Inhalt der ausgewählten Variante angezeigt bekommt? Mit {$sBasketItem.additional_details.purchaseunit} funktioniert es ja leider nicht, da zeigt er nur den Wert der Hauptvariante an. Wäre für alle Ideen/Tipps/Vorschläge dankbar!!

An alle die auf diesen Beitrag stoßen - die Lösung findet ihr dank @ Moritz Naczenski @ und dem Shopware-Team jetzt in der offiziellen Doku: https://docs.shopware.com/de/shopware-5-de/einstellungen/bestellabschluss?category=shopware-5-de/einstellungen

der Code dazu:

{foreach item=price key=position from=$sBasketItem.additional_details.prices}
    {if $sBasketItem.quantity >= $price.valFrom && $sBasketItem.quantity <= $price.valTo || !$price.valTo}
        {assign var="referenceprice" value=$price.referenceprice}
        {break}
    {/if}
{/foreach}
{if $sBasketItem.additional_details.referenceprice} 
    Inhalt: {$sBasketItem.purchaseunit|string_format:"%.2f"} {$sBasketItem.itemUnit} ({$referenceprice|currency}* / {$sBasketItem.additional_details.referenceunit} {$sBasketItem.itemUnit})
{/if}