Kategorien übersetzen via API

Guten Tag zusammen,

laut REST Shopware Doku kann man Kategorien übersetzen. Auch wenn das Backend dies (leider) nicht ermöglicht, gibt Shopware diese Möglichkeit an:

REST API - Examples using the category resource   (Example 3)

  

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

Leider funktioniert das bei uns nicht, hat hier jemand Erfahrungen?

Das ist ab 5.5

Ja, aber genau da funktioniert es bei mir ja auch nicht Wink

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.