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 * @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; }
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->_runnerActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Connector_Server_Amazon_Product_Dispatcher::ACTION_REVISE, $actionParams)) { return false; } if ($listingProduct->isLockedObject(NULL) || $listingProduct->isLockedObject('in_action')) { return false; } //-------------------- // Correct synchronization //-------------------- if (!$listingProduct->getChildObject()->getAmazonSynchronizationTemplate()->isReviseWhenChangePrice()) { return false; } //-------------------- // Check filters //-------------------- $currentPrice = $listingProduct->getChildObject()->getPrice(); $onlinePrice = $listingProduct->getChildObject()->getOnlinePrice(); if ($currentPrice != $onlinePrice) { $this->_runnerActions->setProduct($listingProduct, Ess_M2ePro_Model_Connector_Server_Amazon_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_Connector_Server_Amazon_Product_Dispatcher::ACTION_REVISE, $actionParams); return true; } //-------------------- return false; }