[Erledigt]RestAPI Hersteller Update funktioniert nicht, warum?

Hy,

ich wollte gerade mein Import-Script für die Herstellerinformationen auf die API umstellen. Vorher habe ich dieses direkt in die Datenbank geschrieben, da auch in SW4 die API mir immer Fehler geworfen hat.

Meine Abfrage, zum testen:

print_r(helper::$api->GET('manufacturers/'.$exists_manufacturer['id'])); 
										
									
helper::$api->PUT('manufacturers', $exists_manufacturer);


print_r($exists_manufacturer);

Das Ergebnis:

Array
(
    [data] => Array
        (
            [id] => 3
            [name] => Branston
            [image] => media/suppliers/Branston-Small.png
            [link] =>
            [description] => Mizkan Europe Ltd.PO Box 145Birmingham B24 8WRUK
            [metaTitle] => Branston
            [metaDescription] =>
            [metaKeywords] =>
            [changed] => 2016-04-13T09:56:09+0200
            [attribute] =>
        )

    [success] => 1
    [call] => success
)
API: No Success: 3 This resource has no support for batch operations.
Array
(
    [id] => 3
    [name] => Branston
    [image] => media/suppliers/Branston-Smalls.png
    [link] =>
    [description] => Mizkan Europe Ltd.PO Box 145Birmingham B24 8WRUK
    [metaTitle] => Branston
    [metaDescription] =>
    [metaKeywords] =>
    [changed] => 2016-04-13T09:56:09+0200
)

Es lassen sich also keine Herstellerdaten per PUT aktualisieren.
Selbst wenn ich es direkt mit “'manufacturers/‘ID’” versuche, geht es nicht, es kommt dann “No Success: 3 Resource not found”

 

Weiß hier zufällig jemand von Shopware oder Kollegen, warum dies so ist? Sonst würde ich wieder auf die SQL Variante umsatteln.

 

Beste Grüße

 

 

Schau mal hier: REST API - Basics

**Manufacturers **unterstützt keinen „Batch Put“ - Daher auch der Fehler „This resource has no support for batch operations.“

Hallo kayyy,

das ist mir schon klar. Aber ich gebe der Resource ja nur einen Hersteller mit seinen Informationen.
Daher halt die Frage, warum ist das so? Oder wie muss die Anfrage aussehen?

Beste Grüße
 

mh…

ich muss wohl doch wieder über SQL gehen.

Ich habe nun den Image Tag entfernt, da dieses wohl nicht mit [‘image’][‘link’] = … oder auch nicht [‘image’] = … klar kommt.

Nun bekomme ich
 

API: No Success: 3 Errormesage: An exception occurred while executing 'INSERT INTO s_articles_supplier (id, name, img, link, description, meta_title, meta_description, meta_keywords, changed) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)' with params [3, "Branston", "", "", "Mizkan Europe Ltd.PO Box 145Birmingham B24 8WRUK", "Branston", "", "", "2016-04-13 09:56:09"]:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '3' for key 'PRIMARY'

Ja… klar das er doppelt ist. ich wollte den Eintrag ja auch updaten…  Mit PUT und POST probiert…

Schade.

Bei put musst du glaube ich auch die ID mit angeben also manufacturers/’.$exists_manufacturer[‘id’]