# Bild im Unterordner(!) per API anlegen

**URL:** <https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440>\
**Category:** Shopware 6 (German)\
**Created:** [28. September 2022 um 19:07 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440 "2022-09-28T19:07:51Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![tomquenten](https://avatars.discourse-cdn.com/v4/letter/t/ea5d25/32.png) [@tomquenten](https://forum.shopware.com/u/tomquenten)\
**Post date:** [28. September 2022 um 19:07 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/1 "2022-09-28T19:07:52Z")

</div>

Ich versuche in einem bestimmten Ordner dessen mediaFolderId ich habe, ein Bild hochzuladen. Das geschieht ja wie hier [Produkt-Bilder über API hochladen? - #4 von canetti2](https://forum.shopware.com/t/produkt-bilder-uber-api-hochladen/60780/4) beschrieben in 2 Schritten. Für mich ist jetzt aktuell nur der 1 Schritt interessant.

Ich kann durchaus Bilder hochladen und nun auch Ordner anlegen. ([Ordner per API anlegen - #11 von tomquenten](https://forum.shopware.com/t/ordner-per-api-anlegen/96362/11))

ABER ich möchte nun im nächsten Schritt die Bilder in einen bestimmten Ordner hochladen. Dazu habe ich aktuell folgendes probiert.

Ich sende per POST an media?\_response=true

```auto
{
    "key": "write",
    "action": "upsert",
    "entity": "media",
    "payload": 
        {
            "mediaFolderId": "485a901efe5e42a99a7a2f9cbca273db"
        }
}

```

Damit bekomme ich eine neue Medien ID zurück, jedoch nicht in dem angegebenen Ordner. Wie kann das sein? Ich gebe doch die mediaFolderId mit!

Zweiter Versuch…manchmal sind es ja nur Schusselfehler

```auto
{
    "key": "write",
    "action": "upsert",
    "entity": "media_folder",
    "payload": 
        {
            "mediaFolderId": "485a901efe5e42a99a7a2f9cbca273db"
        }
}

```

Gleiches Ergebnis…MedienID ja, aber nicht in dem Ordner wo diese hin soll.

Dritter Versuch zum Test

```auto
{
    "key": "write",
    "action": "upsert",
    "entity": "media",
    "payload": 
        {
            "mediaFolderId": ""
        }
}

```

Auch hier bekomme ich einen Medien ID zurück.

**Die medienFolderId scheint vollkommen egal zu sein, die API gibt mir einfach eine Medien ID zurück die im Medien Basisverzeichnis liegt.**

Die Suchfunktion gibt mir nichts passendes zurück. Probiert habe ich es mit  
bild upload in Ordner  
bild upload Ordner  
bild upload Unterordner  
bild upload medienFolder  
bild upload medienFolderID

Evenvtuell fehlen mir nur die richtigen Begrifflichkeiten.

Wie bekomme ich per API eine MedienID in einem **ANGEGEBENEN ORDNER**? ☹

tomquenten

---

<div class="post-metadata">

**Author:** ![chamaw](https://avatars.discourse-cdn.com/v4/letter/c/b487fb/32.png) [@chamaw](https://forum.shopware.com/u/chamaw)\
**Post date:** [30. September 2022 um 06:43 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/2 "2022-09-30T06:43:09Z")

</div>

Der Weg wäre zunächst einen Folder zu erzeugen. Dann beim erzeugen des media Elements, die ID auf der Clientseite zu erzeugen

```auto
{
    "key": "write",
    "action": "upsert",
    "entity": "media",
    "payload": 
        {
            "id": "CLIENT_CREATED_UUID",
            "mediaFolderId": "UUID"
        }
}

```

---

<div class="post-metadata">

**Author:** ![tomquenten](https://avatars.discourse-cdn.com/v4/letter/t/ea5d25/32.png) [@tomquenten](https://forum.shopware.com/u/tomquenten)\
**Post date:** [30. September 2022 um 08:25 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/3 "2022-09-30T08:25:55Z")

</div>

Auch das hatte ich schon ausprobiert.

```auto
{
    "key": "write",
    "action": "upsert",
    "entity": "media",
    "payload": {
        "id": "25f9e794323b453885f5181f1b624d0b", //mit php md5(productId) erzeugte mediaId
        "mediaFolderId": "485a901efe5e42a99a7a2f9cbca273db" //id eines bestehenden Ordners unterhalb von Product Media
    }
}

```

gesendet per POST an media?\_response=true  
und als Antwort folgendes erhalten…

```auto
object(stdClass)#145 (3) {
  ["data"]=>
  object(stdClass)#119 (6) {
    ["id"]=>
    string(32) "450b125cfb864b6a96c4ede4c09b1e15"
    ["type"]=>
    string(5) "media"
    ["attributes"]=>
    object(stdClass)#117 (19) {
      ["userId"]=>
      NULL
      ["mediaFolderId"]=>
      NULL
      ["mimeType"]=>
      NULL
      ["fileExtension"]=>
      NULL
.
.
.
.

```

Die MediaFolderId wird einfach ignoriert.  
Noch eine Idee? ☹

tomquenten

---

<div class="post-metadata">

**Author:** ![chamaw](https://avatars.discourse-cdn.com/v4/letter/c/b487fb/32.png) [@chamaw](https://forum.shopware.com/u/chamaw)\
**Post date:** [30. September 2022 um 09:01 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/4 "2022-09-30T09:01:51Z")

</div>

Einfach nur ein POST mit diesem Json im Body  
`{"id":"25f9e794323b453885f5181f1b624d0b","mediaFolderId":"485a901efe5e42a99a7a2f9cbca273db"}`

an URL:  
`/api/media`

mit welcher Programmiersprache arbeitest Du denn hier ? Und das passiert dann RAW oder mit einer Bibliothek ? Die anderen Sache gehören in das Batch-Processing …

ich mache das immer erstmal mit Postman und wenn es dann passt, kann man das entsprechend in Code übertragen …

herzlichst

CH

---

<div class="post-metadata">

**Author:** ![tomquenten](https://avatars.discourse-cdn.com/v4/letter/t/ea5d25/32.png) [@tomquenten](https://forum.shopware.com/u/tomquenten)\
**Post date:** [30. September 2022 um 10:17 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/5 "2022-09-30T10:17:53Z")

</div>

@chamaw, vielen Dank für den Hinweis!

FALSCHE ANFRAGE

```auto
{
    "key": "write",
    "action": "upsert",
    "entity": "media",
    "payload": {
        "id": "25f9e794323b453885f5181f1b624d0b", //mit php md5(productId) erzeugte mediaId
        "mediaFolderId": "485a901efe5e42a99a7a2f9cbca273db" //id eines bestehenden Ordners unterhalb von Product Media
    }
}

```

RICHTIGE ANFRAGE

```auto
 {
  "id": "25f9e794323b453885f5181f1b624d0b", //mit php md5(productId) erzeugte mediaId
  "mediaFolderId": "485a901efe5e42a99a7a2f9cbca273db" //id eines bestehenden Ordners unterhalb von Product Media
 }

```

Das obere Schema ist für den Sync Endpunkt bestimmt…das hatte ich vollkommen übersehen.

---

<div class="post-metadata">

**Author:** ![chamaw](https://avatars.discourse-cdn.com/v4/letter/c/b487fb/32.png) [@chamaw](https://forum.shopware.com/u/chamaw)\
**Post date:** [30. September 2022 um 10:29 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/6 "2022-09-30T10:29:43Z")

</div>

sprich jetzt funktioniert es wie gewollt ?

---

<div class="post-metadata">

**Author:** ![tomquenten](https://avatars.discourse-cdn.com/v4/letter/t/ea5d25/32.png) [@tomquenten](https://forum.shopware.com/u/tomquenten)\
**Post date:** [30. September 2022 um 11:59 UTC](https://forum.shopware.com/t/bild-im-unterordner-per-api-anlegen/96440/7 "2022-09-30T11:59:00Z")

</div>

Genau so ist. Man braucht eben ab und an einen Gedankenanstoß. 🙂
