Bug in class.JTL-Shop.Artikel.php verhindert Anzeigen von Varkombi Vorschaubildern

John

Sehr aktives Mitglied
3. März 2012
3.840
913
Berlin
Das Symptom
Bei mir werden immer wieder sporadisch Vorschaubilder in der Listenansicht und auch im Artikel selbst von Variationskombinations-Kindern nicht angezeigt. Sie erscheinen nicht als Vorschaubilder. Das Ganze folgte keinem erkennbaren Schema.

Der Bug
In der Datei \classes\class.JTL- Shop.Artikel.php in der Funktion function holeVariationKombiKinder($kKundengruppe, $kSprache) werden die unter anderem die Vorschaubilder der Kinderartikel geholt. Dies geschieht in folgender Schleife

Code:
               $cBildGroesse_arr = array(); // Nur Bilder die max. 1x vorhanden sind
                $nKombiVorschauAnzahl = count($oVariationKombiVorschau_arr);
                foreach($oVariationKombiVorschau_arr as $i => $oVariationKombiVorschau)
                {
                    /*
                    unset($oArtikelTMP);
                    unset($oArtikelOptionenTMP);
                    $oArtikelTMP = new Artikel();
                    $oArtikelTMP->fuelleArtikel($oVariationKombiVorschau->kArtikel, $oArtikelOptionenTMP);
                    */

                    // Kostet zuviel Performence, dadurch koennten aber doppelte Bilder eingefuegt werden
                    /*
                    if($nKombiVorschauAnzahl <= 50)
                    {
                    */
                        if(in_array(@filesize(PFAD_ROOT . PFAD_PRODUKTBILDER_MINI . $oVariationKombiVorschau->cPfad), $cBildGroesse_arr))
                            {
                            unset($this->oVariationKombiVorschau_arr[$i]);
                            }                           
                        else
                        {
                            $this->oVariationKombiVorschau_arr[$i] = new stdClass();
                            $this->oVariationKombiVorschau_arr[$i]->cURL = URL_SHOP . "/navi.php?a=" . $this->kArtikel . "&amp;a2=" . $oVariationKombiVorschau->kArtikel;
                            $this->oVariationKombiVorschau_arr[$i]->cName = $oVariationKombiVorschau->cName;
                            $this->oVariationKombiVorschau_arr[$i]->cBildMini = PFAD_PRODUKTBILDER_MINI . $oVariationKombiVorschau->cPfad;
                            $this->oVariationKombiVorschau_arr[$i]->cBildKlein =  PFAD_PRODUKTBILDER_KLEIN . $oVariationKombiVorschau->cPfad;
                            $this->oVariationKombiVorschau_arr[$i]->cBildNormal = PFAD_PRODUKTBILDER_NORMAL . $oVariationKombiVorschau->cPfad;
                            $this->oVariationKombiVorschau_arr[$i]->cBildGross = PFAD_PRODUKTBILDER_GROSS . $oVariationKombiVorschau->cPfad;
                            $cBildGroesse_arr[] = @filesize(PFAD_ROOT . PFAD_PRODUKTBILDER_MINI . $oVariationKombiVorschau->cPfad);
                        }

                    if(count($this->oVariationKombiVorschau_arr) == $nLimit)
                        break;
                }
            }
        }

1. Jemand hatte die Idee, nur Bilder von Kinderartikeln sichtbar zu machen, sofern diese Bilder nur EINMAL auftauchen. D.h. jeder Kinderartikel, der das gleiche Bild1 gesetzt hat wie ein bereits vorher durchlaufener Artikel, wird nicht angezeigt. Ich halte die Idee für ausgesprochen schlecht. Wieso soll ein gleiches Bild nicht angezeigt werden? Man nimmt dem Kunden so die Möglichkeit, den Kinderartikel per Klick auszuwählen. Ein doppelt angezeigtes Bild signalisiert auch dem Shopbetreiber, daß er hier vielleicht mal handeln sollte, während ein nicht angezeigtes Bild dieses Problem unter den Tisch kehrt.

