private function isMeetStopRequirements(Ess_M2ePro_Model_ListingsProducts $listingProduct) { // Ebay available status //-------------------- if (!$listingProduct->isListed()) { return false; } if (!$listingProduct->isStoppable()) { return false; } if ($this->_ebayActions->isExistProductAction($listingProduct, Ess_M2ePro_Model_Connectors_Ebay_Item_Dispatcher::ACTION_STOP, array())) { return false; } //-------------------- // Correct synchronization //-------------------- if (!$listingProduct->getListing()->isSynchronizationNowRun()) { return false; } //-------------------- // Check filters //-------------------- if ($listingProduct->getSynchronizationTemplate()->isStopStatusDisabled()) { if ($listingProduct->getMagentoProduct()->getStatus() == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) { return true; } } if ($listingProduct->getSynchronizationTemplate()->isStopOutOfStock()) { if (!$listingProduct->getMagentoProduct()->getStockAvailability()) { return true; } } if ($listingProduct->getSynchronizationTemplate()->isStopWhenQtyHasValue()) { $productQty = (int) $listingProduct->getQty(true); $typeQty = (int) $listingProduct->getSynchronizationTemplate()->getStopWhenQtyHasValueType(); $minQty = (int) $listingProduct->getSynchronizationTemplate()->getStopWhenQtyHasValueMin(); $maxQty = (int) $listingProduct->getSynchronizationTemplate()->getStopWhenQtyHasValueMax(); if ($typeQty == Ess_M2ePro_Model_SynchronizationsTemplates::STOP_QTY_LESS && $productQty <= $minQty) { return true; } if ($typeQty == Ess_M2ePro_Model_SynchronizationsTemplates::STOP_QTY_MORE && $productQty >= $minQty) { return true; } if ($typeQty == Ess_M2ePro_Model_SynchronizationsTemplates::STOP_QTY_BETWEEN && $productQty >= $minQty && $productQty <= $maxQty) { return true; } } //-------------------- return false; }
private function updateListingsProductsChanges(Ess_M2ePro_Model_ListingsProducts $listingProduct) { // STATUS changes //-------------------------------- $tempStatus = $listingProduct->getMagentoProduct()->getStatus(); if (!$listingProduct->isListed() && $tempStatus == Mage_Catalog_Model_Product_Status::STATUS_ENABLED) { $this->addProductChange($listingProduct->getProductId(), 'status', Mage_Catalog_Model_Product_Status::STATUS_DISABLED, Mage_Catalog_Model_Product_Status::STATUS_ENABLED); } if ($listingProduct->isListed() && $tempStatus == Mage_Catalog_Model_Product_Status::STATUS_DISABLED) { $this->addProductChange($listingProduct->getProductId(), 'status', Mage_Catalog_Model_Product_Status::STATUS_ENABLED, Mage_Catalog_Model_Product_Status::STATUS_DISABLED); } //-------------------------------- // IN STOCK changes //-------------------------------- $tempStockAvailability = $listingProduct->getMagentoProduct()->getStockAvailability(); if (!$listingProduct->isListed() && $tempStockAvailability) { $this->addProductChange($listingProduct->getProductId(), 'stock_availability', 0, 1); } if ($listingProduct->isListed() && !$tempStockAvailability) { $this->addProductChange($listingProduct->getProductId(), 'stock_availability', 1, 0); } //-------------------------------- // PRICE changes //-------------------------------- if ($listingProduct->isListed()) { $this->addPriceProductChange($listingProduct, 'getBuyItNowPrice', 'getEbayBuyItNowPrice', 'getBuyItNowPriceSource'); if ($listingProduct->isListingTypeAuction()) { $this->addPriceProductChange($listingProduct, 'getReservePrice', 'getEbayReservePrice', 'getReservePriceSource'); $this->addPriceProductChange($listingProduct, 'getStartPrice', 'getEbayStartPrice', 'getStartPriceSource'); } } //-------------------------------- // QTY changes //-------------------------------- if ($listingProduct->isListingTypeFixed()) { if ($listingProduct->isListed()) { $productQty = $listingProduct->getQty(); $ebayQty = $listingProduct->getEbayQty() - $listingProduct->getEbayQtySold(); if ($productQty != $ebayQty) { $attribute = ''; $src = $listingProduct->getSellingFormatTemplate()->getQtySource(); if ($src['mode'] == Ess_M2ePro_Model_SellingFormatTemplates::QTY_MODE_PRODUCT) { $attribute = 'qty'; } if ($src['mode'] == Ess_M2ePro_Model_SellingFormatTemplates::QTY_MODE_ATTRIBUTE) { $attribute = $src['attribute']; } $attribute != '' && $this->addProductChange($listingProduct->getProductId(), $attribute, $ebayQty, $productQty); } } } //-------------------------------- }
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; }