diff --git a/src/app/code/community/Smile/VirtualCategories/Model/Observer.php b/src/app/code/community/Smile/VirtualCategories/Model/Observer.php index 41ad571f..2d50dbe6 100644 --- a/src/app/code/community/Smile/VirtualCategories/Model/Observer.php +++ b/src/app/code/community/Smile/VirtualCategories/Model/Observer.php @@ -127,10 +127,16 @@ public function saveProductsPositions(Varien_Event_Observer $observer) $filteredPositions = array_filter($positions, 'is_numeric'); $resourceModel = Mage::getResourceModel("smile_virtualcategories/catalog_virtualCategory_product_position"); $previousProducts = $resourceModel->getProductIdsByCategory($category); + $previousPosition = $resourceModel->getByProductIds($previousProducts); + foreach ($previousPosition as $position) { + if (!isset($filteredPositions[$position["product_id"]])) { + $filteredPositions[$position["product_id"]] = $position['position']; + } + } $resourceModel->saveProductsPositions($filteredPositions, $category); - $productIdsToReindex = array_unique(array_merge($previousProducts, array_keys($filteredPositions))); + $productIdsToReindex = array_keys($filteredPositions); if (empty($productIdsToReindex)) { return $this;