Neu Bilder vom Parent beim Child

  • Temporäre Senkung der Mehrwertsteuer Hier findet ihr gesammelt alle Informationen, Videos und Fragen inkl. Antworten: https://forum.jtl-software.de/threads/mehrwertsteuer-senkung-vom-01-07-31-12-2020-offizieller-diskussionthread-video.129542/

3jojojo

Gut bekanntes Mitglied
20. Januar 2016
655
18
Guten Morgen
Hat jemand eine gute Idee wie man die Bilder eines Vaterartikels auch bei einem Child Artikel anzeigen kann?

Hintergrund ist das ich sehr viele Artikel habe wo es unterschiedliche Farben gibt. Der Vaterartikel hat dann dazu ein Emotion Bild (zum Beispiel wie die Jeans jemand trägt) diese würde ich nun gern zusätzlich bei den Kinderartikeln anzeigen.

Mir fehlt aber der Ansatz. Als Artikelbilder direkt angeben will ich die Bilder nicht.
 

david

Administrator
Mitarbeiter
16. Juli 2010
2.262
125
Denke du kommst um eine eigene Plugin-Lösung nicht herum, sofern du die Bilder nicht direkt in der Wawi vererben möchtest.
 

3jojojo

Gut bekanntes Mitglied
20. Januar 2016
655
18
keiner eine einfach quick and dirty idee für die template datei.

Die Child Artikel kennen doch auch die Vater_Funktionsattribute also Artikel->VaterFunktionsAttribute meine ich. Kommt man so nicht auch an das Bild?
 

david

Administrator
Mitarbeiter
16. Juli 2010
2.262
125
Mehr als {$Artikel->kVaterArtikel} und den vererbten Eigenschaften hast du am Kindartikel nicht, daher nicht allein über Smarty tpl lösbar.
 

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.234
281
Halle
Hallo,
eine Lösung per Plugin ist sicherlich der korrekteste Weg. Unser Shop kann aber eine ganze Menge und somit gibt es auch eine Lösung die komplett auf Javascript basiert und damit einfach insTemplate integriert werden kann.
Der Ansatz dabei ist, den Artikelcontent des Vaterartikels beim Child per AJAX nachzuladen, dort die Bildinformationen zu extrahieren und diese in die Gallery des aktuellen Child-Artikels einzufügen. Das klingt kompliziert, sind aber nur ein paar Zeilen Code. Das einzige Problem ist hier der Overhead, der durch das Nachladen der Vater-Artikeldaten entsteht.
In der custom.js des eigenen Child-Templates könnte man das so realisieren:
JavaScript:
(function($) {
    function loadParentImage2Gallery() {
        // Parameter (Parent- und Child-ID) aus dem Produktformular holen
        var io   = $.evo.io();
        var args = io.getFormValues('buy_form');

        if (args.a && args.VariKindArtikel && !document.parentImagePushed) {
            // Flag für das Laden des Parent-Image setzen...
            document.parentImagePushed = true;
            // ...und Parent-Content per AJAX holen
            var url  = '/navi.php?a=' + args.a;
            $.ajax(url, {data: 'isAjax'}).done(function(html) {
                // Bilddaten aus dem Content extrahieren...
                var $images = $(html).find('#gallery a[itemprop="image"] img');

                if ($images.length) {
                    // ...und an die Einträge der aktuellen Gallery anhängen
                    var objImage = $images.data('list');
                    var imgItems = $.evo.article().gallery.getStack();
                    imgItems.push(objImage);
                    $.evo.article().gallery.setItems(imgItems);
                    $.evo.article().gallery.render();
                }
            })
        }
    }

    function initParentImage2Gallery() {
        // Wenn eine neue Variante gewählt wird, dann muss das Flag für das Parent-Image zurückgesetzt werden
        $('.variations .variation').click(function() {
            document.parentImagePushed = false;
        });
        $('.variations .form-control').change(function() {
            document.parentImagePushed = false;
        });
    }

    $(document).ready(function() {
        // Einfügen des Parent-Image beim direkten Aufruf des Child-Artikels...
        initParentImage2Gallery();
        loadParentImage2Gallery();
    });

    $(document).on('evo:contentLoaded', function() {
        // ...und auch beim Nachladen per AJAX
        initParentImage2Gallery();
        loadParentImage2Gallery();
    });
})(jQuery);
 

