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->isMeetStopRequirements($listingProduct)) { continue; } $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Buy_Product_Dispatcher::ACTION_STOP, array()); } //------------------------------------ $this->_profiler->saveTimePoint(__METHOD__); }
private function executePriceChanged() { $this->_profiler->addTimePoint(__METHOD__, 'Update price'); // 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) { $this->_productInspector->inspectRevisePriceRequirements($listingProduct); } //------------------------------------ $this->_profiler->saveTimePoint(__METHOD__); }
private function executePriceChanged() { $this->_profiler->addTimePoint(__METHOD__, 'Update price'); // Get changed listings products //------------------------------------ $changedListingsProducts = Mage::getModel('M2ePro/Listing_Product')->getChangedItemsByAttributesWithOptions(array(Ess_M2ePro_Model_ProductChange::UPDATE_ATTRIBUTE_CODE), Ess_M2ePro_Helper_Component_Buy::NICK); //------------------------------------ // Filter only needed listings products //------------------------------------ foreach ($changedListingsProducts as $changedListingProduct) { /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */ $listingProduct = Mage::helper('M2ePro/Component_Buy')->getObject('Listing_Product', $changedListingProduct['id']); $this->_productInspector->inspectRevisePriceRequirements($listingProduct); } //------------------------------------ $this->_profiler->saveTimePoint(__METHOD__); }
private function immediatelyNotCheckedProducts() { $this->_profiler->addTimePoint(__METHOD__, 'Immediately when product was not checked'); /** @var $collection Varien_Data_Collection_Db */ $collection = Mage::helper('M2ePro/Component_Buy')->getCollection('Listing_Product'); $collection->addFieldToFilter('tried_to_list', Ess_M2ePro_Model_Buy_Listing_Product::TRIED_TO_LIST_NO); $collection->getSelect()->limit(100); $listingsProducts = $collection->getItems(); foreach ($listingsProducts as $listingProduct) { /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */ $listingProduct->setData('tried_to_list', Ess_M2ePro_Model_Buy_Listing_Product::TRIED_TO_LIST_YES)->save(); if (!$this->_productInspector->isMeetListRequirements($listingProduct)) { continue; } $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Buy_Connector_Product_Dispatcher::ACTION_LIST, array()); } $this->_profiler->saveTimePoint(__METHOD__); }
private function immediatelyChangedProducts() { $this->_profiler->addTimePoint(__METHOD__, 'Immediately when product was changed'); // Get changed listings products //------------------------------------ $changedListingsProducts = Mage::getModel('M2ePro/Listing_Product')->getChangedItemsByAttributesWithOptions(array(Ess_M2ePro_Model_ProductChange::UPDATE_ATTRIBUTE_CODE), Ess_M2ePro_Helper_Component_Buy::NICK); //------------------------------------ // Filter only needed listings products //------------------------------------ foreach ($changedListingsProducts as $changedListingProduct) { /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */ $listingProduct = Mage::helper('M2ePro/Component_Buy')->getObject('Listing_Product', $changedListingProduct['id']); if (!$this->_productInspector->isMeetStopRequirements($listingProduct)) { continue; } $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Buy_Connector_Product_Dispatcher::ACTION_STOP, array()); } //------------------------------------ $this->_profiler->saveTimePoint(__METHOD__); }