Beispiel #1
0
 public function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     // Is checked before?
     //--------------------
     if (in_array($listingProduct->getId(), $this->_checkedPriceListingsProductsIds)) {
         return false;
     } else {
         $this->_checkedPriceListingsProductsIds[] = $listingProduct->getId();
     }
     //--------------------
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true));
     //--------------------
     // Play available status
     //--------------------
     if (!$listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($this->_runnerActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Connector_Server_Play_Product_Dispatcher::ACTION_REVISE, $actionParams)) {
         return false;
     }
     if ($listingProduct->isLockedObject(NULL) || $listingProduct->isLockedObject('in_action')) {
         return false;
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingProduct->getChildObject()->getPlaySynchronizationTemplate()->isReviseWhenChangePrice()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $onlinePriceGbr = $listingProduct->getChildObject()->getOnlinePriceGbr();
     $currentPriceGbr = $listingProduct->getChildObject()->getPriceGbr(true);
     if ($currentPriceGbr != $onlinePriceGbr) {
         $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Server_Play_Product_Dispatcher::ACTION_REVISE, $actionParams);
         return true;
     }
     $onlinePriceEuro = $listingProduct->getChildObject()->getOnlinePriceEuro();
     $currentPriceEuro = $listingProduct->getChildObject()->getPriceEuro(true);
     if ($onlinePriceEuro != $currentPriceEuro) {
         $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Server_Play_Product_Dispatcher::ACTION_REVISE, $actionParams);
         return true;
     }
     //--------------------
     return false;
 }
 /**
  * @param Ess_M2ePro_Model_Listing_Product $listingProduct
  * @return bool
  * @throws Ess_M2ePro_Model_Exception
  * @throws Ess_M2ePro_Model_Exception_Logic
  */
 public function isMeetReviseGeneralRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     /** @var Ess_M2ePro_Model_Amazon_Listing_Product $amazonListingProduct */
     $amazonListingProduct = $listingProduct->getChildObject();
     if (!$amazonListingProduct->isAfnChannel() && (!$listingProduct->isListed() || $listingProduct->isBlocked())) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     $variationManager = $amazonListingProduct->getVariationManager();
     if ($variationManager->isVariationProduct()) {
         if ($variationManager->isRelationParentType()) {
             return false;
         }
         if ($variationManager->isPhysicalUnit() && !$variationManager->getTypeModel()->isVariationProductMatched()) {
             return false;
         }
     }
     if ($listingProduct->isLockedObject('in_action')) {
         return false;
     }
     return true;
 }
Beispiel #3
0
 private function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     // Is checked before?
     //--------------------
     if (in_array($listingProduct->getId(), $this->_checkedPriceListingsProductsIds)) {
         return false;
     } else {
         $this->_checkedPriceListingsProductsIds[] = $listingProduct->getId();
     }
     //--------------------
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true, 'variations' => true));
     //--------------------
     // eBay available status
     //--------------------
     if (!$listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($this->_runnerActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Connector_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams)) {
         return false;
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingProduct->getChildObject()->isSetCategoryTemplate()) {
         return false;
     }
     if (!$listingProduct->getChildObject()->getEbaySynchronizationTemplate()->isReviseWhenChangePrice()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $isVariationProduct = $listingProduct->getChildObject()->isVariationMode() && count($listingProduct->getVariations()) > 0;
     if (!$isVariationProduct) {
         $hasChange = false;
         //---------
         $currentPrice = $listingProduct->getChildObject()->getBuyItNowPrice();
         $onlinePrice = $listingProduct->getChildObject()->getOnlineBuyItNowPrice();
         if ($currentPrice != $onlinePrice) {
             $hasChange = true;
         }
         if ($hasChange) {
             $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams);
             return true;
         }
         //---------
         if ($listingProduct->getChildObject()->isListingTypeAuction()) {
             //---------
             $currentPrice = $listingProduct->getChildObject()->getStartPrice();
             $onlinePrice = $listingProduct->getChildObject()->getOnlineStartPrice();
             if ($currentPrice != $onlinePrice) {
                 $hasChange = true;
             }
             if ($hasChange) {
                 $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams);
                 return true;
             }
             //---------
             $currentPrice = $listingProduct->getChildObject()->getReservePrice();
             $onlinePrice = $listingProduct->getChildObject()->getOnlineReservePrice();
             if ($currentPrice != $onlinePrice) {
                 $hasChange = true;
             }
             if ($hasChange) {
                 $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams);
                 return true;
             }
             //---------
         }
     } else {
         $variations = $listingProduct->getVariations(true);
         foreach ($variations as $variation) {
             $currentPrice = $variation->getChildObject()->getPrice();
             $onlinePrice = $variation->getChildObject()->getOnlinePrice();
             if ($currentPrice != $onlinePrice) {
                 $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Ebay_Item_Dispatcher::ACTION_REVISE, $actionParams);
                 return true;
             }
         }
     }
     //--------------------
     return false;
 }