css-umsetzung

Offizieller Servicepartner
SPBanner
6. Juli 2011
4.716
789
Berlin
Aber wie er schon sagt, über ein Plugin wäre es besser, du hast ja schon von mir das Plugin für die Templateunterstützung, da könnte man das gut hinzufügen denke ich.
 

m.preisner

Aktives Mitglied
13. Februar 2017
23
1
Was ich mich hierbei frage: Wieso muss denn zwingend, beim Wählen einer Variation, das Child geladen werden? Wäre eine Übergabe der Variable ( ID Child o.ä. ) nicht ausreichend um es in den Warenkorb zu legen?

Vorallem weil ich auch die Artikelbeschreibungen für die einzelnen Varkombis anlegen, speichern und laden muss, obwohl die, bei mir, immer identisch sind.

Gibts hierzu eine Lösung?
 
Zuletzt bearbeitet:

laweb

Aktives Mitglied
10. Februar 2017
6
0
@FPrüfer
Vielen Dank für den Code. Funktioniert super. Das einizige Problem ist, dass bei Child Articles die kein Bild haben noch diese Platzhalterbild (Kamera auf grauem Background) haben. Kennst du eine Lösung um das auszublenden? Denn Leider wird dieser Platzhalter dann auch im Warenkorb und ähnlichen Sachen verwendet. Danke!

Marco
 

Anhänge

FPrüfer

Moderator
Mitarbeiter
19. Februar 2016
1.234
281
Halle
Da müsste man jetzt aus objImage in einer Schleife noch die Elemente rausfiltern, die als src einen Verweis auf das Platzhalterbiild (/gfx/keinBild.gif) haben.
Die Anzeige des Platzhalters im Warenkorb wirst du damit aber nicht verhindern, da bei Variationskombinationen ja jedes Child ein eigener Artikel ist.
 

snPerranporth

Aktives Mitglied
6. März 2017
24
23
Hallo, auch ich wünsche mir, dass die Bilder des Vaterartikels beim Child nachgeladen werden.

Ich habe den obigen Code in die Custom des Child Templates per Copy Paste eingefügt. Aber leider tut sich bei mir nichts. Was mache ich falsch?
 
Zuletzt bearbeitet:

snPerranporth

Aktives Mitglied
6. März 2017
24
23
Hallo, Danke, dass du dich mit meiner Rückfrage beschäftigst.

Die custom wird geladen. Die Ausgabe lautet wie folgt:
JavaScript:
(function($) {
    function loadParentImage2Gallery() {
        var io = $.evo.io();
        var args = io.getFormValues('buy_form');
        if (args.a && args.VariKindArtikel && !document.parentImagePushed) {
            document.parentImagePushed = true;
            var url = '/navi.php?a=' + args.a;
            $.ajax(url, {
                data: 'isAjax'
            }).done(function(html) {
                var $images = $(html).find('#gallery a[itemprop="image"] img');
                if ($images.length) {
                    var objImage = $images.data('list');
                    var imgItems = $.evo.article().gallery.getStack();
                    imgItems.push(objImage);
                    $.evo.article().gallery.setItems(imgItems);
                    $.evo.article().gallery.render();
                }
            })
        }
    }
    function initParentImage2Gallery() {
        $('.variations .variation').click(function() {
            document.parentImagePushed = false;
        });
        $('.variations .form-control').change(function() {
            document.parentImagePushed = false;
        });
    }
    $(document).ready(function() {
        console.log("ParentImages2Gallery wird ausgefuehrt");
        initParentImage2Gallery();
        loadParentImage2Gallery();
    });
    $(document).on('evo:contentLoaded', function() {
        initParentImage2Gallery();
        loadParentImage2Gallery();
    });
}
)(jQuery);
Oder gilt der Code nur für das Hauptbild? Das wird angezeigt, ist aber auch im Kind hinterlegt.
 

