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
210
24
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
210
24
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
210
24
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
210
24
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
210
24
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
Die Suche von Stücklistenartikeln/Bundles funktioniert nicht Allgemeine Fragen zu JTL-Shop 0
Neu Update von 1.8.12.4 auf 2.0.5 - Kostenfreie Version - Registrierung erforderlich? User helfen Usern - Fragen zu JTL-Wawi 1
Wie übernehme ich Artikelnamen von JTL in den neuen Kaufland Niederlande-Verkaufskanal? JTL-Wawi 1.11 1
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Installieren von Plugins schlägt fehl "Unable to authenticate using a password." Plugins für JTL-Shop 3
Neu "alte" Bankverbindung beim Duplizieren von älteren Aufträgen User helfen Usern - Fragen zu JTL-Wawi 3
nach Update von 5.3 auf 5.7 neue Position im Warenkorb "Gebühr" die auch in den Auftrag übernommen werden Einrichtung JTL-Shop5 2
Neu E-Rechnungen werden von DATEV nicht akzeptiert JTL-Wawi 2.0 1
In Diskussion Tool für Abrechnung von Fulfillment Dienstleistungen Arbeitsabläufe im Fulfillment Network 0
ändern von Servernamen nach Neuinstallation von SQL und Verbindung mit neuem Server in der Wawi JTL-Wawi 2.0 2
Neu JTL-Shop - Wechsel von Test zum Livebetrieb - was beachten ? Installation / Updates von JTL-Shop 2
Neu Unterschiedliche Abnahmeintervalle von Variationskombinationen in der Warenkorbmatrix Templates für JTL-Shop 0
Angebliche externe Aufträge "für Rechnungserstellung freigeben" und Rechnungen erstellen. Gibt es dazu eine akzeptable Erklärung von JTL? JTL-Wawi 1.11 1
Lohnt sich das Update von 1.11.6 auf 2.0.4 aktuell? JTL-Wawi 2.0 2
Neu Abrechnung / Auslieferung von Aufträgen mit Gutschriftverfahren Arbeitsabläufe in JTL-Wawi 3
Erfahrungswerte Update von 1.8.12.2 auf 1.11.10 JTL-Wawi 1.11 4
Import von Aufträgen via tXMLBestellImport Tabelle seit Update sehr träge/langsam JTL-Wawi 1.11 3
Neu Update von Modul DHL 3.0 aud 4.0 - Versandlabels lassen sich nicht erstellen JTL-ShippingLabels - Fehler und Bugs 17
Neu Umzug von sehr alter JTL Wawi Version auf neuen PC User helfen Usern - Fragen zu JTL-Wawi 3
Update von 1.10.15 auf 1.11.10 JTL-Wawi 1.11 11
Neu Custom Checkout - Conversion optimiert mit Speicherung von Standard-Versandart und Zahlungsart am Kunden JTL-Shop - Ideen, Lob und Kritik 1
Neu ❓JTL Wawi Update von 1.8 auf ??? User helfen Usern - Fragen zu JTL-Wawi 1
In Diskussion Doppelte Aufträge von Kunden filtern bzw. markieren JTL-Workflows - Ideen, Lob und Kritik 5
Neu Probleme beim Erstellen von Artikeln aus Angeboten von eBay User helfen Usern - Fragen zu JTL-Wawi 1
Update von 1.10.10.3 auf aktuellere Versionen JTL-Wawi 1.10 0
Fehler bei Bearbeitung von Attributen via HTML-Editor JTL-Wawi 2.0 3
Neu Versandart von Shopify zu JTL Wawi & Sendungsnummern von Wawi zu Shopify!? Shopify-Connector 0
Neu Update von 1.8.12.4 auf 1.11 User helfen Usern - Fragen zu JTL-Wawi 0
Worker bleibt beim empfangen/senden von Daten hängen JTL-Wawi 2.0 8
Absturz bei Hinzufügen von Artikelbildern JTL-Wawi 2.0 3
Update auf Shop 5.5.0 von 5.4.1 ist der Shop nicht mehr erreichbar Upgrade JTL-Shop4 auf JTL-Shop5 4
Neu Lieferadresse in PayPal-Transaktion weicht von der in der Wawi ab Plugins für JTL-Shop 0
Neu Streichpreise oder Rabatte für Staffelpreise von einem Artikel einrichten? Wie am Besten? JTL-Wawi 1.6 0
Neu Fehler beim Update der Datenbank von 1.11.7 auf 2.0.1 JTL-Wawi - Fehler und Bugs 7
Direktupdate von JTL Wawi 1.10.11.0 auf 2.0 möglich? JTL-Wawi 2.0 6
Neu [Tool] FloTax — eBay + Billbee → DATEV/Lexoffice | §25a | OSS | Reverse Charge | von JTL-Partner Dienstleistung, Jobs und Ähnliches 0

Ähnliche Themen