dutchy
28. November 2016 um 14:05
1
Hallo,
ich hätte mal wieder ein frage und zwar geht es um den import/update von variantenbilder über die API REST schnittstelle.
wenn ich die variantenbilder weglasse, läuft der import ohne weiteres durch, wenn ich aber die bilder mit importieren möchte, bricht er ohne fehlermeldung ab:-(
vielleicht hat ja jemand eine idee oder erfahrung damit, danke:-)
mfg
dutchy
hhmarco
28. November 2016 um 18:31
2
Wie sieht denn Dein POST Request aktuell aus?
dutchy
28. November 2016 um 19:11
3
Hallo Marco,
folgendes array übergebe ich z.b. beim updaten der methode “put”.
das ist jetzt ein array mit einer variante.
danke für deine mühe:-)
mfg
dutchy
Array
(
[name] => name
[active] => 1
[tax] => 19
[supplier] => supplier
[description] => description
[descriptionLong] => descriptionLong
[keywords] => keywords
[metaTitle] => metaTitle
[pseudoSales] => 11900
[highlight] => 0
[lastStock] => 1
[mainDetail] => Array
(
[active] => 1
[number] => LMG-XXX
[inStock] => 0
[shippingTime] => ca. 2-3 Wochen
[weight] => 1.6
[height] => 0
[width] => 0
[len] => 0
[releaseDate] => 2011-04-18
[added] => 2011-04-18
[ean] => 654654654
[additionaltext] =>
[prices] => Array
(
[0] => Array
(
[customerGroupKey] => EK
[from] => 1
[to] => beliebig
[price] => 10
[pseudoprice] => 0
)
)
[attribute] => Array
(
[attr1] => text
[attr2] => text
)
)
[images] => Array
(
[0] => Array
(
[link] => http://www.xxx.de/bilder/bild-1778.jpg
[description] => description
[main] => 1
)
[1] => Array
(
[link] => http://www.xxx.de/bilder/bild-1779.jpg
[description] => description
[main] => 2
)
)
[filterGroupId] => 71
[propertyValues] => Array
(
[0] => Array
(
[option] => Array
(
[name] => Gruppe
[filterable] => 1
)
[value] => ledergenarbt
[position] => 1
)
)
[configuratorSet] => Array
(
[groups] => Array
(
[0] => Array
(
[name] => Farbe
[options] => Array
(
[0] => Array
(
[name] => blau
)
[1] => Array
(
[name] => bordeaux
)
[2] => Array
(
[name] => dunkelblau
)
[3] => Array
(
[name] => grau
)
)
)
[1] => Array
(
[name] => Rückenbreite
[options] => Array
(
[0] => Array
(
[name] => 1,5 mm
)
[1] => Array
(
[name] => 2 mm
)
[2] => Array
(
[name] => 3 mm
)
[3] => Array
(
[name] => 4 mm
)
)
)
)
)
[categories] => Array
(
[0] => Array
(
[id] => 38
)
[1] => Array
(
[id] => 83
)
)
[variants] => Array
(
[0] => Array
(
[number] => LMG-XXX-DBL-R6
[active] => 1
[kind] => 2
[inStock] => 422
[shippingTime] => ca. 2-3 Wochen
[weight] => 1.6
[height] => 0.6
[width] => 21.5
[len] => 29.5
[releaseDate] => 2011-04-18
[added] => 2011-04-18
[ean] =>
[additionaltext] => Rückenbreite: 6 mm
[prices] => Array
(
[0] => Array
(
[customerGroupKey] => H
[from] => 1
[to] => beliebig
[price] => 9.5
[pseudoprice] => 0
)
[1] => Array
(
[customerGroupKey] => EK
[from] => 1
[to] => beliebig
[price] => 12.49
[pseudoprice] => 0
)
)
[images] => Array
(
[0] => Array
(
[link] => http://www.www.de/bilder/bild-1840.jpg
[description] => description
[main] => 1
)
)
[configuratorOptions] => Array
(
[0] => Array
(
[group] => Farbe
[option] => dunkelblau
)
[1] => Array
(
[group] => Rückenbreite
[option] => 6 mm
)
)
[attribute] => Array
(
[attr1] => text
[attr2] => 50 Stück
)
)
)
[customerGroups] =>
)
dutchy
1. Dezember 2016 um 11:03
4
Hallo in die Runde,
ich bin jetzt ein schritt weiter, die zuordnung der bilder erfolgt über den tag “relations”.
ich kann jetzt die variantenbilder importieren und das bild der jeweiligen variante zuordnen.
wenn ich jetzt den artikel per get aufrufe, bekomme ich folgendes:
[images] => Array
(
[0] => Array
(
[id] => 30836
[articleId] => 4477
[articleDetailId] =>
[description] => Premium , matt - ledergenarbt
[path] => bild-1906583fffb2bfb50
[main] => 2
[position] => 1
[width] => 0
[height] => 0
[relations] => LMG-XXX-RO-R1.5
[extension] => jpg
[parentId] =>
[mediaId] => 30298
)
Das problem was ich jetzt noch habe, wenn ich die artikelvariante aufrufe im frontend des shops, bekomme ich alle bilder der einzelnen varianten zusehen.
habt ihr eine idee, wie ich es schaffe, dass er nur die bilder anzeigt, die zur variante passen?
danke schonmal:-)
mfg
dutchy
Hallo dutchy,
Ich nehme zwar nicht an, dass du noch immer keine Lösung hast, jedoch will ich die Antwort für all jene geben, die auf diesen Post stoßen sollten.
Man kann einem Bild bei PUT oder POST einen Array ‚options‘ übergeben, der dann die Options der zugehörigen Varianten enthält.
Wenn du z.B.: dein erstes Bild den Varianten zuteilen willst, die „rot“ sind oder „blau mit inhalt 0,5l“ dann schaut dein Array wiefolgt aus:
[images] => Array (
[0] => Array (
[link] => http://www.xxx.de/bilder/bild-1778.jpg
[description] => description
[main] => 1
[options] => Array(
Array(
Array([name] => ‚0,5 Liter‘),
// AND
Array([name] => ‚blau‘)
),
// OR
Array( Array([name] => ‚rot‘) )
)
)
Da Shopware die Performance verbessern will, muss man nach diesem API Aufruf nochmal einen API Aufruf machen:
PUT /api/generateArticleImages/ID oder PUT /api/generateArticleImages/SKU?useNumberAsId=true
All das findest du auch in der tollen Doku von Shopware: REST API - Examples using the media resource
LG