snPerranporth

Aktives Mitglied
6. März 2017
24
23
Weil ich mich hier nicht blamieren wollte, habe ich mein Anliegen per PN geklärt.

Da ich ein Template nutze, musste der Code leicht angepasst werden. Mit folgender Änderung klappt der Code von 2017 (!) dann aber auch bei mir. :)
Zitat von FPrüfer:
PHP:
PHP:
...
// Bilddaten aus dem Content extrahieren...
var $images = $(html).find('#gallery a img');
...

Und für diejenigen, die wie ich dem Child lediglich ein Hauptbild hinterlegen, welches mit dem Parent identisch ist und daher nicht nachgeladen werden soll, der ändere wie folgt:

Zitat von FPrüfer:
Wenn das "Hauptbild" einfach nur das erste Bild ist, dann sollte es reichen, die Schleife:
JavaScript:
for (var i = 0; i < $images.length; i++) {
    var objImage = $($images[i]).data('list');
    imgItems.push(objImage);
}
statt von 0 einfach von 1 laufen zu lassen. Dann werden immer nur alle Bilder ab dem Zweiten übernommen


So kann man das ganze also noch etwas anpassen. Vielleicht hilft es jemandem.
Vielen lieben Dank an FPrüfer für die tolle Hilfe und die Geduld mit mir als Nicht-Programmierer! ;)
 
