예제 #1
0
 private function isMeetRelistRequirements(Ess_M2ePro_Model_ListingsProducts $listingProduct)
 {
     // Ebay available status
     //--------------------
     if ($listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isListable() && !$listingProduct->isRelistable()) {
         return false;
     }
     if ($listingProduct->isNotListed() && !$listingProduct->getSynchronizationTemplate()->isRelistListMode()) {
         return false;
     }
     if ($listingProduct->isRelistable() && $this->_ebayActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Connectors_Ebay_Item_Dispatcher::ACTION_RELIST, array())) {
         return false;
     } else {
         if ($listingProduct->isListable() && $this->_ebayActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Connectors_Ebay_Item_Dispatcher::ACTION_LIST, array())) {
             return false;
         }
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingProduct->getListing()->isSynchronizationNowRun()) {
         return false;
     }
     if (!$listingProduct->getSynchronizationTemplate()->isRelistMode()) {
         return false;
     }
     if ($listingProduct->getSynchronizationTemplate()->isRelistFilterUserLock() && $listingProduct->getStatusChanger() == Ess_M2ePro_Model_ListingsProducts::STATUS_CHANGER_USER) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     if ($listingProduct->getSynchronizationTemplate()->isRelistStatusEnabled()) {
         if ($listingProduct->getMagentoProduct()->getStatus() != Mage_Catalog_Model_Product_Status::STATUS_ENABLED) {
             return false;
         }
     }
     if ($listingProduct->getSynchronizationTemplate()->isRelistIsInStock()) {
         if (!$listingProduct->getMagentoProduct()->getStockAvailability()) {
             return false;
         }
     }
     if ($listingProduct->getSynchronizationTemplate()->isRelistWhenQtyHasValue()) {
         $result = false;
         $productQty = (int) $listingProduct->getQty(true);
         $typeQty = (int) $listingProduct->getSynchronizationTemplate()->getRelistWhenQtyHasValueType();
         $minQty = (int) $listingProduct->getSynchronizationTemplate()->getRelistWhenQtyHasValueMin();
         $maxQty = (int) $listingProduct->getSynchronizationTemplate()->getRelistWhenQtyHasValueMax();
         if ($typeQty == Ess_M2ePro_Model_SynchronizationsTemplates::RELIST_QTY_LESS && $productQty <= $minQty) {
             $result = true;
         }
         if ($typeQty == Ess_M2ePro_Model_SynchronizationsTemplates::RELIST_QTY_MORE && $productQty >= $minQty) {
             $result = true;
         }
         if ($typeQty == Ess_M2ePro_Model_SynchronizationsTemplates::RELIST_QTY_BETWEEN && $productQty >= $minQty && $productQty <= $maxQty) {
             $result = true;
         }
         if (!$result) {
             return false;
         }
     }
     //--------------------
     return true;
 }