Per API Bilder in Media importieren

Hallo zusammen,

gerade versuche ich einen API-Import für Bilder zu machen, die in ein bestimmtes Album in die Medienverwaltung hinein sollen.

$client->call(
    'media',
    'POST',
    [
        [
            'albumId' => 1,
            'file' => 'http://www.irgendwo.de/bild01.jpg',
            'decription' => 'xyz'
        ],
        [
            'albumId' => 1,
            'file' => 'http://www.irgendwo.de/bild02.jpg',
            'decription' => 'abc'
        ]
    ]
);

Allerdings bekomme ich immer nur eine Fehlermeldung:

HTTP: 400
No Success
A required parameter is missing:

Ohne Angabe, was nun genau fehlt.

Hier im Forum habe ich einen älteren Beitrag gefunden, in dem empfohlen wurde, statt ‚albumId‘ besser ‚album‘ zu vewenden, doch das brachte leider garnichts. Auch habe ich es sowohl mit ‚file‘ als auch mit ‚link‘ - ebenfalls mit gleicher Fehlermeldung.

Mein erster Versuch war PUT statt POST, doch das funktioniert offenbar gar nicht.

Hat jemand eine Idee, wie es tatsächlich funktioniert?

 

Also, ich benutze ‚album‘ statt ‚albumId‘ und setze es auf -1 für einen Artikel.

Dann ‚name‘ (ein String), ‚file‘ und ‚de s cription‘. Ich glaube Sie haben da einen Tippfehler gemacht (‚decription‘), deswegen fehlt da ‚description‘ im POST, was ein ‚required field‘ ist.

Ja, die Fehlermeldung ist etwas nervig. Wobei die Nachricht als solches ja generiert wird, wurden die Feldnamen auch einfach nur nicht angegeben.

 

z.B. aus der engine/Shopware/Components/Api/Resource/Media.php

  if (empty($id)) {
            throw new ApiException\ParameterMissingException();

 

@Shopware: Man sollte wirklich mal alle exceptions durchgehen, zumindest die, die mit API-Aufrufen zu tun haben. Fehlermeldungen sollten IMMER schlüssig sein und sich nicht durch den Code drumrum erklären.

 

Hallo und vielen Dank!

Ich hatte tatsächlich einen Tippfehler - auch im Originalskript. Und dachte schon, dass dort die Ursache der Fehlermeldung liegen könnte. Doch leider nein.

Auch wenn ich zusätzlich “name” übergebe und aus “albumID => 1” ein “album => -1” mache - immer nur “No Success. A required parameter is missing:” als Reaktion.

Hello Everyone,

I am facing the same problem in posting media to shopware, below is my script:

{
            „album“: -1,
            „description“: „XXX“,
            „file“: „http://…XXX.jpg“,
            „name“: „XXX“
            },
            {
            „album“: -1,
            „description“: „YYY“,
            „file“: „http://…YYY.jpg“,
            „name“: „YYY“
            }

}

If you have found a solution for the above issue could you please share how to resolve it.

Thank you in advance.

 

 

Try to send only once in root {“name”: “foo”, “file”: “…”}

@Shyim schrieb:

Try to send only once in root {„name“: „foo“, „file“: „…“}

Hi Shyim,

Thank you for your reply, I want to post media in a batch mode.

I could only post one image(as in the syntax below)in a single request. Is there a way to post multiple images in a single request.

{
    „album“: -1,
    „description“: „J“,
    „file“: „http://xxx.jpg“,
    „name“: „J“
}

Thank you in advance.