コード例 #1
0
 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;
 }