Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

hk01

Aktives Mitglied
23. Juli 2014
9
0
Hallo zusammen,

in einem Testshop versuche ich derzeit, auf dem Wunschzettel die gleichen Infos einzublenden, wie sie auch im Warenkorb zu sehen sind.

Bei unseren Produkten haben wir eine Reihe von Variationsfeldern (mehrere Pflicht-Freitextfelder sowie eine Selectbox für die Größe; geht um Bekleidung). Bevor ein Artikel auf die Wunschliste oder in den Warenkorb gelegt werden kann, müssen verschiedene Daten angegeben werden. Wenn man das Produkt nun auf den Wunschzettel legt und sich den Wunschzettel ansieht, taucht aber nur die Variationseigenschaft "Größe" auf. Die vorangehenden Pflicht-Freitextfelder werden nicht angezeigt. Legt man das Produkt nun vom Wunschzettel aus in den Warenkorb, erscheinen dort auch wieder die zusätzlichen Infos.

Wie bekomme ich es hin, dass auch auf dem Wunschzettel alles angezeigt wird?

So weit ich es herausgefunden habe, steht in der /templates/JTL-Shop3-Tiny/warenkorb.tpl (bzw. bei mir warenkorb_custom.tpl) der relevante Code:
PHP:
                              {if ($oPosition->Artikel->nIstVater == 1 || $oPosition->Artikel->kVaterArtikel > 0 && $Einstellungen.kaufabwicklung.warenkorb_varianten_varikombi_anzeigen == "Y") || ($oPosition->Artikel->nIstVater == 0 && $oPosition->Artikel->kVaterArtikel == 0)}
                                 {foreach name=variationen from=$oPosition->WarenkorbPosEigenschaftArr item=Variation}
                                    <p>{$Variation->cEigenschaftName[$smarty.session.cISOSprache]}: <strong>{$Variation->cEigenschaftWertName[$smarty.session.cISOSprache]}</strong></p>
                                 {/foreach}
                              {/if}

In der Datei /templates/JTL-Shop3-Tiny/tpl-inc/jtl_wunschliste.tpl (bzw. bei mir jtl_wunschliste_custom.tpl) scheint für die Größe das unten der relevante Code zu sein:
PHP:
                        {foreach name=eigenschaft from=$CWunschlistePos->CWunschlistePosEigenschaft_arr item=CWunschlistePosEigenschaft}
                        {if $CWunschlistePosEigenschaft->cFreifeldWert}
                           <p><b>{$CWunschlistePosEigenschaft->cEigenschaftName}:</b> {$CWunschlistePosEigenschaft->cFreifeldWert}{if $CWunschlistePos->CWunschlistePosEigenschaft_arr|@count > 1 && !$smarty.foreach.eigenschaft.last}</p>{/if}
                        {else}
                           <p><b>{$CWunschlistePosEigenschaft->cEigenschaftName}:</b> {$CWunschlistePosEigenschaft->cEigenschaftWertName}{if $CWunschlistePos->CWunschlistePosEigenschaft_arr|@count > 1 && !$smarty.foreach.eigenschaft.last}</p>{/if}
                        {/if}
                        {/foreach}

Eigentlich will ich ja einfach "nur", dass alle Zusatzinformationen angezeigt werden.

Hat da jemand einen Tipp? Oder teste ich hier in den falschen Dateien herum? Habe nämlich nicht so ganz kapiert, warum beim Warenkorb das Templatehauptverzeichnis relevant ist, bei der Wunschliste jedoch die jtl_wunschliste.tpl aus dem tpl-inc Verzeichnis.

Bin für jeden Tipp dankbar,
Grüße
 

t.oster

Gut bekanntes Mitglied
4. Dezember 2013
196
20
AW: Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

Hallo,

ich habe ähnliches vor. Eine Inspektion mit "Smarty Smarter Debug" zeigt, dass es in dem Array $CWunschlistePosEigenschaft leider nicht die gewünschten Informationen gib. Allerdings für die Seitenbox, also in $Boxen.Wunschliste->CWunschlistePos_arr. Bei Freifeldern ist zusätzlich das Problem, dass in einem Array zwar der Wert, aber nicht mehr der Name des Freifeldes steht.

