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

John

Sehr aktives Mitglied
3. März 2012
4.138
1.055
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
4.138
1.055
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
4.138
1.055
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
4.138
1.055
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 Bug? Führende Nullen bei Sendungsnummern verschwinden in JTL-Wawi 2.0.3 JTL-ShippingLabels - Fehler und Bugs 1
Neu Verkaufskanal Sichtbarkeit Zuweisung Artikel in Shopware gelöscht - Connector Bug? Shopware-Connector 1
2.0.1 BUG Versandaten Exportvorlagen nicht mehr bearbeitbar - Lizenzbug JTL-Wawi 2.0 0
2.0.1 BUG Wawi ignoriert Sonderpreise JTL-Wawi 2.0 0
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 1
Neu JTL-WMS und JTL-POS... Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Fehlermeldung beim Einlesen der Buchungen in JTL Fibu JTL-Wawi 2.0 0
Neu Shop 5.7.2 - JTL PayPal Checkout legt alles lahm JTL-Shop - Fehler und Bugs 4
JTL-Ameise 2.04 - Export Rechnungen csv - unvollständig JTL-Wawi 2.0 12
Neu Belege aus JTL Wawi zu Lexoffice Schnittstellen Import / Export 5
Neu Varianten die nicht online in JTL geschaltet sind werden trotzdem zu Shopify geladen Shopify-Connector 2
Neu Gesucht: JTL-Systempartner/Freelancer mit Erfahrung in Personalisierungs-/Gravur-Fulfillment Dienstleistung, Jobs und Ähnliches 3
Neu JTL Stammtisch Stuttgart Messen, Stammtische und interessante Events 0
Neu Copy/Paste Abstürze seit JTL-Wawi 2.0.5 User helfen Usern - Fragen zu JTL-Wawi 4
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1
JTL Update auf 1.9 , danach Import Kundenspezifrische Preise velerhaft JTL-Wawi 1.9 0
Wie übernehme ich Artikelnamen von JTL in den neuen Kaufland Niederlande-Verkaufskanal? JTL-Wawi 1.11 1
Neu Wie stelle ich Retouren in JTL für DPD ein? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu JTL Wawi 1.11.11 - Zahlungsabgleich bei FYRST Bank verlangt immer Passwort User helfen Usern - Fragen zu JTL-Wawi 0
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 Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu Welche JTL Shop Plugins oder kleinen Hilfstools würden euch im Alltag wirklich helfen? Plugins für JTL-Shop 0
Neu JTL ShippingLabels - Meldungen JTL-ShippingLabels - Fehler und Bugs 7
Neu Beta-Tester gesucht: Produktdaten aus Artikelfotos schneller für JTL/CSV vorbereiten Dienstleistung, Jobs und Ähnliches 0
Neu oAuth Credentials Login mit JTL .. WO? User helfen Usern 1
Neu Installationsdatei für JTL‑Wawi 1.9.6.5 Installation von JTL-Wawi 2
Neu kostenlos: DHL Sendungsverfolgung für JTL-Wawi – Web-Dashboard mit Frühwarnsystem Schnittstellen Import / Export 0
Neu JTL Wawi 2.0 oder höher WooCommerce-Connector 0
Changelog jtl Wawi 2.0.5 JTL-Wawi 2.0 10
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
JTL 5.7.1 Widerrufsformular massiver SPAM Einrichtung JTL-Shop5 3
JTL Wawi 1.11.xx langsam unbenutzbar! JTL-Wawi 1.11 4
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1
Neu Widerrufsbutton für JTL-Shop 4 Allgemeine Fragen zu JTL-Shop 17
Neu Rabatte aus dem JTL-Shop werden in der Wawi nur als Netto-Preis übernommen, Rabatt % gehen verloren Onlineshop-Anbindung 0
JTL Anmeldung letzter Benutzer JTL-Wawi 1.11 3
Test-Kunden als solche in JTL markieren, um die Auswertungen sauber zu halten? JTL-Wawi 1.11 1
Neu Ab Wawi 1.10 - JTL.Wawi.Pos.exe direkt ohne JTL-Administrator starten? Allgemeine Fragen zu JTL-POS 2
Neu JTL-Shop - Wechsel von Test zum Livebetrieb - was beachten ? Installation / Updates von JTL-Shop 2
JTL APP - Fehlermeldung nach Update auf Wawi 1.11. JTL-Wawi App 6
Eigener Drittshop-Connector (jtl/connector 5.3): valide Variationskombinationen werden mit „besitzt keine Variationen" nicht gesendet JTL-Wawi 1.11 1
JTL Wawi 1.11. - Fenstergröße - Artikel auf Einkaufsliste setzen JTL-Wawi 1.11 13
Neu Problem mit dem JTL-Connector – Invalid Shopify connection credentials. Shopify-Connector 3
Neu JTL Artikelanlage mit KI beschleunigen User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Wawi Shopabgleich per E-Mail überwachen (Warnungen & Fehler) Onlineshop-Anbindung 1
Neu Helfen Lösungen wie Unicorn wirklich, um die teuren Preise bei JTL zu vermeiden? Amazon-Anbindung - Ideen, Lob und Kritik 1
Neu Meta Shop seit September 2025: JTL-Lösung für neue Checkout-URL gesucht Allgemeine Fragen zu JTL-Shop 0
DPD Cloud Labeldruck auf Zebra LP 2844-Z seit Update auf JTL-Wawi 1.11.x fehlerhaft JTL-Wawi 1.11 3
JTL nach Update auf 2.0.3 im Bereich „Kunden“ extrem langsam JTL-Wawi 2.0 1
Neu DHL 4.0 mit JTL-ShippingLabels funktioniert nicht JTL-ShippingLabels - Fehler und Bugs 2

Ähnliche Themen