Esempio n. 1
0
 private function isMeetStopRequirements(Ess_M2ePro_Model_Listing_Other $listingOther)
 {
     // eBay available status
     //--------------------
     if (!$listingOther->isListed()) {
         return false;
     }
     if (!$listingOther->isStoppable()) {
         return false;
     }
     if (is_null($listingOther->getProductId())) {
         return false;
     }
     if ($this->getRunner()->isExistProduct($listingOther, Ess_M2ePro_Model_Listing_Product::ACTION_STOP, array())) {
         return false;
     }
     //--------------------
     /** @var $ebaySynchronizationTemplate Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization */
     $ebaySynchronizationTemplate = $listingOther->getChildObject()->getSynchronizationModel();
     // Correct synchronization
     //--------------------
     if (!$ebaySynchronizationTemplate->isMode()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     if ($ebaySynchronizationTemplate->isStopStatusDisabled()) {
         if (!$listingOther->getMagentoProduct()->isStatusEnabled()) {
             return true;
         }
     }
     if ($ebaySynchronizationTemplate->isStopOutOfStock()) {
         if (!$listingOther->getMagentoProduct()->isStockAvailability()) {
             return true;
         }
     }
     if ($ebaySynchronizationTemplate->isStopWhenQtyHasValue()) {
         $productQty = $listingOther->getChildObject()->getMappedQty();
         if (!is_null($productQty)) {
             $typeQty = (int) $ebaySynchronizationTemplate->getStopWhenQtyHasValueType();
             $minQty = (int) $ebaySynchronizationTemplate->getStopWhenQtyHasValueMin();
             $maxQty = (int) $ebaySynchronizationTemplate->getStopWhenQtyHasValueMax();
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::STOP_QTY_LESS && $productQty <= $minQty) {
                 return true;
             }
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::STOP_QTY_MORE && $productQty >= $minQty) {
                 return true;
             }
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::STOP_QTY_BETWEEN && $productQty >= $minQty && $productQty <= $maxQty) {
                 return true;
             }
         }
     }
     //--------------------
     return false;
 }
Esempio n. 2
0
 private function isMeetStopRequirements(Ess_M2ePro_Model_Listing_Other $listingOther)
 {
     // eBay available status
     //--------------------
     if (!$listingOther->isListed()) {
         return false;
     }
     if (!$listingOther->isStoppable()) {
         return false;
     }
     if (is_null($listingOther->getProductId())) {
         return false;
     }
     if ($this->_runnerActions->isExistProductAction($listingOther, Ess_M2ePro_Model_Connector_Server_Ebay_Item_Dispatcher::ACTION_STOP, array())) {
         return false;
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingOther->getAccount()->getChildObject()->isOtherListingsMappedSynchronizationEnabled()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     if ($listingOther->getChildObject()->getSynchronizationModel()->isStopStatusDisabled()) {
         if ($listingOther->getMagentoProduct()->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) {
             return true;
         }
     }
     if ($listingOther->getChildObject()->getSynchronizationModel()->isStopOutOfStock()) {
         if (!$listingOther->getMagentoProduct()->getStockAvailability()) {
             return true;
         }
     }
     if ($listingOther->getChildObject()->getSynchronizationModel()->isStopWhenQtyHasValue()) {
         $productQty = $listingOther->getChildObject()->getMappedQty();
         if (!is_null($productQty)) {
             /** @var $ebaySynchronizationTemplate Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization */
             $ebaySynchronizationTemplate = $listingOther->getChildObject()->getSynchronizationModel();
             $typeQty = (int) $ebaySynchronizationTemplate->getStopWhenQtyHasValueType();
             $minQty = (int) $ebaySynchronizationTemplate->getStopWhenQtyHasValueMin();
             $maxQty = (int) $ebaySynchronizationTemplate->getStopWhenQtyHasValueMax();
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::STOP_QTY_LESS && $productQty <= $minQty) {
                 return true;
             }
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::STOP_QTY_MORE && $productQty >= $minQty) {
                 return true;
             }
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::STOP_QTY_BETWEEN && $productQty >= $minQty && $productQty <= $maxQty) {
                 return true;
             }
         }
     }
     //--------------------
     return false;
 }
 /**
  * @param Ess_M2ePro_Model_Listing_Other $listingOther
  * @return bool
  * @throws Ess_M2ePro_Model_Exception_Logic
  */
 protected function isMeetReviseGeneralRequirements(Ess_M2ePro_Model_Listing_Other $listingOther)
 {
     if (!$listingOther->isListed() || !$listingOther->isRevisable()) {
         return false;
     }
     if (is_null($listingOther->getProductId())) {
         return false;
     }
     /** @var Ess_M2ePro_Model_Ebay_Listing_Other $ebayListingOther */
     $ebayListingOther = $listingOther->getChildObject();
     $ebaySynchronizationTemplate = $ebayListingOther->getSynchronizationModel();
     if (!$ebaySynchronizationTemplate->isMode()) {
         return false;
     }
     return true;
 }
