private function getVariationsStockAvailabilities(array $variationsProductsIds) { $productsIds = array(); foreach ($variationsProductsIds as $variationProductsIds) { foreach ($variationProductsIds as $variationProductId) { $productsIds[] = $variationProductId; } } $productsIds = array_values(array_unique($productsIds)); $catalogInventoryTable = Mage::getSingleton('core/resource')->getTableName('cataloginventory_stock_item'); $select = $this->_getReadAdapter()->select()->from(array('cisi' => $catalogInventoryTable), array('product_id', 'is_in_stock', 'manage_stock', 'use_config_manage_stock'))->where('cisi.product_id IN (' . implode(',', $productsIds) . ')'); $stocks = $select->query()->fetchAll(); $variationsProductsStocks = array(); foreach ($variationsProductsIds as $key => $variationProductsIds) { foreach ($variationProductsIds as $id) { $count = count($stocks); for ($i = 0; $i < $count; $i++) { if ($stocks[$i]['product_id'] == $id) { $stockAvailability = Ess_M2ePro_Model_Magento_Product::calculateStockAvailability($stocks[$i]['is_in_stock'], $stocks[$i]['manage_stock'], $stocks[$i]['use_config_manage_stock']); $variationsProductsStocks[$key][] = $stockAvailability; break; } } } } $variationsStocks = array(); foreach ($variationsProductsStocks as $key => $variationProductsStocks) { $variationsStocks[$key] = min($variationProductsStocks); } return $variationsStocks; }