# Vorschaubild per API definieren

**URL:** <https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900>\
**Category:** Programmierung\
**Created:** [18. Oktober 2017 um 08:26 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900 "2017-10-18T08:26:34Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Manuunited](https://avatars.discourse-cdn.com/v4/letter/m/48db29/32.png) [@Manuunited](https://forum.shopware.com/u/Manuunited)\
**Post date:** [18. Oktober 2017 um 08:26 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/1 "2017-10-18T08:26:34Z")

</div>

Hallo,

leider schaffe ich es nicht ein Vorschaubild beim Erstellen bzw. Aktualisieren der Artikel per API zu definieren.

Ich versuche über die Ressource Articles das Image per mediaId und main=1 als Vorschau zu definieren.

“images”:[{“main”:1,“mediaId”:6061}],

Leider funktioniert das nicht wie gewünscht. Hat mir jemand einen Tipp?

Danke.

&nbsp;

---

<div class="post-metadata">

**Author:** ![PStadtfeld](https://avatars.discourse-cdn.com/v4/letter/p/3bc359/32.png) [@PStadtfeld](https://forum.shopware.com/u/PStadtfeld)\
**Post date:** [18. Oktober 2017 um 10:16 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/2 "2017-10-18T10:16:42Z")

</div>

Über welche Api schickst du das? Put auf api/article ?

Die images haben in Verbindung mit den Artikeln alle noch eine eigene ID, ich denke mal, dass du die Bilder in deinem Fall darüber ansprechen müsstest und nicht über die mediaID.

```
[ 
   "images" => [
         "id" => $id,
         "main" => 1,
   ]
]

```

Würde ich mal so versuchen.

---

<div class="post-metadata">

**Author:** ![Manuunited](https://avatars.discourse-cdn.com/v4/letter/m/48db29/32.png) [@Manuunited](https://forum.shopware.com/u/Manuunited)\
**Post date:** [18. Oktober 2017 um 10:25 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/3 "2017-10-18T10:25:39Z")

</div>

Danke für deine Antwort.

Ja ich mache einen put auf die api/article resource.

Ok kannst du mir sagen wie ich an die Id komme? Ich habe nur die MediaIds zu den Bildern, da ich diese über die api/media resource angelegt habe.

---

<div class="post-metadata">

**Author:** ![PStadtfeld](https://avatars.discourse-cdn.com/v4/letter/p/3bc359/32.png) [@PStadtfeld](https://forum.shopware.com/u/PStadtfeld)\
**Post date:** [18. Oktober 2017 um 12:08 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/4 "2017-10-18T12:08:48Z")

</div>

Ah okay, das hatte ich falsch verstanden - Ich ging davon aus, dass die Bilder dem Artikel zumindest schon zugeordnet wurden und nur noch umgestellt werden soll, welches Bild als Vorschau definiert wird.

Um Bilder hinzuzufügen muss man glaube ich zumindest den Link angeben (zumindest war das bei mir immer so). Demnach mal versuchen die Api über api/media/[mediaID] aufzurufen und dort die URL herauszunehmen.

Danach dein Put mit folgender Struktur abschicken:

```
array(
   'images' => [ 
         [
           [
           'mediaId' => $mediaID,
           'link' => $url,
           'main' => 1
           ]
         ]
   ]
)

```

Sieht bisschen verwurschtelt aus mit den ganzen arrays, aber so (zumindest ohne das main) funktioniert das bei mir bislang ohne Probleme.

&nbsp;

Einfach mal ausprobieren ~

&nbsp;

---

<div class="post-metadata">

**Author:** ![Manuunited](https://avatars.discourse-cdn.com/v4/letter/m/48db29/32.png) [@Manuunited](https://forum.shopware.com/u/Manuunited)\
**Post date:** [19. Oktober 2017 um 07:48 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/5 "2017-10-19T07:48:29Z")

</div>

Habe das gerade so probiert. Leider funktioniert es noch nicht.

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/c/ca12b0ea6e248a6cfee866e06156d8fd890ab709.png)

Die Zuordnung funktioniert nur leider wird das Bild nicht als Vorschau defniert.

Wenn ich das Bild nicht als Vorschau definiert bekomme erhalte ich in der Artikelübersicht immer unter der Spalte Info dass kein Bild zum Artikel vorhanden sei.

 ![](https://europe1.discourse-cdn.com/flex013/uploads/shopware/original/2X/1/13fec02f52a53d88f9339288570ea2ce63751b0e.png)

---

<div class="post-metadata">

**Author:** ![R4M](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/r4m/32/9983_2.png) [@R4M](https://forum.shopware.com/u/R4M)\
**Post date:** [19. Oktober 2017 um 08:05 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/6 "2017-10-19T08:05:56Z")

</div>

Du kannst ja in der DB (s\_articles\_img) mal schauen, ob beim Artikel das Feld “main” auch aktiv ist - da sollte eine “1” stehen.

---

<div class="post-metadata">

**Author:** ![PStadtfeld](https://avatars.discourse-cdn.com/v4/letter/p/3bc359/32.png) [@PStadtfeld](https://forum.shopware.com/u/PStadtfeld)\
**Post date:** [19. Oktober 2017 um 12:03 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/7 "2017-10-19T12:03:48Z")

</div>

Warte mal… das Icon besagt doch bloss, dass der Artikel angeblich noch gar keine Bilder hat wenn ich mich nicht irre…?

Wie gesagt legen wir unsere Grafiken ja auch ohne main=1 an und es funktioniert trotzdem ohne Fehlericons.

Wenn du nur das eine Bild hinzufügen möchtest, dann probier es mal mit folgendem Zusatz:

```
$article= array(
		'__options_images' => array (
			 "replace" => true
		 ),
		'images' => array($HierDeinGrafikArray),		
);

$erg = $client->put("articles/".$tmp_artikel_number."?useNumberAsId=true", $article);

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Manuunited](https://avatars.discourse-cdn.com/v4/letter/m/48db29/32.png) [@Manuunited](https://forum.shopware.com/u/Manuunited)\
**Post date:** [2. November 2017 um 10:32 UTC](https://forum.shopware.com/t/vorschaubild-per-api-definieren/48900/8 "2017-11-02T10:32:11Z")

</div>

Sorry für die späte Rückmeldung.

Ich habe nun bemerkt das ich die Zuweisung der MediaId unter mainDetails gemacht hatte. Die Zuweisung des Bildes ging trotzdem aber der Parameter main=1 ging nicht. Außerhalb von mainDetails klappt es nun auch mit dem main Parameter.

Danke für die Hilfe.

&nbsp;

&nbsp;
