REST API Aktualisierung der Downloads bei Artikeln

Hallo liebe Community,

wir laden Bilder und Downloads (PDF-Datenblätter usw.) über die Media Ressource hoch und das klappt auch ganz wunderbar.
Bei Bildern wird eine mediaId zurückgeliefert, die wir beim Update von Artikeln verwenden bspw. so:

$data = array(
    'images' => array(
        array('mediaId' => 117),
        array('mediaId' => 118),
        array('mediaId' => 119),
    ),
);

Beim Upload von Downloads wird keine mediaId zurückgegeben. Also haben wir versucht, die Downloads mittels der id aus der Datenbank hinzuzufügen:

$data = array(
    'downloads' => array(
        array('id' => 88),
    ),
);

Das schlägt leider mit folgender Meldung fehl: \Shopware\Models\Article\Download by id 88 not found
Unsere Frage ist also. Wie füge ich in Shopware bereits vorhandene Downloads einem Artikel hinzu?

Danke schon mal für Eure Hilfe.

VG Christian

Hat keiner von Euch die Anforderung, Datenblätter o.ä. per API zu aktualisieren und diese mehreren Artikeln zuzuweisen? 
Eventuell probieren wir das auch falsch und es gibt einen ganz anderen Weg. 

Für Tipps wären wir super dankbar.

Wir haben jetzt herausgefunden, wie es funktioniert. Wenn pdf-Dokumente über die Media-Ressource hochgeladen werden, stehen diese über den Pfad 

media/pdf/DATEINAME.pdf

zur Verfügung. Der Dateiname ist das eindeutige Erkennungsmerkmal und kann dann bei den Downloads innerhalb der Artikel mit angegeben werden.

$data = array(
    'downloads' => array(
        array(
            'name' => 'Angezeigter Name im Frontend',
            'file' => 'media/pdf/DATEINAME.pdf',
            'size' => '12345',
        ),
    ),
);

Damit ist unsere Frage beantwortet. Wir hoffen, dass das anderen hilft die vor der gleichen Frage stehen.

1 „Gefällt mir“

Ich muss leider dieses Thema noch einmal aufgreifen.
Ausgangssituation: Für Shopware 5.6.9 liegt in /httpdocs/webdisk eine Datei 701230_Haselnuss_Kranz.pdf bereit.
/httpdocs/webdisk/701230_Haselnuss_Kranz.pdf5.pdf
Ich gebe per REST Api dieses Array mit:
„downloads“: [
{
„name“: „701230 Datenblatt Haselnuss Kranz“,
„description“: „701230 Haselnuss Kranz 1 x 1100g Pfalzgraf“,
„link“: „https://www.bonami24.de/webdisk/701230_Haselnuss_Kranz.pdf
},
{
„name“: „701230 Datenblatt Haselnuss Kranz“,
„description“: „701230 Haselnuss Kranz 1 x 1100g Pfalzgraf“,
„file“: „media/pdf/701230_Haselnuss_Kranz.pdf“,
„size“: 90080
},
{
„name“: „701230 Datenblatt Haselnuss Kranz“,
„description“: „701230 Haselnuss Kranz 1 x 1100g Pfalzgraf“,
„id“: 3292
}
]

Shopware quittiert den ganzen REST_aufruf auch mit „success“:true.
Aber weder im Backend, noch im Frontend, noch in Api.get wird mir einer der beiden Downloads angezeigt. Ich verwende alle 3 Möglichkeiten, die ich bisher finden konnte. Ich bräuchte nur eine, wenn wenn diese denn funktionieren würde…

Der Link in obigen Beispiel ist real und kann auch so ausgeführt werden, es zeigt sich das gewünschte PDF.
Ich habe auch mit und ohne size-paramter probiert: kein unterschied.

Ich habe auch diesen Aufbau probiert (mit links statt downloads) : kein Unterschied. Die Dateien werden nicht angezeigt.

	"downloads": [
		{
			"name": "701230 Datenblatt Haselnuss Kranz",
			"description": "701230 Haselnuss Kranz 1 x 1100g Pfalzgraf",
			"file": "media/pdf/701230_Haselnuss_Kranz.pdf",
			"size": 90080
		},
		{
			"name": "701230 Datenblatt Haselnuss Kranz",
			"description": "701230 Haselnuss Kranz 1 x 1100g Pfalzgraf",
			"id": 3292
		}
	],
	"links": [
		{
			"name": "701230 Datenblatt Haselnuss Kranz",
			"description": "701230 Haselnuss Kranz 1 x 1100g Pfalzgraf",
			"link": "https://www.bonami24.de/webdisk/701230_Haselnuss_Kranz.pdf"
		}
	]