MySQL FIELD in OrderBy in SortingHandler

Hallo zusammen,

mein Anliegen ist ähnlich, wie unter https://forum.shopware.com/discussion/41144/doctrine-orderby formuliert, nur dass ich keinen Fehlermeldung erhalte.

In meinem SortingHandler, der in der services.xml registriert ist und der auch aufgerufen wird, verwende ich folgenden Code:

  

class CategorySortingHandler implements SortingHandlerInterface {

    public function supportsSorting(SortingInterface $sorting) {
        return $sorting instanceof CategorySorting;
    }

    public function generateSorting(SortingInterface $sorting, QueryBuilder $query, ShopContextInterface $context) {

        $suffix = '_cs';
        
        $query
            ->innerJoin(
                'product',
                's_articles_categories',
                "sArticlesCategories{$suffix}",
                "product.id = sArticlesCategories{$suffix}.articleID"
            )
            ->addOrderBy(
                "FIELD(sArticlesCategories{$suffix}.categoryID, :categoryId{$suffix})",
                $sorting->getDirection()
            );

        $query->setParameter(":categoryId{$suffix}", $sorting->getField());

        error_log(date('YmdHis').' '. __METHOD__.' $query: '. var_export($query->getSQL(), 1)."\n", 3, Shopware()->DocPath() . '/error.log');
    }
}

 

Der Aufruf erfolgt so: $criteria->addSorting(new CategorySorting($catId, ‚DESC‘));

Jedoch erfolgt keine Sortierung nach der Kategorie-ID. Was habe ich übersehen?

Ich verwende Shopware 5.6.2

Vielen Dank im Voraus.