private function scheduledListings(&$listings) { $listingsIds = array(); foreach ($listings as &$listing) { /** @var $listing Ess_M2ePro_Model_Listing */ if (!$listing->isSynchronizationNowRun()) { continue; } $listingsIds[] = (int) $listing->getId(); } if (count($listingsIds) <= 0) { return; } $listingsProductsCollection = Mage::helper('M2ePro/Component_Buy')->getModel('Listing_Product')->getCollection(); $listingsProductsCollection->getSelect()->where('`status` != ' . (int) Ess_M2ePro_Model_Listing_Product::STATUS_LISTED); $listingsProductsCollection->getSelect()->where('`listing_id` IN (' . implode(',', $listingsIds) . ')'); $listingsProductsArray = $listingsProductsCollection->toArray(); if ((int) $listingsProductsArray['totalRecords'] <= 0) { return; } foreach ($listingsProductsArray['items'] as $listingProductArray) { /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */ $listingProduct = Mage::helper('M2ePro/Component_Buy')->getObject('Listing_Product', $listingProductArray['id']); if ($listingProduct->getSynchronizationTemplate()->getChildObject()->getRelistScheduleType() == Ess_M2ePro_Model_Buy_Template_Synchronization::RELIST_SCHEDULE_TYPE_THROUGH && !$this->isScheduleThroughNow($listingProduct)) { continue; } if (!$this->_productInspector->isMeetRelistRequirements($listingProduct)) { continue; } $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Buy_Connector_Product_Dispatcher::ACTION_RELIST, array()); } }
private function immediatelyChangedProducts() { $this->_profiler->addTimePoint(__METHOD__, 'Immediately when product was changed'); // Get changed listings products //------------------------------------ $changedListingsProducts = $this->getChangedInstances(array(Ess_M2ePro_Model_ProductChange::UPDATE_ATTRIBUTE_CODE)); //------------------------------------ // Filter only needed listings products //------------------------------------ /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */ foreach ($changedListingsProducts as $listingProduct) { if (!$this->_productInspector->isMeetRelistRequirements($listingProduct)) { continue; } $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Buy_Product_Dispatcher::ACTION_RELIST, array()); } //------------------------------------ $this->_profiler->saveTimePoint(__METHOD__); }