Beispiel #4
0
 public function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     // Is checked before?
     //--------------------
     if (in_array($listingProduct->getId(), $this->_checkedPriceListingsProductsIds)) {
         return false;
     } else {
         $this->_checkedPriceListingsProductsIds[] = $listingProduct->getId();
     }
     //--------------------
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true));
     //--------------------
     // Amazon available status
     //--------------------
     if (!$listingProduct->isListed() || $listingProduct->isBlocked()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($this->getRunner()->isExistProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams)) {
         return false;
     }
     if ($listingProduct->isLockedObject(NULL) || $listingProduct->isLockedObject('in_action')) {
         return false;
     }
     //--------------------
     /* @var $amazonSynchronizationTemplate Ess_M2ePro_Model_Amazon_Template_Synchronization */
     $amazonSynchronizationTemplate = $listingProduct->getChildObject()->getAmazonSynchronizationTemplate();
     // Correct synchronization
     //--------------------
     if (!$amazonSynchronizationTemplate->isReviseWhenChangePrice()) {
         return false;
     }
     if ($listingProduct->getChildObject()->isVariationProduct() && !$listingProduct->getChildObject()->isVariationMatched()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $currentPrice = $listingProduct->getChildObject()->getPrice();
     $onlinePrice = $listingProduct->getChildObject()->getOnlinePrice();
     if ($currentPrice != $onlinePrice) {
         $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
         return true;
     }
     $currentSalePriceInfo = $listingProduct->getChildObject()->getSalePriceInfo();
     $currentSalePrice = $currentSalePriceInfo['price'];
     $onlineSalePrice = $listingProduct->getChildObject()->getOnlineSalePrice();
     if (is_null($currentSalePrice) && !is_null($onlineSalePrice) || !is_null($currentSalePrice) && is_null($onlineSalePrice) || (double) $currentSalePrice != (double) $onlineSalePrice) {
         $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
         return true;
     }
     //--------------------
     //--------------------
     $currentSalePriceStartDate = $currentSalePriceInfo['start_date'];
     $onlineSalePriceStartDate = $listingProduct->getChildObject()->getOnlineSalePriceStartDate();
     $currentSalePriceEndDate = $currentSalePriceInfo['end_date'];
     $onlineSalePriceEndDate = $listingProduct->getChildObject()->getOnlineSalePriceEndDate();
     if ($currentSalePriceStartDate != $onlineSalePriceStartDate || $currentSalePriceEndDate != $onlineSalePriceEndDate) {
         $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
         return true;
     }
     //--------------------
     return false;
 }
 /**
  * @param Ess_M2ePro_Model_Listing_Product $listingProduct
  * @return bool
  * @throws Ess_M2ePro_Model_Exception_Logic
  */
 public function isMeetReviseGeneralRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     if (!$listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isRevisable() || $listingProduct->isHidden()) {
         return false;
     }
     /** @var Ess_M2ePro_Model_Ebay_Listing_Product $ebayListingProduct */
     $ebayListingProduct = $listingProduct->getChildObject();
     if (!$ebayListingProduct->isSetCategoryTemplate()) {
         return false;
     }
     return true;
 }
 public function isMeetReviseGeneralRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     if (!$listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($listingProduct->isLockedObject('in_action')) {
         return false;
     }
     /** @var Ess_M2ePro_Model_Buy_Listing_Product $buyListingProduct */
     $buyListingProduct = $listingProduct->getChildObject();
     $variationManager = $buyListingProduct->getVariationManager();
     if ($variationManager->isVariationProduct() && !$variationManager->isVariationProductMatched()) {
         return false;
     }
     return true;
 }
Beispiel #7
0
 public function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     // Is checked before?
     //--------------------
     if (in_array($listingProduct->getId(), $this->checkedPriceListingsProductsIds)) {
         return false;
     } else {
         $this->checkedPriceListingsProductsIds[] = $listingProduct->getId();
     }
     //--------------------
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true, 'variations' => true));
     //--------------------
     // eBay available status
     //--------------------
     if (!$listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($this->getRunner()->isExistProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams)) {
         return false;
     }
     if ($listingProduct->isLockedObject(NULL) || $listingProduct->isLockedObject('in_action')) {
         return false;
     }
     //--------------------
     /* @var $ebaySynchronizationTemplate Ess_M2ePro_Model_Ebay_Template_Synchronization */
     $ebaySynchronizationTemplate = $listingProduct->getChildObject()->getEbaySynchronizationTemplate();
     // Correct synchronization
     //--------------------
     if (!$ebaySynchronizationTemplate->isReviseWhenChangePrice()) {
         return false;
     }
     if (!$listingProduct->getChildObject()->isSetCategoryTemplate()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     if (!$listingProduct->getChildObject()->isVariationsReady()) {
         $hasChange = false;
         //---------
         $currentPrice = $listingProduct->getChildObject()->getBuyItNowPrice();
         $onlinePrice = $listingProduct->getChildObject()->getOnlineBuyItNowPrice();
         if ($currentPrice != $onlinePrice) {
             $hasChange = true;
         }
         if ($hasChange) {
             $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
             return true;
         }
         //---------
         if ($listingProduct->getChildObject()->isListingTypeAuction()) {
             //---------
             $currentPrice = $listingProduct->getChildObject()->getStartPrice();
             $onlinePrice = $listingProduct->getChildObject()->getOnlineStartPrice();
             if ($currentPrice != $onlinePrice) {
                 $hasChange = true;
             }
             if ($hasChange) {
                 $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
                 return true;
             }
             //---------
             $currentPrice = $listingProduct->getChildObject()->getReservePrice();
             $onlinePrice = $listingProduct->getChildObject()->getOnlineReservePrice();
             if ($currentPrice != $onlinePrice) {
                 $hasChange = true;
             }
             if ($hasChange) {
                 $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
                 return true;
             }
             //---------
         }
     } else {
         $variations = $listingProduct->getVariations(true);
         foreach ($variations as $variation) {
             $currentPrice = $variation->getChildObject()->getPrice();
             $onlinePrice = $variation->getChildObject()->getOnlinePrice();
             if ($currentPrice != $onlinePrice) {
                 $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
                 return true;
             }
         }
     }
     //--------------------
     return false;
 }