2. Aktuell werden die Mini Bilder verglichen und zwar auf Basis der Dateigröße. Wurde eine Dateigröße schon einmal bearbeitet, werden weitere Bilder mit gleicher Größe ignoriert. Nun sind die Mini-Bider ab sehr, sehr klein. Nur 1-2kB. Die Wahrscheinlichkeit, zwei unterschiedliche Bilder zu haben, die aber gleich groß sind, ist gar nicht mal so gering. Und tatsächlich ist genau HIER das Problem für nicht angezeigte Variationskombinations-Bilder bei mir. Bereits bei einem Artikel mit nur 12 Variationen habe ich Bilder identischer Größe aber mit unterschiedlichem Inhalt.

Workaround
1. Ich halte die Idee, doppelte Bilder auszublenden für schlecht und würde diese Funktion komplett rausnehmen.

2. Wenn die Funktion drin bleiben soll, MUSS der Vergleich der Dateigröße auf einem größeren Bild gemacht werden, da hier die Wahrscheinlichkeit, nicht identische Bilder anhand der Größe falsch als identisch zu erkennen geringer ist. Es sollte mindestens PFAD_PRODUKTBILDER_NORMAL als Basis genommen werden.

Die Sektion muß somit lauten:
Code:
                $cBildGroesse_arr = array(); // Nur Bilder die max. 1x vorhanden sind
                $nKombiVorschauAnzahl = count($oVariationKombiVorschau_arr);
                foreach($oVariationKombiVorschau_arr as $i => $oVariationKombiVorschau)
                {
                    /*
                    unset($oArtikelTMP);
                    unset($oArtikelOptionenTMP);
                    $oArtikelTMP = new Artikel();
                    $oArtikelTMP->fuelleArtikel($oVariationKombiVorschau->kArtikel, $oArtikelOptionenTMP);
                    */

                    // Kostet zuviel Performence, dadurch koennten aber doppelte Bilder eingefuegt werden
                    /*
                    if($nKombiVorschauAnzahl <= 50)
                    {
                    */
                        if(in_array(@filesize(PFAD_ROOT . PFAD_PRODUKTBILDER_NORMAL . $oVariationKombiVorschau->cPfad), $cBildGroesse_arr))
                            {
                            unset($this->oVariationKombiVorschau_arr[$i]);
                            }
                        else
                        {
                            $this->oVariationKombiVorschau_arr[$i] = new stdClass();
                            $this->oVariationKombiVorschau_arr[$i]->cURL = URL_SHOP . "/navi.php?a=" . $this->kArtikel . "&amp;a2=" . $oVariationKombiVorschau->kArtikel;
                            $this->oVariationKombiVorschau_arr[$i]->cName = $oVariationKombiVorschau->cName;
                            $this->oVariationKombiVorschau_arr[$i]->cBildMini = PFAD_PRODUKTBILDER_MINI . $oVariationKombiVorschau->cPfad;
                            $this->oVariationKombiVorschau_arr[$i]->cBildKlein =  PFAD_PRODUKTBILDER_KLEIN . $oVariationKombiVorschau->cPfad;
                            $this->oVariationKombiVorschau_arr[$i]->cBildNormal = PFAD_PRODUKTBILDER_NORMAL . $oVariationKombiVorschau->cPfad;
                            $this->oVariationKombiVorschau_arr[$i]->cBildGross = PFAD_PRODUKTBILDER_GROSS . $oVariationKombiVorschau->cPfad;
                            $cBildGroesse_arr[] = @filesize(PFAD_ROOT . PFAD_PRODUKTBILDER_NORMAL . $oVariationKombiVorschau->cPfad);
                        }

                    if(count($this->oVariationKombiVorschau_arr) == $nLimit)
                        break;
                }

Dieser Bug dürfte bei eltlichen Usern für sporadisches Fehlen von Vorschaubildern verantwortlich sein. Das Thema gabs hier im Forum ja schon öfters!
 

John

Sehr aktives Mitglied
3. März 2012
3.840
913
Berlin
AW: Bug in class.JTL-Shop.Artikel.php verhindert Anzeigen von Varkombi Vorschaubilder

Das habe ich auch nicht sage wollen.

Nichts desto trotz habe ich hier mehrere Artikel, bei denen Mini-Bilder bei gleicher Größe unterschiedlichen Inhalt haben und damit versagt der Code.

