SW 5.5 Attribute Übersetzung für Kategorien per API funkioniert nicht

Hallo,

in der 5.5 kann man ja endlich die Kategorien übersetzen. Das Pflegen per API funktioniert soweit, mit Ausnahme der Attribute Felder!

Wenn ich dem Beispiel folge:

Example 3 - Create a category with translationAnchor link for: example 3 create a category with translation

$categoryData = [
    'name' => 'Test category',
    'attribute' => [
        1 => "Attr1",
    ],
    'translations' => [
        2 => [
            'shopId' => 2,
            'description' => 'Test category, english translation',
            '__attribute_attribute1' => 'Attr1 English'
        ]
    ]
];

Quelle:
REST API - Examples using the category resource
 

Wird zwar das Attribut tatsächlich übersetzt, aber anscheinend nicht korrrekt in der DB gespeichert. Wenn man auf die Kugel beim Freitextfeld klickt, sieht man die Übersetzung. Klickt man aber auf die Kugel Bezeichnung oder Überschrift etc, sieht man alle Übersetzungen der Kategorie, allerdings wird hier das Freifeld eben nicht mit der Übersetzung angezeigt.

In der DB Tabelle s_core_translations wird der Eintrag auch anders gespeichert, wenn man die Übersetzung im Backend manuell vornimmt.

Liegt es am Syntax wie die Übersetzung übergeben wird oder hat jemand eine Idee wo ich noch suchen kann?

Vielen Dank und Happy Day!

Habe einen Weg gefunden.

In der \Shopware\Components\Api\Resource\Category.php wird in der Funktion prepareCategoryData

if (!empty($params['attribute'])) {
            foreach ($params['attribute'] as $key => $value) {
                if (is_numeric($key)) {
                    $params['attribute']['attribute' . $key] = $value;
                    unset($params[$key]);
                } 
            }
        }

unterbunden, dass Attribute mit eigenem Namen per REST API befüllt werden können.

Umgekehrt verhindert aber die Methode writeTranslations das Übersetzen von Attribute mit eigenem Namen!

Daher habe ich die REST API erweitert und nutze nun einfach Attribute mit eigenem Namen, das klappt dann.