public function executeAction($action, $percentsFrom, $percentsTo) { $this->setPercents($percentsFrom); $products = $this->getActionProducts($action); if (empty($products)) { return array(); } $totalProductsCount = count($products); $processedProductsCount = 0; $percentsOneProduct = ($percentsTo - $percentsFrom) / $totalProductsCount; $results = array(); foreach (array_chunk($products, $this->getMaxProductsPerStep()) as $stepProducts) { $countString = Mage::helper('M2ePro')->__('%perStep% from %total% Product(s).', count($stepProducts), $totalProductsCount); if (count($stepProducts) < 10) { $productsIds = array(); foreach ($stepProducts as $product) { $productsIds[] = $product->getProductId(); } $productsIds = implode('", "', $productsIds); $countString = Mage::helper('M2ePro')->__('Product(s) with ID(s)') . " \"{$productsIds}\"."; } $this->setStatus(Ess_M2ePro_Model_Listing_Product::getActionTitle($action) . ' ' . $countString . ' ' . Mage::helper('M2ePro')->__('Please wait...')); $results[] = Mage::getModel('M2ePro/' . $this->getConnectorModel())->process($action, $stepProducts, array('status_changer' => Ess_M2ePro_Model_Listing_Product::STATUS_CHANGER_SYNCH)); $processedProductsCount += count($stepProducts); $tempPercents = $percentsFrom + $processedProductsCount * $percentsOneProduct; $this->setPercents($tempPercents > $percentsTo ? $percentsTo : $tempPercents); $this->activate(); } $this->setPercents($percentsTo); return $results; }
public function executeAction($action, $percentsFrom, $percentsTo) { $this->setPercents($percentsFrom); $results = array(); $combinations = $this->getCombinations($action); $totalProductsCount = 0; $processedProductsCount = 0; foreach ($combinations as $combination) { $totalProductsCount += count($combination['products']); } if (!$totalProductsCount) { return $results; } $percentsOneProduct = ($percentsTo - $percentsFrom) / $totalProductsCount; foreach ($combinations as $combination) { $combination['params']['status_changer'] = Ess_M2ePro_Model_Listing_Product::STATUS_CHANGER_SYNCH; foreach (array_chunk($combination['products'], $this->getMaxProductsPerStep()) as $products) { $productsCount = count($products); $countString = $productsCount . ' ' . Mage::helper('M2ePro')->__('Product(s).'); if ($productsCount < 10) { $productsIds = array(); foreach ($products as $product) { $productsIds[] = $product->getData('product_id'); } $productsIds = implode('", "', $productsIds); $countString = Mage::helper('M2ePro')->__('Product(s) with ID(s)') . " \"{$productsIds}\"."; } $this->setStatus(Ess_M2ePro_Model_Listing_Product::getActionTitle($action) . ' ' . $countString . ' ' . Mage::helper('M2ePro')->__('Please wait...')); $results[] = Mage::getModel('M2ePro/' . $this->getConnectorModel())->process($action, $products, $combination['params']); $processedProductsCount += count($products); $tempPercents = $percentsFrom + $processedProductsCount * $percentsOneProduct; $this->setPercents($tempPercents > $percentsTo ? $percentsTo : $tempPercents); $this->activate(); } } $this->setPercents($percentsTo); return $results; }