Esempio n. 4
0
 private function isMeetRelistRequirements(Ess_M2ePro_Model_Listing_Other $listingOther)
 {
     // eBay available status
     //--------------------
     if ($listingOther->isListed()) {
         return false;
     }
     if (!$listingOther->isRelistable()) {
         return false;
     }
     if (is_null($listingOther->getProductId())) {
         return false;
     }
     if ($this->_runnerActions->isExistProductAction($listingOther, Ess_M2ePro_Model_Connector_Ebay_Item_Dispatcher::ACTION_RELIST, array())) {
         return false;
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingOther->getAccount()->getChildObject()->isOtherListingsMappedSynchronizationEnabled()) {
         return false;
     }
     if (!$listingOther->getChildObject()->getSynchronizationModel()->isRelistMode()) {
         return false;
     }
     if ($listingOther->getChildObject()->getSynchronizationModel()->isRelistFilterUserLock() && $listingOther->getStatusChanger() == Ess_M2ePro_Model_Listing_Product::STATUS_CHANGER_USER) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     if ($listingOther->getChildObject()->getSynchronizationModel()->isRelistStatusEnabled()) {
         if ($listingOther->getMagentoProduct()->getStatus() != Mage_Catalog_Model_Product_Status::STATUS_ENABLED) {
             return false;
         }
     }
     if ($listingOther->getChildObject()->getSynchronizationModel()->isRelistIsInStock()) {
         if (!$listingOther->getMagentoProduct()->getStockAvailability()) {
             return false;
         }
     }
     if ($listingOther->getChildObject()->getSynchronizationModel()->isRelistWhenQtyHasValue()) {
         $productQty = $listingOther->getChildObject()->getMappedQty();
         if (!is_null($productQty)) {
             $result = false;
             /** @var $ebaySynchronizationTemplate Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization */
             $ebaySynchronizationTemplate = $listingOther->getChildObject()->getSynchronizationModel();
             $typeQty = (int) $ebaySynchronizationTemplate->getRelistWhenQtyHasValueType();
             $minQty = (int) $ebaySynchronizationTemplate->getRelistWhenQtyHasValueMin();
             $maxQty = (int) $ebaySynchronizationTemplate->getRelistWhenQtyHasValueMax();
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::RELIST_QTY_LESS && $productQty <= $minQty) {
                 $result = true;
             }
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::RELIST_QTY_MORE && $productQty >= $minQty) {
                 $result = true;
             }
             if ($typeQty == Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization::RELIST_QTY_BETWEEN && $productQty >= $minQty && $productQty <= $maxQty) {
                 $result = true;
             }
             if (!$result) {
                 return false;
             }
         }
     }
     //--------------------
     return true;
 }
Esempio n. 5
0
 private function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Other $listingOther)
 {
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true));
     //--------------------
     // eBay available status
     //--------------------
     if (!$listingOther->isListed()) {
         return false;
     }
     if (!$listingOther->isRevisable()) {
         return false;
     }
     if (is_null($listingOther->getProductId())) {
         return false;
     }
     if ($this->_runnerActions->isExistProductAction($listingOther, Ess_M2ePro_Model_Connector_Server_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams)) {
         return false;
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingOther->getAccount()->getChildObject()->isOtherListingsMappedSynchronizationEnabled()) {
         return false;
     }
     if (!$listingOther->getChildObject()->getSynchronizationModel()->isReviseWhenChangePrice()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $ebayListingOther = $listingOther->getChildObject();
     $currentPrice = $ebayListingOther->getMappedPrice();
     if (is_null($currentPrice)) {
         return false;
     }
     $onlinePrice = $ebayListingOther->getOnlinePrice();
     if ($currentPrice != $onlinePrice) {
         $this->_runnerActions->setProduct($listingOther, Ess_M2ePro_Model_Connector_Server_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams);
         return true;
     }
     //--------------------
     return false;
 }
Esempio n. 6
0
 private function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Other $listingOther)
 {
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true));
     //--------------------
     // eBay available status
     //--------------------
     if (!$listingOther->isListed()) {
         return false;
     }
     if (!$listingOther->isRevisable()) {
         return false;
     }
     if (is_null($listingOther->getProductId())) {
         return false;
     }
     if ($this->getRunner()->isExistProduct($listingOther, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams)) {
         return false;
     }
     //--------------------
     /* @var $ebaySynchronizationTemplate Ess_M2ePro_Model_Ebay_Listing_Other_Synchronization */
     $ebaySynchronizationTemplate = $listingOther->getChildObject()->getSynchronizationModel();
     // Correct synchronization
     //--------------------
     if (!$ebaySynchronizationTemplate->isMode()) {
         return false;
     }
     if (!$ebaySynchronizationTemplate->isReviseWhenChangePrice()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $ebayListingOther = $listingOther->getChildObject();
     $currentPrice = $ebayListingOther->getMappedPrice();
     if (is_null($currentPrice)) {
         return false;
     }
     $onlinePrice = $ebayListingOther->getOnlinePrice();
     if ($currentPrice != $onlinePrice) {
         $this->getRunner()->addProduct($listingOther, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
         return true;
     }
     //--------------------
     return false;
 }