diff --git a/app/code/Magento/Catalog/Model/ProductLink/CollectionProvider.php b/app/code/Magento/Catalog/Model/ProductLink/CollectionProvider.php index e4fbd846ffde5..93e3766eb003e 100644 --- a/app/code/Magento/Catalog/Model/ProductLink/CollectionProvider.php +++ b/app/code/Magento/Catalog/Model/ProductLink/CollectionProvider.php @@ -48,9 +48,21 @@ public function getCollection(\Magento\Catalog\Model\Product $product, $type) $products = $this->providers[$type]->getLinkedProducts($product); $converter = $this->converterPool->getConverter($type); $output = []; + $sorterItems = []; foreach ($products as $item) { $output[$item->getId()] = $converter->convert($item); } - return $output; + foreach ($output as $item) { + $itemPosition = (int)$item['position']; + while (true) { + if (!isset($sorterItems[$itemPosition])) { + break; + } + $itemPosition += 1; + } + $sorterItems[$itemPosition] = $item; + } + ksort($sorterItems); + return $sorterItems; } }