Meine Lösung ist ziemlich ekelhaft, deswegen möchte ich den Code hier nicht posten, aber die Vorgehensweise ist folgende:
- Suche in
$Boxen.Wunschliste->CWunschlistePos_arr den Eintrag für deine aktuelle Position (kWunschlistPos sollte übereinstimmen). Dort gehe ->Artikel->Variationen durch um an die Namen (cName) zu kommen. Zu jeder Variation suchst du (mithilfe derer kEigenschaft) in ->CWunschlistePosEigenschaft_arr den entsprechenden Eintrag. Der (Freifeld-) Wert steht da in cFreifeldWert.
 

t.oster

Gut bekanntes Mitglied
4. Dezember 2013
196
20
AW: Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

Ach... wozu die falsche Scheu

in jtl_wunschliste(_custom).tpl:

unter
Code:
<div class="desc">                        <p><a class="konfiglink{$smarty.foreach.wunschlistepos.index}" href="{$CWunschlistePos->Artikel->cURL}">{$CWunschlistePos->cArtikelName}</a></p>
(ca Zeile 103)

Code:
{*MOD:Variationen anzeigen *}
{*find same position in Boxen, because there are the values actually loaded.*}
{foreach from=$Boxen.Wunschliste->CWunschlistePos_arr item="pos"}
    {if $pos->kWunschlistePos == $CWunschlistePos->kWunschlistePos && count($pos->CWunschlistePosEigenschaft_arr) > 0}
        {foreach key="index" from=$pos->Artikel->Variationen item="Variation"}
          {if $Variation->cTyp == "FREIFELD"}
            {foreach from=$pos->CWunschlistePosEigenschaft_arr item="eigen"}
                {if $eigen->kEigenschaft == $Variation->kEigenschaft}
                    <p><b>{$Variation->cName}: </b>{$eigen->cFreifeldWert}</p>
                {/if}
            {/foreach}
          {/if}
        {/foreach}
    {/if}
{/foreach}
{*endmod*}

Achtung: Bisher nur für Freifelder, da das für meine Zwecke ausreicht. Wer den Rest auch braucht, ich mache gerne ein Angebot ;)
 
Zuletzt bearbeitet:

t.oster

Gut bekanntes Mitglied
4. Dezember 2013
196
20
AW: Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

Ich habe gerade festgestellt, dass die oben genannte Lösung nur bis zum nächsten Logout funktioniert.
Um das ganze Robust zu machen, braucht man eine PHP-Funktion, die einem die Variationswerte aus der Datenbank liest. Hier meine Version:

1. In die templates/JTL-Shop3-Tiny/php/functions.php

Code:
function uit_wishlistvariations($params, &$smarty)
{
    $kWunschlistePos = $params['kWunschlistePos'];
    $query = "SELECT e.cName, e.cTyp, e.nSort, v.cFreifeldWert, v.cEigenschaftWertName
        FROM twunschlisteposeigenschaft AS v
        LEFT JOIN teigenschaft AS e ON v.kEigenschaft = e.kEigenschaft
        WHERE v.kWunschlistePos = $kWunschlistePos
        ORDER BY e.nSort";
    $result = $GLOBALS['DB']->executeQuery($query, 2);
   if (isset($params['assign']))
   {
      $smarty->assign($params['assign'], $result);
   }
   else
   {
      return $result;
   }
}
$smarty->register_function("uit_wishlistvariations", "uit_wishlistvariations");

Jetzt kann man im Template mit
Code:
{uit_wishlistvariations kWunschlistePos=TODO assign="Variationen"}
sich zu jeder Wunschlistenposition die Eigenschaften holen. Für die Anzeige wie oben gefordert, reicht:

