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

John

Sehr aktives Mitglied
3. März 2012
3.901
950
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.901
950
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.901
950
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.901
950
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 Wo kann ich mich über JTL Kundencenter beschweren? 20 Minuten Lang einen Bug im Ticket dokumentiert, und am Ende "ein Fehler ist aufgetreten" Smalltalk 3
Kleiner Bug > Wareneingang > Tastenbeschriftung ändert sich nach einmaligem Klicken JTL-Wawi 1.11 0
BUG in 1.11.4.0 - verpackte Pakete pro Mitarbeiter JTL-Wawi 1.11 1
Externe Belege löschen / VCS Bug JTL-Wawi 1.11 0
Bug in Version 1.11.2 – Alle Drucker-Einstellungen gehen nach Neustart verloren JTL-Wawi 1.11 19
Neu PayPal lädt nicht mehr nach Update auf 5.6 (Child theme Checkout index.tpl Bug) Installation / Updates von JTL-Shop 0
JTL-Wawi startet nach Neustart nicht / hängt auf neu eingerichtetem PC (Remote-Datenbank) JTL-Wawi 1.11 1
Neu JTL-Shop 5.2.3 – Google-Shoppin-Plugin 2.3.0: Mehrere Rückgaberichtlinien (DE + Ausland) bei einem Feed / return_policy_label Plugins für JTL-Shop 0
Neu Auftragsbezogene Pickliste auch im JTL-WMS (nicht nur mobil) nutzen JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
Seit dem Update auf JTL Wawi 1.11.4 funktioniert der Workflow "Datei Schreiben" nicht JTL-Wawi 1.11 1
JTL Wawi 1.11.4 "Dashboard übernehmen" funktioniert nicht JTL-Wawi 1.11 1
Neu JTL Pos - Bon - Artikelname kürzen Allgemeine Fragen zu JTL-POS 0
JTL-Wawi App (1.11.x) – Lizenz angeblich belegt nach Löschen aller App-Registrierungen / kein Reset möglich JTL-Wawi App 2
Smart App Control blockiert start von JTL-Wawi JTL-Wawi 1.11 0
Manuelle Workflows nicht mehr ausführbar (App 1.11.0 JTL 1.11.5) JTL-Wawi App 4
Neu Shopify Geschenkgutscheine > JTL > JERA JTL2BMD Shopify-Connector 0
Neu JTL Wawi auf Windows Server 2025 mit SQL 2025? Installation von JTL-Wawi 6
Erfahrungen zur JTL Wawi 1.11.5 – Tipps, Bugs und Praxisberichte JTL-Wawi 1.11 10
Seit Update auf 1.11.4 Workflow für Kartonauswahl gibt error JTL Das Objekt mit Nullwert muss einen Wert haben. BrowsePk: 152325 WorkflowAktionId: 155 JTL-Wawi 1.11 1
Neu JTL SHOP 5.6 und Konfigurationsartikel Allgemeine Fragen zu JTL-Shop 0
Neu JTL-Wawi 1.11.4 – Vaterartikel lässt sich nach Entfernen eines Kindartikels nicht mehr speichern JTL-Wawi - Fehler und Bugs 3
Neu JTL-Packtisch Sortieren ist Grau Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Neu JTL-Kundencenter 2FA Smalltalk 8
Neu Empfehlung einer Woocommerce & JTL Agentur WooCommerce-Connector 2
Neu JERA kann keine Conrad-Erlöse aus JTL importieren, JTL-SCX importiert keine Conrad-Rechnungen JTL-ShippingLabels - Fehler und Bugs 3
Neu JTL Diag / SQL Mitschnitt lässt sich nicht mehr starten User helfen Usern - Fragen zu JTL-Wawi 6
Neu Neues E-Commerce Business mit JTL Wawi - Jtl Shop - Lexware Office (online) - Fragen Starten mit JTL: Projektabwicklung & Migration 2
Neu JTL auf dem Server duplizieren für Experimente Installation von JTL-Wawi 1
Neu Vorschlag: Inventur direkt im JTL-WMS ermöglichen JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 0
JTL-Ameise - Problem Artikeldaten Import JTL-Wawi 1.11 3
Neu JTL Shopify Connector selektiver Import in JTL Shopify-Connector 2
Angebot auf EBay erhält Netto Preise aus JTL eBay-Anbindung - Fehler und Bugs 2
Neu Bestellung aus JTL-Shop wird nicht in die Wawi übernommen Allgemeine Fragen zu JTL-Shop 1
Neu Update: JTL-Gambio-Connector Gambio-Connector 0
Neu JTL - Cloud-Lösung ? Smalltalk 3
Neu Wie verbanne ich Fremdsprachen-Anfragen aus der JTL-Search? Allgemeine Fragen zu JTL-Shop 0
Neu Export/Import aller Amazon Angebote über die JTL-Ameise JTL-Ameise - Fehler und Bugs 1
Neu Nach Update auf JTL Shop 5.6.1 - Play/Pause Buttons im Layout!? Installation / Updates von JTL-Shop 6
Neu 🚨 Hinweis für JTL-Händler, die Taxdoo nutzen News, Events und Umfragen 1
Neu Amazon VCS - JTL Wawi > 1.10 - Lexware: Suche Best Practice Amazon-Anbindung - Ideen, Lob und Kritik 1
JTL-WAWI teilweise extrem lahm JTL-Wawi 1.10 8
Anfrage zur Einrichtung des Dashboards (Gewinnanzeige) in JTL-Wawi – Remote-Support über AnyDesk JTL-Wawi 1.10 6
Neu Bestehende POS an WAWI anbinden (JTL Administrator) Einrichtung / Updates von JTL-POS 7
JTL Wawi 1.8.11.2 zum Download JTL-Wawi 1.8 1
JTL- Worker Dienst lässt sich nicht installieren über .bat-Datei JTL-Wawi 1.11 1
Neu JTL Wawo Objektverweis wurde nicht auf eine Objektinstanz festgelet JTL-Wawi - Fehler und Bugs 0
Neu JTL Shop Mailversand geht nicht mehr - Address blicked Allgemeine Fragen zu JTL-Shop 5
JTL-WaWi Konfigurator Bestandteile in WMS zusammenfassen JTL-Wawi 1.11 3
Störung der Domain Infrastruktur JTL-Software Störungsmeldungen 0
Neu Woocommerce + JTL Connector + Litespeed Cache WooCommerce-Connector 0

Ähnliche Themen