Beispiel #8
0
 public function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     // Is checked before?
     //--------------------
     if (in_array($listingProduct->getId(), $this->_checkedPriceListingsProductsIds)) {
         return false;
     } else {
         $this->_checkedPriceListingsProductsIds[] = $listingProduct->getId();
     }
     //--------------------
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true));
     //--------------------
     // Buy available status
     //--------------------
     if (!$listingProduct->isListed()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($this->getRunner()->isExistProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams)) {
         return false;
     }
     if ($listingProduct->isLockedObject(NULL) || $listingProduct->isLockedObject('in_action')) {
         return false;
     }
     //--------------------
     /* @var $buySynchronizationTemplate Ess_M2ePro_Model_Buy_Template_Synchronization */
     $buySynchronizationTemplate = $listingProduct->getChildObject()->getBuySynchronizationTemplate();
     // Correct synchronization
     //--------------------
     if (!$buySynchronizationTemplate->isReviseWhenChangePrice()) {
         return false;
     }
     if ($listingProduct->getChildObject()->isVariationProduct() && !$listingProduct->getChildObject()->isVariationMatched()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $currentPrice = $listingProduct->getChildObject()->getPrice();
     $onlinePrice = $listingProduct->getChildObject()->getOnlinePrice();
     if ($currentPrice != $onlinePrice) {
         $this->getRunner()->addProduct($listingProduct, Ess_M2ePro_Model_Listing_Product::ACTION_REVISE, $actionParams);
         return true;
     }
     //--------------------
     return false;
 }
 public function inspectRevisePriceRequirements(Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     // Is checked before?
     //--------------------
     if (in_array($listingProduct->getId(), $this->_checkedPriceListingsProductsIds)) {
         return false;
     } else {
         $this->_checkedPriceListingsProductsIds[] = $listingProduct->getId();
     }
     //--------------------
     // Prepare actions params
     //--------------------
     $actionParams = array('only_data' => array('price' => true, 'variations' => true));
     //--------------------
     // Amazon available status
     //--------------------
     if (!$listingProduct->isListed() || $listingProduct->isBlocked()) {
         return false;
     }
     if (!$listingProduct->isRevisable()) {
         return false;
     }
     if ($this->_runnerActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_REVISE, $actionParams)) {
         return false;
     }
     if ($listingProduct->isLockedObject(NULL) || $listingProduct->isLockedObject('in_action')) {
         return false;
     }
     //--------------------
     // Correct synchronization
     //--------------------
     if (!$listingProduct->getListing()->isSynchronizationNowRun()) {
         return false;
     }
     if (!$listingProduct->getSynchronizationTemplate()->getChildObject()->isReviseWhenChangePrice()) {
         return false;
     }
     //--------------------
     // Check filters
     //--------------------
     $isVariationProduct = $listingProduct->getMagentoProduct()->isProductWithVariations() && (bool) count($listingProduct->getVariations());
     if (!$isVariationProduct) {
         $currentPrice = $listingProduct->getChildObject()->getPrice();
         $onlinePrice = $listingProduct->getChildObject()->getOnlinePrice();
         if ($currentPrice != $onlinePrice) {
             $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_REVISE, $actionParams);
             return true;
         }
         $currentSalePrice = $listingProduct->getChildObject()->getSalePrice();
         $onlineSalePrice = $listingProduct->getChildObject()->getOnlineSalePrice();
         if (is_null($currentSalePrice) && !is_null($onlineSalePrice) || !is_null($currentSalePrice) && is_null($onlineSalePrice) || (double) $currentSalePrice != (double) $onlineSalePrice) {
             $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_REVISE, $actionParams);
             return true;
         }
     } else {
         $variations = $listingProduct->getVariations(true);
         foreach ($variations as $variation) {
             $currentPrice = $variation->getChildObject()->getPrice();
             $onlinePrice = $variation->getChildObject()->getOnlinePrice();
             if ($currentPrice != $onlinePrice) {
                 $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Amazon_Connector_Product_Dispatcher::ACTION_REVISE, $actionParams);
                 return true;
             }
         }
     }
     //--------------------
     return false;
 }