Variantenbilder

Hallo liebe Community, 

ich tu mich noch etwas schwer mit den Variantenartikel, aktuell werden nur beim Hauptartikel alle Bilder angezeigt.
Das ist ja vermutlich auch in den meisten Fällen sinnvoll, allerdings verwenden wir  bei den Varianten ein Übersichtsbild auf dem die verschiedenen Größen der Varianten dargestellt werden. 
Ich würde nur ungern die Artikel neu importieren und das Bild einzeln bei jeder Variante hinterlegen. 
Gibt es eine Möglichkeit die Bilder des Hauptartikels auch bei den Varianten anzuzeigen ? 
Vielleicht sogar eine Option im Backend, die ich einfach übersehen habe ? 

Vielen Dank im Voraus! 

 

Hi, 

Du kannst das einfach mit den  Konfiguration lösen in dem du die   Bilder einzelnen Varianten zuweist, sodass die Bilder nur bei Auswahl dieser Variante angezeigt werden. Klicke auf dein Vorschau Bild oder markiere mehrere Bilder und klicke auf den Button, um das Konfigurationsfenster zu öffnen.

 

Wenn du das nicht manuell machen willst und nur das Vorschau Bild in Template ausgeben willst, musst du die Ausgabe in Template ändern in dem du das Bild vom Hauptartikel in eine Variable speicherst und bei alle Varianten-Artikel ausgibst. 

 

Wenn du das nicht manuell machen willst und nur das Vorschau Bild in Template ausgeben willst, musst du die Ausgabe in Template ändern in dem du das Bild vom Hauptartikel in eine Variable speicherst und bei alle Varianten-Artikel ausgibst. 

Unser Kunde möchte alle Bilder des Hauptartikels bei jeder Variante anzeigen. Ich bin mir jetzt nicht sicher ob das damit gemeint war ?  

Dann musst du ein Plugin schreiben und den sArticles::sGetArticleById::after hooken. 

Hauptartikel kannst du mit $mainOrdernumber = $this->getMainOrderNumber($articleId); laden. 

Bilder so: 

 Shopware()-\>Models()-\>getRepository('Shopware\Models\Media\Media') -\>getAlbumWithSettingsQuery(-1) -\>getOneOrNullResult();

 

und Main Image so : 

 $sArticle['image'] = $articleCoreClass-\>getArticleMainCover($articleId, $articleAlbum); 

 

PS: Nicht getestet, aber sollte so gehen. 

 

Alternativ kannst du auch direkt die Bilder per API zuweisen: 

for ($i = 0; $i < $productVariant['bilder']; $i++)
                    {
                        $imageSrc = bilder_url.'/1600x1600/' . $productVariant['artikelnummer'] . '_' . $i . '.jpg';
                        if (@getimagesize($imageSrc)) {
                            $imageDataVariants[$i] = array('link' => $imageSrc);
                            $counter++;
                        }
                    }

                    if(count($imageDataVariants) > 0) {
                        $updateArticle = array(
                            'taxId' => 1,
                            'variants' => array(
                                array(
                                    'isMain' => false,
                                    'additionaltext' => $productVariant['produktname'],
                                    'configuratorOptions' => array(
                                        array('group' => 'Varianten '.$product['artikelnummer'], 'option' => $productVariant['produktname']. ' + ' .$productVariant['preis'] ),

                                    ),
                                    'number' => $productVariant['artikelnummer'],
                                    '__options_images' => array('replace' => true),
                                    'images' => $imageDataVariants,
                                )
                            ),
                        );
                        $client->put('articles/'. $id, $updateArticle);