[gelöst] REST API und Artikel-Bestellummer

Hallo, mit der alten API konnte ich die Artikel-ID mit sGetArticleID anhand der ordernumber lesen und somit gezielt auf einen Artikel zugreifen, von dem ich die Bestellnummer habe, aber die ID nicht kenne. Wie macht man das mit der REST API? Laut Doku muss ich die ID wissen und kann dann mit ‘articles/id’ zugreifen. Die ID weiß ich aber nicht. Wenn ich nun zuerst alle Artikel mit ‘articles’ (ohne ID) einlese, werden die Unter-Ressourcen nicht geladen und ich kann auch auf diesem Weg nicht die ID anhand der Bestellnummer (jetzt [mainDetail][number]) ermitteln. Mache ich hier einen Denkfehler? Gruß Jo

Ich denke hier liegt kein Denkfehler vor, sondern diese Variante ist in der Rest API (bisher noch) nicht implementiert. Zumindest konnte ich in der Dokumentation ebenfalls nichts entsprechendes finden.

Hallo Shopware-Team, kann man diesbezüglich mit einer Erweiterung der API rechnen? Danke und Gruß Jo

Über unseren offiziellen Supportweg der Professional Version wurde mir nun mitgeteilt, dass die API nicht supported wird. Auch wurde die eigentliche Frage, ob hier noch eine Erweiterung kommt, ignoriert. Mir ist es wirklich schleierhaft, warum hier einerseits ein sehr guter Service im Forum seitens SWAG geleistet wird, andererseits die einfachsten Fragen schlicht ignoriert werden. Das ist bestimmt nicht nur für uns essentiell, wie wir unserer Artikel über eine API weiterhin pflegen können. Immerhin gab es eine API, die bisher funktioniert hat. Sehr schade.

Hallo, eine Filterung nach der ordernumber ist folgendermaßen möglich: [quote]$filter = array( array( ‘property’ => ‘mainDetail.number’, ‘value’ => “SW10003” ), ); $query = http_build_query(array( ‘filter’ => $filter )); $client->call(‘articles/?’ . $query, ApiClient::METHODE_GET);[/quote] Für voraussichtlich Shopware 4.0.4 werden die REST-API um eine Möglichkeit erweitern, direkt mit der ordernumber arbeiten zu können. Viele Grüße, Benjamin Cremer

1 Like

Hallo, in der Version 4.0.4 wird es möglich sein direkt mit der Ordernumber zu arbeiten. Dazu muss einfach der GET-Parameter useNumberAsId übergeben werden. Siehe dazu folgendes Beispiel (Ordernumber ist SW500-Test): $updateImages = array( 'images' =\> array( array( 'link' =\> 'http://lorempixel.com/640/480/', 'description' =\> 'Mein NEUES Hauptbild', 'main' =\> true ), array( 'link' =\> 'http://lorempixel.com/640/480/', 'description' =\> 'Mein weiteres Sekundärbild' ), array('link' =\> 'http://lorempixel.com/640/480/'), ), ); $client-\>call('articles/SW500-Test?useNumberAsId=true', ApiClient::METHODE\_PUT, $updateImages); Ich hoffe das hilft euch weiter. Viele Grüße, Benjamin Cremer :shopware:

4 Likes

… und für den lokalen Zugriff dann entsprechend: $article = $articlesResource-\>getOneByNumber("SW205857");

PUSH* Frage wie bekomme ich den Pfad von einem Produktbild wenn ich die ID weiß per REST API ?