Hallo Community, ich bastel seit nunmehr drei Tagen an der REST API für Shopware 4.3.4 um den bestehenden Artikeln Bild hinzuzufügen. Ich lasse den PUT-Aufruf mit Hilfe des Batch Modus laufen. Dafür habe ich ein Array gebaut, dass ‘id’ des Artikels und ein Array ‘images’ enthält. Laut API wird der PUT korrekt ausgeführt. Ich teste mit 5 Artikeln, also keine große Menge und jeweils einem Bild pro Artikel. Stand nach der Ausführung: in …/media/temp liegen 4 Bild-Dateien mit 0 Byte. in …/media/image liegt 1 Bild-Datei korrekt verarbeitet. Es ist nur das Bild des letzten Datensatzes, der verarbeitet wird. Dabei ist es egal, wieviele Datensätze im Batch liegen. Es ist am Ende immer nur der letzte korrekt. Habe es auch schon ohne den Batch probiert und versucht per PUT jeden Artikel einzeln zu akualisieren, das hilft jedoch auch nicht. Kann mir bitte jemand helfen dieses Problem zu lösen? Ich weiss nicht, wie ich sonst die Masse an Bildern einladen soll. //Erzeuge Artikeldaten-Array für PUT-Befehl $ArticleData = array(); foreach($File as $key =\> $value) array\_push($ArticleData, array( 'id' =\> $value[0], 'images' =\> array( array('link' =\> $value[1]) ) ) ); //Füge Bilder in Artikel ein $client-\>put('articles/',$ArticleData);
Er verarbeitet nur eine Datensatz weil dein put Code außerhalb der Schleife liegt. Wo liegen denn genau die Bilder ? Du hast also irgendwo Bilder welche du per put für die Artikeln aktualisieren willst ?
[quote=„kayyy“]Er verarbeitet nur eine Datensatz weil dein put Code außerhalb der Schleife liegt.[/quote] in der schleife werden alle daten die geschickt werden sollen gesammelt und übertragen, daran liegts also nicht. hast du mal einen var_dump($ArticleData) gemacht um zu checken welche daten an die API übertragen werden?