Ähnliche Themen Forum Antworten Erstelldatum des Themas
Neu Bilder steuern die zu google exportiert werrden Allgemeine Fragen zu JTL-Shop 0
Gelöst Kein Export der Artikel ohne Bilder möglich JTL-Ameise - Fehler und Bugs 2
Neu Bilder von Variations-Werten in eBay Designvorlage ausgeben eBay-Designvorlagen - Ideen, Lob und Kritik 2
Neu Globale Bilder (z.B. Testurteile/Siegel) bei ausgewählten Artikeln hinterlegen User helfen Usern - Fragen zu JTL-Wawi 2
Neu Bilder von Variationen / Var. Kombis in Shop und Amazon. Wie richtig einstellen? User helfen Usern - Fragen zu JTL-Wawi 16
Neu Neue Bilder werden seit 1.5.31.0 nicht mehr (immer) gedruckt Druck-/ E-Mail-/ Exportvorlagen in JTL-Wawi 3
Neu Bilder kommen nicht in meinen Woocommerce Shop rein WooCommerce-Connector 1
Neu keine Bilder in JTL-POS Allgemeine Fragen zu JTL-POS 0
Neu Bilder werden nicht immer an Shop übertragen WooCommerce-Connector 0
Neu Bilder in Plugin-Template importieren Plugins für JTL-Shop 1
Neu Bilder importieren CSV Einrichtung / Updates von JTL-POS 3
In Bearbeitung ebay-Bilder Massenänderung bei für mehrere Plattformen User helfen Usern - Fragen zu JTL-Wawi 6
In Bearbeitung Alle Bilder für alle Plattformen aktivieren User helfen Usern - Fragen zu JTL-Wawi 16
Neu Bilder werden von Shopware gelöscht! Shopware-Connector 4
In Bearbeitung Bilder bei Variationen? User helfen Usern - Fragen zu JTL-Wawi 9
Neu Bilder werden nicht mehr an den Online Shop übertragen (Statustext Bilder Online-Shop Übertragung ausstehend) WooCommerce-Connector 1
In Bearbeitung Bilder: Verknüpfung zu onlineshop entfernen und durch Ebaybilder ersetzen User helfen Usern - Fragen zu JTL-Wawi 6
Neu Bilder in falscher Reihenfolge User helfen Usern - Fragen zu JTL-Wawi 6
Verwiesen an Support [1.5.31.0] Kann keine Bilder mehr hinzufuegen. JTL-Wawi - Fehler und Bugs 1
In Bearbeitung Bilder nach Änderung der Beschreibung weg. User helfen Usern - Fragen zu JTL-Wawi 4
In Bearbeitung Import Ameise - Artikelbilder je Plattform - Einzelne Bilder löschen User helfen Usern - Fragen zu JTL-Wawi 3
Neu Bilder werden nicht mehr aktualisiert Shopware-Connector 7
Neu Artikel Bilder werden beim Anklicken nicht vergrößert, Fehlermeldung erscheint, Update 1.5.19.0 Allgemeine Fragen zu JTL-Shop 6
Neu Worker Abgleich für "Bilder/Beschreibung" User helfen Usern - Fragen zu JTL-Wawi 1
Neu Bilder in Variationen Shop und ebay User helfen Usern - Fragen zu JTL-Wawi 9
Neu Alle Bilder aller Väter an alle Kinder vererben JTL-Ameise - Fehler und Bugs 19
Neu Bilder Upload Shopware-Connector 1
Gelöst Bilder Rahmen proportional füllen in List und Label Gelöste Themen in diesem Bereich 1
In Diskussion Artikelabgleich - Bilder werden nicht ersetzt, sondern zusätzlich hochgeladen WooCommerce-Connector 2
Gelöst Bilder werden bei Datenabgleich nicht übertragen Gelöste Themen in diesem Bereich 4
Gelöst Bilder zu anderen Auktionen eBay-Anbindung - Fehler und Bugs 2
Gelöst Keine Bilder unter "Mehr dieser Warengruppe" eBay-Designvorlagen - Fehler und Bugs 4
Neu Ihre Bestellmenge für diesen Artikel muss ein Vielfaches vom Abnahmeintervall sein. Falsche Einstellung? JTL-Shop - Fehler und Bugs 1
Gelöst Picklisten per Workflow vom Packtisch+ erzeugen? Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 1
Neu Höherversicherung bei DHL abhängig vom Warenwert Einrichtung von JTL-Shop 0
Neu Artikel vom Lieferanten zur Auswahl anlegen, wie?? User helfen Usern - Fragen zu JTL-Wawi 0
Issue angelegt Unbehandelte Ausnahme #1FCC908612EEA842 vom Typ System.NullReferenceException in Boolean doWork() JTL-Ameise - Fehler und Bugs 4
Neu unterschiedlicher EK bei Stücklisten bei Einzelbezug als bei Bezug vom Set der Stücklisten User helfen Usern - Fragen zu JTL-Wawi 3
In Diskussion [DHL] Fehlende Pakete vom 06.10.20 + 07.10.20 JTL-ShippingLabels - Fehler und Bugs 2
Neu One Drive vom Client Packtisch ansteuern - Fehlende Rechte Kein Zugriff gewährt Installation von JTL-Wawi 4
Gelöst Warnung per Email wenn sich der neue Lieferanten EK vom bereits hinterlegten Einkaufspreis (Netto) Unterscheidet JTL-Workflows - Ideen, Lob und Kritik 7
Neu Lieferantenbestellung wird vom Lieferanten auf 2 Liefertermine gesplittet Arbeitsabläufe in JTL-Wawi 3
Neu Super-GAU, Systemlaufwerk (SSD) vom Server-Rechner kaputt Installation von JTL-Wawi 24
Neu Eingabefeld verliert Fokus beim Einblenden vom Display-Keyboard JTL-POS - Fehler und Bugs 0
Gelöst Zugriff auf Sonderpreise vom Amazon Lister nicht möglich Amazon-Lister - Fehler und Bugs 2
Gelöst Keine Antwort vom Server bei ebay Abgleich Gelöste Themen in diesem Bereich 2
Neu Wie: Verkauf vom Artikel nach Gewicht mit Zusatz-Services User helfen Usern - Fragen zu JTL-Wawi 5
Neu Wann werden die Befehle im SQL Datei vom DB Server übernommen? Technische Fragen zu Plugins und Templates 2
Gelöst Vom Standardlager in die WMS switchen Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 2
Ähnliche Themen