Ich vermute mal, daß ich nicht der Einzige mit diesem Problem bin. Was spricht gegen einen Vergleich auf Basis von größeren Bildern?
 

John

Sehr aktives Mitglied
3. März 2012
3.840
913
Berlin
AW: Bug in class.JTL-Shop.Artikel.php verhindert Anzeigen von Varkombi Vorschaubilder

Kann jemand von JTL diesen Bug bitte fixen, indem der Vergleich wie von mir vorgeschlagen auf
filesize(PFAD_ROOT . PFAD_PRODUKTBILDER_NORMAL

umgestellt wird?

Ich habe mit selbst mit einem der letzten 3.19bx Builds meinen eigenen Fix überschrieben und hatte das Problem wieder, bis mich ein Kunde darauf aufmerksam gemacht hat.

Der Fall, daß die kleinen Minibilder exakt gleiche Größe haben, kommt in der Praxis bei vielen Variationen, die sich z.B. nur in der Farbe unterscheiden WIRKLICH oft vor!

Danke!
 

John

Sehr aktives Mitglied
3. März 2012
3.840
913
Berlin
AW: Bug in class.JTL-Shop.Artikel.php verhindert Anzeigen von Varkombi Vorschaubilder

Der von mir gepostete Bugfix wurde auch in Shop3.20 nicht eingepflegt. Es wird immer noch auf

Code:
in_array(@filesize(PFAD_ROOT . PFAD_PRODUKTBILDER_MINI . $oVariationKombiVorschau->cPfad), $cBildGroesse_arr)

geprüft und damit Variationskombinationen, die ein gleich großes Mini Bild haben nicht angezeigt. Ich habe das Problem bei mir im Shop auf Anhieb bei mehreren Artikeln, bei denen ich nur die Farbe per Photoshop geändert habe.

Ich mache dann nun mal ein Ticket auf...
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu Lagerplätze und Bestände lassen sich teils nicht im WMS Lager importieren? Evtl. BUG --> JTL 1.10.10.4? User helfen Usern - Fragen zu JTL-Wawi 1
Neu BUG! eBay Lieferadresse wird als Rechnungsadresse übertragen eBay-Anbindung - Fehler und Bugs 8
[Bug] DATEV Rechnungsdatenservice 2.0 – Fehlermeldung „USt-Id Nr. ist nicht geprüft oder ungültig“, obwohl Feld leer ist (Wawi 1.10.13.2 Beta) JTL-Wawi 1.10 2
Neu Aktuell hat PayPal Probleme BUG Korrektur Buchungen Allgemeine Fragen zu JTL-Shop 1
Neu Bug: Korrekturbuchung JTL-Wawi - Fehler und Bugs 0
Neu Ist das ein BUG JTL-Ameise - Fehler und Bugs 1
Neu Bug - Grundpreis bei Preis mit Rabatt ist falsch JTL-Shop - Fehler und Bugs 0
Neu EazyAuction / eBay: Falsche Telefonnummern & Alias-Mails im Auftrag – Bug oder Feature? JTL-ShippingLabels - Fehler und Bugs 0
Neu Welche URLs/Ports werden für den JTL Worker benötigt? User helfen Usern - Fragen zu JTL-Wawi 5
Neu Artikelseiten 500 HTTP Fehler PayPal Plugin 2.1.0 JTL Shop 5.4.0 Plugins für JTL-Shop 4
JTL-Workflows >> Aufträge >> Ausgeliefert >> Abrechnungsposition für Versandkosten hinzufügen JTL-Wawi 1.10 3
Neu Rechnungsnummer an JTL-Shop übertragen Technische Fragen zu Plugins und Templates 0
Neu JTL Unicorn Otto Coupons User helfen Usern 0
Neu JTL POS: wie Position Übersicht neben dem Eingabebereich? User helfen Usern - Fragen zu JTL-Wawi 0
Beantwortet Einen 2. JTL-Shop5 mit dem gleichen PayPal-Account verbinden Einrichtung JTL-Shop5 7
Neu JTL mit Shopify für Etsy anstatt JTL mit Unicorn2 - hat das jemand gemacht? Anbindung, bestehende Artikel mappen? Multishop? Shopify-Connector 2
Neu Shopify Basic mit JTL? Wie einrichten? Ist der JTL Guide noch aktuelle wegen PII Einschränkung? Shopify-Connector 2
Neu Kundenübernahme Shopware zu JTL Shop - Länderzuweisung User helfen Usern - Fragen zu JTL-Wawi 1
Neu Sunmi OS (V3/T3) – Installation von JTL-POS ohne Play Store Allgemeine Fragen zu JTL-POS 5
Neu Gibt es eine Möglichkeit Copilot Studio mit der JTL-Datenbank zu verbinden? User helfen Usern - Fragen zu JTL-Wawi 0
Neu B2B Preis für JTL Wawi -> Amazon aktivieren, nur wie? User helfen Usern - Fragen zu JTL-Wawi 4
Kunden im JTL Shop sichtbar ? Einrichtung JTL-Shop5 7
Neu Warenein- und -ausgang JTL Packtisch von Kundenwaren Arbeitsabläufe in JTL-Wawi 0
Neu Wann ist JTL WaWi / Connector mit Shopware 6.7 kompatibel? Shopware-Connector 2
Neu FBA Lagerbestand wird nicht in JTL angezeigt Amazon-Anbindung - Fehler und Bugs 2
Defekt-Artikel nach Retoure über WMS nicht mehr in JTL-Wawi sichtbar JTL-Wawi 1.10 2
Neu Rhewa 32 Waage mit JTL-WMS / JTL-Packtisch+ verbinden JTL-WMS / JTL-Packtisch+ - Fehler und Bugs 1
Neu Deprecated: JTL\Catalog\Hersteller: getter should be used to get kHersteller in /www/htdocs/w00dcf50/jtlshop/includes/src/MagicCompatibilityTrait.php Installation / Updates von JTL-Shop 9
In Diskussion Hilfe bei Verbindung von EC-Terminal (CCV A920) mit JTL-POS Allgemeine Fragen zu JTL-POS 3
Neu JTL Wawi braucht viel RAM und CPU wenn der Prozess lange läuft, ohne dass gearbeitet wird JTL-Wawi - Fehler und Bugs 2
JTL-Wawi 1.5.9.0 JTL-Wawi 1.6 2
Neu JTL Shop 5: ein Kundenkonto in der WAWI mit mehreren Konten im Webshop Allgemeine Fragen zu JTL-Shop 7
Neu Abgleich mit JTL-Wawi funktioniert nicht Allgemeine Fragen zu JTL-POS 0
JTL Ameise - Buchhaltungsdaten exportieren JTL-Wawi 1.9 1
Neu Server Error 500 nach dem Installieren von JTL Theme Editor Plugins für JTL-Shop 3
Neu JTL Pos Bonnummer nicht fortlaufend nach Anpassung des Bon-Nummernkreises JTL-POS - Fehler und Bugs 0
Neu Image POST for Article JTL FFN API Technische Fragen zu den JTL-Connectoren 0
Neu JTL auf LINUX Rechner User helfen Usern - Fragen zu JTL-Wawi 5
Neu Welcher Zahlungsanbieter mit JTL-POS Allgemeine Fragen zu JTL-POS 0
Neu JTL Connector Allgemeines zu den JTL-Connectoren 1
Neu Hilfe bei Anpassung der JTL-Rechnung (v1.9.4.6) – EK pro Stück × Menge als Summe je Position + Privateinlage-Hinweis Dienstleistung, Jobs und Ähnliches 1
Neu JTL WaWi Verfügbarkeits-Liste Arbeitsabläufe in JTL-Wawi 2
Kabelkonfektionierung mit JTL Konfigurator JTL-Wawi 1.10 0
JTL WAWI GUI Update von 1.9.8.0 auf 1.10.13.1 nicht möglich WAWI reagiert nicht JTL-Wawi 1.10 3
Klarna - Zahlung wird in JTL nicht automatisch gesetzt / "zu erfassen" im Klarna-Dashboard JTL-Wawi 1.10 3
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0
Webinar: Mein Start mit JTL | Produkte, Funktionen, Einsatzmöglichkeiten Messen, Stammtische und interessante Events 0

Ähnliche Themen