Ermittlung der "besten" Variante auf der Detailseite falsch

Bei einem Produkt mit einer nicht verfügbaren Variante mit dem günstigsten Preis, wird diese auf der Detailseite vorausgewählt - anstatt die günstigste verfügbare Variante.

Es handelt sich um einen kleinen Sortier-Bug in src/Core/Content/Product/SalesChannel/Detail/ProductDetailRoute.php:

Anstatt

$criteria = (new Criteria())
            ->addFilter(new EqualsFilter('product.parentId', $productId))
            ->addSorting(new FieldSorting('product.price'))
            ->addSorting(new FieldSorting('product.available'))
            ->setLimit(1);

müsste es heißen

$criteria = (new Criteria())
            ->addFilter(new EqualsFilter('product.parentId', $productId))
            ->addSorting(new FieldSorting('product.price'))
            ->addSorting(new FieldSorting('product.available', 'DESC'))
            ->setLimit(1);

Komisch, dass das noch niemand aufgefallen ist. Wir haben einen Pull Request erstellt: Fix Change sorting of availability for best variant calculation by areanet-schmid · Pull Request #2925 · shopware/platform · GitHub