In der jtl_wunschliste(_custom).tpl im div class="desc" (gleiche Stelle wie oben, ca Zeile 80
Code:
<div class="desc">
      <p><a class="konfiglink{$smarty.foreach.wunschlistepos.index}" href="{$CWunschlistePos->Artikel->cURL}">{$CWunschlistePos->cArtikelName}</a></p>
      {*MOD:Variationen anzeigen *}
      {uit_wishlistvariations kWunschlistePos=$CWunschlistePos->kWunschlistePos assign="variations"}
      {if isset($variations) && count($variations) > 0}
          {foreach from=$variations item="Variation"}
             {if $Variation->cTyp == "FREIFELD"}
                  <p><b>{$Variation->cName}: </b>{$Variation->cFreifeldWert}</p>
              {else}
                  <p><b>{$Variation->cName}: </b>{$Variation->cEigenschaftWertName}</p>
             {/if}
          {/foreach}
      {/if}
      {*endmod*}
 

t.oster

Gut bekanntes Mitglied
4. Dezember 2013
196
20
AW: Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

Ich sehe gerade beim Durchlesen des Templates, dass eigentlich die Eigenschaften korrekt geladen sein sollten und angezeigt würden, wenn das der Fall wäre:
In der Originalen jtl_wunschliste.tpl steht:

Code:
                         {foreach name=eigenschaft from=$CWunschlistePos->CWunschlistePosEigenschaft_arr item=CWunschlistePosEigenschaft}
                        {if $CWunschlistePosEigenschaft->cFreifeldWert}
                           <p><b>{$CWunschlistePosEigenschaft->cEigenschaftName}:</b> {$CWunschlistePosEigenschaft->cFreifeldWert}{if $CWunschlistePos->CWunschlistePosEigenschaft_arr|@count > 1 && !$smarty.foreach.eigenschaft.last}</p>{/if}
                        {else}
                           <p><b>{$CWunschlistePosEigenschaft->cEigenschaftName}:</b> {$CWunschlistePosEigenschaft->cEigenschaftWertName}{if $CWunschlistePos->CWunschlistePosEigenschaft_arr|@count > 1 && !$smarty.foreach.eigenschaft.last}</p>{/if}
                        {/if}
                        {/foreach}

Also scheint es definitv ein Bug im Shop zu sein, dass diese Eigenschaften nicht geladen werden.
 

t.oster

Gut bekanntes Mitglied
4. Dezember 2013
196
20
AW: Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

Hier mein Aktueller Stand:
Es ist ein Bug im JTL-Shop, der dafür sorgt, dass das Array "
$CWunschliste->CWunschlistePos_arr[]->CWunschlistePosEigenschaft_arr" nicht gefüllt ist, zumindest nicht immer, also nach re-login usw.

Hier ein kleines Plugin, welches genau das wieder fixt. Am Template muss nichts geändert werden, es sollten alle Variationen direkt in der Wunschliste angezeigt werden:

http://upstart-it.com/uit_fix_wunschliste.zip

 

hk01

Aktives Mitglied
23. Juli 2014
9
0
AW: Einblendung von Variationswerten auf dem Wunschzettel (gleich wie im Warenkorb)

Hallo,
danke für den Vorschlag. Meine Frage ist momentan nicht mehr ganz aktuell, ich werde aber versuchen, es im Auge zu behalten, wenn ich nochmal dran bin. Komme dann ggf. auf Sie zurück, danke :)
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Amazon Lister 2.0 - Code 99016 - Ein Maximum von 1 Vorkommen (oder Vorkommnissen) ist für das Attribut color zulässig Amazon-Lister - Fehler und Bugs 0
Neu Anbindung von JTL an Onlinehandel für GPSR (Produktsicherheit) Schnittstellen Import / Export 3
Neu Importieren von Blöcken in den JTL-Shop OnPage Composer Templates für JTL-Shop 1
Paktisch+ zeigt möglichen versandt von zukünftig erscheinenden Artikeln JTL-Wawi 1.9 4
Neu Update Wawi von 1.0.11 auf 1.9 Installation von JTL-Wawi 7
Neu Hersteller ändert SKU von Kind Artikel (Varianten) | Vater beleibt gleich - wie verfahren bei "gemischtem" Lager alt/neu User helfen Usern - Fragen zu JTL-Wawi 3
Neu Artikelübersicht - Doppelte Anzeige von Ust und Versandinformationen JTL-Shop - Fehler und Bugs 5
Neu Wie kann ich bestimmte Wörter in der Suchfunktion von JTL-Shop ausschließen? Allgemeine Fragen zu JTL-Shop 0
SCX: „Verfügbarer Bestand“ weicht von „Verkaufskanal Menge“ ab - JTL 1.8.12.0 JTL-Wawi 1.8 0
Neu Eingabe von deutscher USt.-ID - weiße Seite JTL-Shop - Fehler und Bugs 1
Neu Vererben der Bildern einer Variation auf alle anderen Variationen, wie beim Vererben von Vater zu Kind-Artikeln, möglich wie? User helfen Usern - Fragen zu JTL-Wawi 0
Neu Umsetzung von JTL Plan & Produce für das Unternehmen Dienstleistung, Jobs und Ähnliches 2
Bestseller verschwinden immer wieder von der Startseite Einrichtung JTL-Shop5 0
Von Workflow lokal gespeicherte Datei direkt wieder löschen lassen JTL-Wawi 1.8 1
Frage zum DATEV Rechnungsservice 2.0 - Vorkontierung und Aufteilung von Buchungen JTL-Wawi 1.9 0
Neu Email Rechnung mit PDF von Ebay blockiert ? eBay-Anbindung - Fehler und Bugs 2
Maximal unzuverlaässiges ermitteln von fba Bedarf über die Umlagerungen in jtl. JTL-Wawi 1.9 0
Neu Sortierung von Kindartikelbildern (Variationen) in Shopify Shopify-Connector 2
Neu Update von 5.1.5 auf 5.3.3 Installation / Updates von JTL-Shop 2
Neu Nach Abbruch von "Auftrag anlegen" wird anderes Programm angezeigt Arbeitsabläufe in JTL-Wawi 2
Neu JTL-POS Datensicherung - Export/Import von Datensätzen Allgemeine Fragen zu JTL-POS 1
Neu Bestimmte Kunden/Kundengruppen von Bewertungsmail ausschließen Betrieb / Pflege von JTL-Shop 3
Neu Verwaltung von priorisierten und von Vorgabeplätzen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Lagerartikel mit Variation, von denen manche kein Lager brauchen JTL-Wawi 1.9 1
Neu Komponente von OPC zentrieren Allgemeine Fragen zu JTL-Shop 2
Neu Amazon Custom Orders mit Bildern von Kunden Amazon-Anbindung - Ideen, Lob und Kritik 0
Neu Export von Kunden, die in der Vergangenheit bereits bestimmte Artikel gekauft haben Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 10
Neu HTTP ERROR 500 beim Aufrufen von https://boni-shop24.de JTL-Shop - Fehler und Bugs 4
Neu Amazon Bestellungen von gestern Abend fehlen Amazon-Anbindung - Fehler und Bugs 2
Neu Nutzung von JTL POS im B2B Bereich mit späterer Zahlung Allgemeine Fragen zu JTL-POS 0
Neu Paket X von Y auf Shippinglabel einfügen - GLS Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 0
Neu Tagesabschluss Beleg von/bis 4 stellig auf Ausdruck, obwohl Nummernfolge 5-stellig (letzte Nummer abgeschnitten) Allgemeine Fragen zu JTL-POS 0
Neu CMD-Line-Version von JTL-Ameise User helfen Usern - Fragen zu JTL-Wawi 3
Neu Sonderpreise von JTL zu Woocommerce WooCommerce-Connector 0
Neu Nach Update von PayPal Checkout wird PayPal Zahlungsart entfernt Plugins für JTL-Shop 4
Neu Canonical-Tag von Kinderartikel Allgemeine Fragen zu JTL-Shop 3
update von 1.3.21.1 auf Version 1.8.12.2 JTL-Wawi 1.8 6
Neu Das Drucken von Versandetiketten dauert lange JTL-ShippingLabels - Fehler und Bugs 3
Versanddienstleister von Track&Trace DHL, GLS, DPD JTL-Wawi 1.8 0
In Diskussion Workflow zum Drucken von Shipping Labels JTL-Workflows - Ideen, Lob und Kritik 3
Neu Probleme beim Update von 5.2.4 auf 5.3.3 Installation / Updates von JTL-Shop 6
Neu Automatischer Abgleich von Artikel Daten Schnittstellen Import / Export 5
Workflow - Vorbestellung ausschließen von Storno JTL-Wawi 1.9 1
Neu Zweisprachiger Druck von Bestellformularen User helfen Usern - Fragen zu JTL-Wawi 2
In Diskussion Kopieren oder Auslösen von Workflows in anderen Bereichen (Von Rechnung nach Kunde) JTL-Workflows - Ideen, Lob und Kritik 2
Neu Anbindung von JTL WaWi an zwei verschiedene Kassensysteme User helfen Usern - Fragen zu JTL-Wawi 8
Neu Warenkorb - löschen von Artikeln Betrieb / Pflege von JTL-Shop 3
Neu Bewertungssterne von Child-Artikeln in Artikellisten Templates für JTL-Shop 0
Neu Mandant von lokal zu online verschieben User helfen Usern - Fragen zu JTL-Wawi 7
Versand von Sperrgut mit JTL-Shipping-Labels, Abmessungen eingeben JTL-ShippingLabels - Ideen, Lob und Kritik 1

Ähnliche Themen