Beispiel #1
0
 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;
 }
Beispiel #2
0
 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;
 }