ich stehe vor folgendem Problem:
Über die Rest-API lege ich einen neuen Artikel an. Im zweiten Schritt lege ich für den eben angelegten Artikel die Übersetzungen für die Sprachshops an.
Die Übersetzung wird ohne Fehler angelegt, allerdings werden die konfigurierten Freitextfelder nicht übersetzt.
Um diese ‘attr2’ geht es. Ich habe schon verschiedene Kombinationen probiert, u.a. auch die gleiche Verschachtelung beim Anlegen oder “en_attr2” oder “attr2_2” etc. Die Übersetzung kommt einfach nicht an.
die Attribute hängen nicht an der Article Resource sondern an der Detail Resource: REST API - Models
(Also nicht am Shopware\Models\Article\Article Model sondern Shopware\Models\Article\Detail )
ja, beim Erzeugen eines neuen Artikels über die API kommen die Attribute verschachtelt unter ‚mainDetail‘.
Bei den Translations scheint der Aufbau aber nicht zu greifen. Auch habe ich schon versucht die Resource direkt anzuzsprechen und bekomme zwar ein „Ok“ als Rückmeldung, übersetzt sind die Attribute aber trotzdem nicht.
$api->post('translations', [
'key' => 3251, // muss die ID aus s_articles_detail sein nicht s_articles !!!
'type' => 'variant',// hier variant benutzen
'shopId' => 2, // subshop ID
'data' => [
'attr2' => 'Translated',
]
]);
Ich habe mit Adminer nachgeschaut. Die gewünschten Übersetzungen laden in der Tabelle s_articles_translations (Beschreibungen, Keywords und attribute 1-6).
Der neue Artikel bekommt die ID 3253 in (s_articles).
Die Details zum Artikel stehen in (s_articles_details) mit ID 3578 und articleID 3523.
Die Attribute zum Artikel stehen in (s_articles_attributes) mit ID 3573 und articleID 3523 und articleDetailID 3578
In (s_articles_translations) finden sich genau die Daten, die ich via REST API übertragen habe.
ID => 6
articleID => 3253
languageID => 2
…
attr2 => Translated
Im Sprachshop werden die Daten aus der Translations verwendet, jedoch nicht die Attribute 1-6, obwohl diese Daten gefüllt sind.
Und jetzt wird es merkwürdig:
Ich kann über das Backend die Sprachversion vom Artikel ändern -> die Daten landen in der s_articles_attributes.
Ändere ich den Datensatz in s_articles_attributes kommen diese Änderungen nicht im Backend/Frontend an.
Die s_articles_translations scheint ein Backup zu sein. Die verwendeten Übersetzungen im Sprachshop scheinen noch woanders zu stehen.
Das würde erklären, warum man offenbar die Attribute nicht direkt mit übersetzen kann:
Hast du (oder hat jemand) eine Idee, wo ich gucken kann? In s_articles, s_articles_details und s_articles_attributes stehen immer nur die deutschen Werte drin.