REST API Bilder einer Variante zuordnen

Hallo,

ich habe folgendes Problem. ICh habe 2 Varianten: Größe und Farbe. Die Bilder sollen aber nur der Variante Farbe zugeordnet werden damit diese korrekt in der Artikelansicht ausgeben werden. Die Größen sollen als String und die Farben mit Bildern ausgeben werden. allerdings sieht es bei mir zurzeit so aus:

 

Mein Code dafür sieht folgendermaßen aus:

/ ********************************************************
 * Artikel anlegen
 ******************************************************** /
$newArticle = array(
    'name' => 'Spray Dye Slub Cardigan',
    'active' => true,
    'tax' => 19,
    'supplier' => 'Urban Classics',
    'categories' => array(
        array('id' => 38),
    ),
    'mainDetail' => array(
        'number' => 'TB534',
        'prices' => array(
            array(
                'customerGroupKey' => 'EK',
                'price' => 19.90,
            ),
        )
    ),
    'descriptionLong' => 'Der leichte Slubjersey-Stoff lässt diesen Cardigan von URBAN CLASSICS beim Tragen fast in Vergessenheit geraten-wären da nicht diese anerkennenden Blicke für den stylischen Used-Look.',
	'metaTitle' => 'Spray Dye Slub Cardigan',
	'description' => 'Spray Dye Slub Cardigan',
	'attr1' => '160 GSM 145 after finish 65% Polyester 35% Cotton',
	'weight' => '0.172',

    'configuratorSet' => array(
        'groups' => array(
            array(
                'name' => 'Größe',
                'options' => array(
                    array('name' => 'S'),
                    array('name' => 'M'),
                    array('name' => 'L'),
                    array('name' => 'XL'),
                    array('name' => 'XXL'),
                )
            ),
            array(
                'name' => 'Farbe',
                'options' => array(
                    array('name' => 'darkgrey'),
                    array('name' => 'olive'),
                )
            ),
        )
    ),
    'taxId' => 1,
    'variants' => array(
        array(
        	'active' => true,
            'isMain' => true,
            'number' => 'TB534',
            'inStock' => 20,
            'additionaltext' => 'L / darkgrey',
            'configuratorOptions' => array(
                array('group' => 'Größe', 'option' => 'L'),
                array('group' => 'Farbe', 'option' => 'darkgrey'),
            ),
            'prices' => array(
                array(
                    'customerGroupKey' => 'EK',
                    'price' => 19.9,
                ),
            ),
            'images' => array(
		        //array('mediaId' => 2),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-back.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-Lside.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-Rside.jpg'),
		    ),
        ),
        array(
        	'active' => true,
            'isMain' => false,
            'number' => 'TB534-00094-0042',
            'inStock' => 20,
            'additionaltext' => 'M / darkgrey',
            'configuratorOptions' => array(
                array('group' => 'Größe', 'option' => 'M'),
                array('group' => 'Farbe', 'option' => 'darkgrey'),
            ),
            'prices' => array(
                array(
                    'customerGroupKey' => 'EK',
                    'price' => 19.9,
                ),
            ),
            'images' => array(
		        //array('mediaId' => 2),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-back.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-Lside.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-Rside.jpg'),
		    ),
        ),
        array(
        	'active' => true,
            'isMain' => false,
            'number' => 'TB534-00094-0046',
            'inStock' => 20,
            'additionaltext' => 'S / darkgrey',
            'configuratorOptions' => array(
                array('group' => 'Größe', 'option' => 'S'),
                array('group' => 'Farbe', 'option' => 'darkgrey'),
            ),
            'prices' => array(
                array(
                    'customerGroupKey' => 'EK',
                    'price' => 19.9,
                ),
            ),
            'images' => array(
		        //array('mediaId' => 2),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-back.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-Lside.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-darkgrey-Rside.jpg'),
		    ),

        ...

		array(
			'active' => true,
            'isMain' => false,
            'number' => 'TB534-00176-0042',
            'inStock' => 20,
            'additionaltext' => 'L / olive',
            'configuratorOptions' => array(
                array('group' => 'Größe', 'option' => 'L'),
                array('group' => 'Farbe', 'option' => 'olive'),
            ),
            'prices' => array(
                array(
                    'customerGroupKey' => 'EK',
                    'price' => 19.9,
                ),
            ),
            'images' => array(
		        //array('mediaId' => 2),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-olive.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-olive-back.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-olive-Lside.jpg'),
		        array('link' => 'https://www.urban-classics.net/media/images/org/TB534-olive-Rside.jpg'),
		    ),
        ),
        
...
);
$client->post('articles', $newArticle);
?>

 

Bei den Farben wird das ja schon richtig ausgeben, vllt etwas schlecht zu erkennen die beiden Farben. Aber bei den Größen soll das dann wie beim XXL aussehen und keine Bilder zugeordnet werden. Wie kann ich das über die API regeln?

Vielen Dank.

Keiner eine Idee?

Hallo, wir haben  das so gelöst:

 

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);

 

1 Like