示例#1
0
 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_Amazon')->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_Amazon')->getObject('Listing_Product', $listingProductArray['id']);
         if ($listingProduct->getSynchronizationTemplate()->getChildObject()->getRelistScheduleType() == Ess_M2ePro_Model_Amazon_Template_Synchronization::RELIST_SCHEDULE_TYPE_THROUGH && !$this->isScheduleThroughNow($listingProduct)) {
             continue;
         }
         if (!$this->_productInspector->isMeetRelistRequirements($listingProduct)) {
             continue;
         }
         $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_RELIST, array());
     }
 }
示例#2
0
 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_Amazon_Product_Dispatcher::ACTION_STOP, array());
     }
     //------------------------------------
     $this->_profiler->saveTimePoint(__METHOD__);
 }
示例#3
0
 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__);
 }
示例#4
0
 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_Amazon::NICK);
     //------------------------------------
     // Filter only needed listings products
     //------------------------------------
     foreach ($changedListingsProducts as $changedListingProduct) {
         /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */
         $listingProduct = Mage::helper('M2ePro/Component_Amazon')->getObject('Listing_Product', $changedListingProduct['id']);
         $this->_productInspector->inspectRevisePriceRequirements($listingProduct);
     }
     //------------------------------------
     $this->_profiler->saveTimePoint(__METHOD__);
 }
示例#5
0
 private function immediatelyNotCheckedProducts()
 {
     $this->_profiler->addTimePoint(__METHOD__, 'Immediately when product was not checked');
     /** @var $collection Varien_Data_Collection_Db */
     $collection = Mage::helper('M2ePro/Component_Amazon')->getCollection('Listing_Product');
     $collection->addFieldToFilter('tried_to_list', Ess_M2ePro_Model_Amazon_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_Amazon_Listing_Product::TRIED_TO_LIST_YES)->save();
         if (!$this->_productInspector->isMeetListRequirements($listingProduct)) {
             continue;
         }
         $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_LIST, array());
     }
     $this->_profiler->saveTimePoint(__METHOD__);
 }
示例#6
0
 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_Amazon::NICK);
     //------------------------------------
     // Filter only needed listings products
     //------------------------------------
     foreach ($changedListingsProducts as $changedListingProduct) {
         /** @var $listingProduct Ess_M2ePro_Model_Listing_Product */
         $listingProduct = Mage::helper('M2ePro/Component_Amazon')->getObject('Listing_Product', $changedListingProduct['id']);
         if (!$this->_productInspector->isMeetStopRequirements($listingProduct)) {
             continue;
         }
         $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_STOP, array());
     }
     //------------------------------------
     $this->_profiler->saveTimePoint(__METHOD__);
 }