Hallo!
Ich schicke Artikel via RestAPI zu meinem Shopwaresystem. Bei den Bildern vergleiche ich dabei die bereits vorhandenen Bilder mit denen, die ich schicken würde. Für das brauch ich jedoch ein Feld, ich das ich Daten zum Bild schreiben kann. Dafür brauche ich die Freitextfelder.
Wenn ich jedoch ein GET auf den Artikel mache, dann bekomme ich zu den Bildern keines dieser Attributfelder mitgeliefert. Einzig die description könnte ich abrufen (hab ich bis jetzt so gemacht, allerdings brauche ich diese nun für andere Zwecke). Deshalb ist die description keine Alternative und ich brauche die Daten aus den Freitextfeldern.
Ich bin für Hilfe sehr dankbar, da man hierzu nichts im Internet findet…
LG
Hallo auch.
Welche Methode nutzt du denn? GET (List) oder GET in einer Schleife?
Wenn ich beispielsweise GET als
$client->get('articles/'.$id);
nutze, erhalte ich die Attribute alle schön hier:
[mainDetail] => [attribute] => Array ()
Oder versteh ich was falsch? So wäre es möglich, Informationen zu den Bilder pro Artikel in den Attributfeldern des Artikels zu speichern.
( Quelle: https://developers.shopware.com/developers-guide/rest-api/api-resource-article/ )
Hello.
Das müsste doch mit der Media-Resource gehen: https://developers.shopware.com/developers-guide/rest-api/examples/media/
Zumindest nutze ich die um zu prüfen ob das Bild schon existiert usw… Hoffe es hilft dir
Grüße
Hallo,
wie oben schon geschrieben nutze ich diese, nur kriegt man bei einem GET diese Attribute nicht mit. Kannst du ja mal bei dir überprüfen
Man kann sie zwar mitschicken (und sie werden richtig in die Database geschrieben) aber bei einem GET bekomme ich sie nicht.
LG
Eben darum ja die Frage, ob du der Anfrage eine konkrete ID mitgibst ( z.B. in einer Schleife ), also so:
$client->get('articles/'.$id);
… oder eben GET(List) nutzt:
$client->get('articles');
Bei ersterem ist die Antwort sehr umfangreich, eben auch die attr-Felder, während du bei der List-Methode nur eine „Kurzversion“ ohne attr bekommst.
@musikdiscount24 schrieb:
Eben darum ja die Frage, ob du der Anfrage eine konkrete ID mitgibst ( z.B. in einer Schleife ), also so:
$client->get(‚articles/‘.$id);
Ich verwende diese Anfrage. Und ich denke ihr versteht alle nicht WELCHE Attribute ich bekommen will.
Ich will NICHT die Attribute (attr1 - attr17) auf dem Artikel. Die bekommt man damit ja. Ich WILL die Attribute (z.b. Freitextfelder) auf den ArtikelBILDERN. Die sind da nicht dabei. Das ist eine andere Tabelle. (s_articles_img_attributes)
Hi,
die Image-Attribute werden nicht mitgeliefert und sind auch noch nicht über einenn separaten API-Aufruf abrufbar.
Hier bleibt dir meiner Meiniung nach nur die Möglichkeit entweder die API entsprechend zu erweitern oder die Infos direkt aus der DB zu ziehen.
1 „Gefällt mir“
Hallo zusammen,
ich möchte diesen Punkt nochmal aufgreifen. In meiner aktuellen Version 5.5.6 werden die selbst definierten Freitextfelder für Bilder nun in einem Array z.B. image.attribute.attribute1 bei Abruf per get ausgegeben. Doch bislang schaffe ich es nict per API diese Freitextfelder zu befüllen. Ein Blick in die API- und Model-Definition hat mich auch nicht weitergebracht. Kann es sein, dass diese Werte zwar ausgegeben aber nicht setzbar sind?
Grüße
sunflower
Ok, war nur ein Tippfehler in der Arraystruktur. Funktioniert nun wunderbar.
'images' =\> [[ 'link' =\> '', 'main' =\> 1, 'position' =\> 3, 'description' =\> 'content', 'attribute' =\> [ //hier kann man die Attribute in die Tabelle 's\_articles\_img\_attributes' übertragen 'attribute1' =\> 'attribute1', 'attribute2' =\> 'attribute2', 'attribute3' =\> 'attribute3'] ],
@Kobresia
Ich habe dies in der Aktuellen 5.5.10 getestet, kann aber keine attributes im media array finden, und auch nicht mit ‘attribute =< […’ zufügen.
Was mache ich falsch?