Esempio n. 1
0
 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);
             }
         }
     }
     //--------------------------------
 }
Esempio n. 3
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;
 }