public function __construct(array $params = array(), Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     if (!is_null($listingProduct->getActionConfigurator())) {
         $actionConfigurator = $listingProduct->getActionConfigurator();
     } else {
         $actionConfigurator = Mage::getModel('M2ePro/Ebay_Listing_Product_Action_Configurator');
     }
     $this->listingProduct = $listingProduct->loadInstance($listingProduct->getId());
     $this->listingProduct->setActionConfigurator($actionConfigurator);
     parent::__construct($params, $this->listingProduct->getMarketplace(), $this->listingProduct->getAccount());
 }
 public function __construct(array $params = array(), Ess_M2ePro_Model_Listing_Product $listingProduct)
 {
     $this->listingProduct = $listingProduct;
     parent::__construct($params, $this->listingProduct->getMarketplace(), $this->listingProduct->getAccount());
 }
Beispiel #3
0
 protected function updateProductAfterAction(Ess_M2ePro_Model_Listing_Product $listingProduct, array $nativeRequestData = array(), array $params = array(), $ebayItemsId = NULL, $saveSoldData = false)
 {
     $dataForUpdate = array('status' => Ess_M2ePro_Model_Listing_Product::STATUS_LISTED, 'additional_data' => $listingProduct->getAdditionalData());
     !empty($nativeRequestData['title']) && ($dataForUpdate['online_title'] = $nativeRequestData['title']);
     !empty($nativeRequestData['sku']) && ($dataForUpdate['online_sku'] = $nativeRequestData['sku']);
     $dataForUpdate['additional_data']['is_eps_ebay_images_mode'] = $params['is_eps_ebay_images_mode'];
     $isImagesUploadError = isset($params['is_images_upload_error']) ? $params['is_images_upload_error'] : false;
     if (isset($nativeRequestData['images']['images']) && !$isImagesUploadError) {
         $dataForUpdate['additional_data']['ebay_product_images_hash'] = sha1(json_encode($nativeRequestData['images']['images']));
     }
     !is_null($ebayItemsId) && ($dataForUpdate['ebay_item_id'] = (int) $ebayItemsId);
     isset($params['status_changer']) && ($dataForUpdate['status_changer'] = (int) $params['status_changer']);
     if (isset($nativeRequestData['category_main_id'])) {
         $dataForUpdate['online_category'] = Mage::helper('M2ePro/Component_Ebay_Category_Ebay')->getPath($nativeRequestData['category_main_id'], $listingProduct->getMarketplace()->getId()) . ' (' . $nativeRequestData['category_main_id'] . ')';
     }
     if (isset($params['start_date_raw'])) {
         $dataForUpdate['start_date'] = Ess_M2ePro_Model_Connector_Server_Ebay_Abstract::ebayTimeToString($params['start_date_raw']);
     }
     if (isset($params['end_date_raw'])) {
         $dataForUpdate['end_date'] = Ess_M2ePro_Model_Connector_Server_Ebay_Abstract::ebayTimeToString($params['end_date_raw']);
     }
     if ($saveSoldData) {
         $dataForUpdate['online_qty_sold'] = is_null($listingProduct->getChildObject()->getOnlineQtySold()) ? 0 : $listingProduct->getChildObject()->getOnlineQtySold();
         $tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
         $tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['qty']);
         if ($tempUpdateFlag) {
             $tempQty = $tempIsVariation ? $listingProduct->getChildObject()->getQty() : $nativeRequestData['qty'];
             $dataForUpdate['online_qty'] = (int) $tempQty + (int) $dataForUpdate['online_qty_sold'];
         }
     } else {
         $dataForUpdate['online_qty_sold'] = 0;
         $tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
         $tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['qty']);
         if ($tempUpdateFlag) {
             $tempQty = $tempIsVariation ? $listingProduct->getChildObject()->getQty() : $nativeRequestData['qty'];
             $dataForUpdate['online_qty'] = $tempQty;
         }
     }
     if ($listingProduct->getChildObject()->isListingTypeFixed()) {
         $dataForUpdate['online_start_price'] = NULL;
         $dataForUpdate['online_reserve_price'] = NULL;
         $dataForUpdate['online_bids'] = NULL;
         $tempIsVariation = $nativeRequestData['is_variation_item'] && isset($nativeRequestData['variation']);
         $tempUpdateFlag = $tempIsVariation || isset($nativeRequestData['price_fixed']);
         if ($tempUpdateFlag) {
             if ($tempIsVariation) {
                 $tempPrice = NULL;
                 foreach ($nativeRequestData['variation'] as $variation) {
                     if ((int) $variation['qty'] <= 0) {
                         continue;
                     }
                     if (!is_null($tempPrice) && (double) $variation['price'] >= $tempPrice) {
                         continue;
                     }
                     $tempPrice = (double) $variation['price'];
                 }
             } else {
                 $tempPrice = $nativeRequestData['price_fixed'];
             }
             $dataForUpdate['online_buyitnow_price'] = (double) $tempPrice;
         }
     } else {
         !$saveSoldData && ($dataForUpdate['online_bids'] = 0);
         if (isset($nativeRequestData['price_start'])) {
             $dataForUpdate['online_start_price'] = (double) $nativeRequestData['price_start'];
         }
         if (isset($nativeRequestData['price_reserve'])) {
             $dataForUpdate['online_reserve_price'] = (double) $nativeRequestData['price_reserve'];
         }
         if (isset($nativeRequestData['price_buyitnow'])) {
             $dataForUpdate['online_buyitnow_price'] = (double) $nativeRequestData['price_buyitnow'];
         }
     }
     $dataForUpdate['additional_data'] = json_encode($dataForUpdate['additional_data']);
     $listingProduct->addData($dataForUpdate)->save();
 }