Exemplo n.º 1
0
 public function setAccount(Ess_M2ePro_Model_Accounts $account)
 {
     if (!$account->getId()) {
         throw new Exception('Account does not exist.');
     }
     $this->_account = $account;
     return $this;
 }
Exemplo n.º 2
0
 private function _prepareForInsert($item, Ess_M2ePro_Model_Accounts $account)
 {
     $result = array('id' => Mage::getModel('M2ePro/EbayListings')->load($item['id'], 'ebay_item')->getId(), 'account_id' => (int) $account->getId(), 'marketplace_id' => (int) Mage::getModel('M2ePro/Marketplaces')->load($item['marketplace'], "code")->getId(), 'ebay_item' => (double) $item['id'], 'ebay_price' => (double) $item['currentPrice'], 'ebay_currency' => (string) $item['currency'], 'ebay_title' => (string) $item['title'], 'ebay_qty' => (int) $item['quantity'], 'ebay_qty_sold' => (int) $item['quantitySold'], 'ebay_bids' => (int) $item['bidCount'], 'ebay_start_date' => (string) Mage::helper('M2ePro')->getDate($item['startTime']), 'ebay_end_date' => (string) Mage::helper('M2ePro')->getDate($item['endTime']));
     if ($item['listingType'] == Ess_M2ePro_Model_SellingFormatTemplates::EBAY_LISTING_TYPE_AUCTION) {
         $result['ebay_qty'] = 1;
     }
     if (($item['listingStatus'] == self::EBAY_STATUS_COMPLETED || $item['listingStatus'] == self::EBAY_STATUS_ENDED) && $result['ebay_qty'] == $result['ebay_qty_sold']) {
         $result['status'] = Ess_M2ePro_Model_ListingsProducts::STATUS_SOLD;
     } else {
         if ($item['listingStatus'] == self::EBAY_STATUS_COMPLETED) {
             $result['status'] = Ess_M2ePro_Model_ListingsProducts::STATUS_STOPPED;
         } else {
             if ($item['listingStatus'] == self::EBAY_STATUS_ENDED) {
                 $result['status'] = Ess_M2ePro_Model_ListingsProducts::STATUS_FINISHED;
             } else {
                 if ($item['listingStatus'] == self::EBAY_STATUS_ACTIVE) {
                     $result['status'] = Ess_M2ePro_Model_ListingsProducts::STATUS_LISTED;
                 }
             }
         }
     }
     return $result;
 }
Exemplo n.º 3
0
 public static function receiveFeedbacks(Ess_M2ePro_Model_Accounts $account, array $paramsConnector = array())
 {
     // Create connector
     //-----------------------
     $feedbacks = Mage::getModel('M2ePro/Connectors_Ebay_Dispatcher')->processVirtual('feedback', 'get', 'entity', $paramsConnector, 'feedbacks', NULL, $account->getId());
     is_null($feedbacks) && ($feedbacks = array());
     //-----------------------
     // Get and update feedbacks
     //-----------------------
     $countNewFeedbacks = 0;
     foreach ($feedbacks as $feedback) {
         $dbFeedback = array('account_id' => $account->getId(), 'ebay_item_id' => $feedback['item_id'], 'ebay_transaction_id' => $feedback['transaction_id']);
         if ($feedback['item_title'] != '') {
             $dbFeedback['ebay_item_title'] = $feedback['item_title'];
         }
         if ($feedback['from_role'] == self::ROLE_BUYER) {
             $dbFeedback['buyer_name'] = $feedback['user_sender'];
             $dbFeedback['buyer_feedback_id'] = $feedback['id'];
             $dbFeedback['buyer_feedback_text'] = $feedback['info']['text'];
             $dbFeedback['buyer_feedback_date'] = $feedback['info']['date'];
             $dbFeedback['buyer_feedback_type'] = $feedback['info']['type'];
         } else {
             $dbFeedback['seller_feedback_id'] = $feedback['id'];
             $dbFeedback['seller_feedback_text'] = $feedback['info']['text'];
             $dbFeedback['seller_feedback_date'] = $feedback['info']['date'];
             $dbFeedback['seller_feedback_type'] = $feedback['info']['type'];
         }
         $existFeedback = Mage::getModel('M2ePro/Feedbacks')->getCollection()->addFieldToFilter('account_id', $account->getId())->addFieldToFilter('ebay_item_id', $feedback['item_id'])->addFieldToFilter('ebay_transaction_id', $feedback['transaction_id'])->getFirstItem();
         if ($existFeedback->getId()) {
             if ($feedback['from_role'] == self::ROLE_BUYER && !$existFeedback->getData('buyer_feedback_id')) {
                 $countNewFeedbacks++;
             }
             if ($feedback['from_role'] == self::ROLE_SELLER && !$existFeedback->getData('seller_feedback_id')) {
                 $countNewFeedbacks++;
             }
             $existFeedback->addData($dbFeedback);
         } else {
             $existFeedback->setData($dbFeedback);
             $countNewFeedbacks++;
         }
         $existFeedback->save();
     }
     //-----------------------
     return array('total' => count($feedbacks), 'new' => $countNewFeedbacks);
 }
Exemplo n.º 4
0
 private function getResponseBody(Ess_M2ePro_Model_Accounts $account)
 {
     if ($account->isFeedbacksAutoResponseCycled()) {
         $lastUsedId = 0;
         if ($account->getFeedbacksLastUsedId() != null) {
             $lastUsedId = (int) $account->getFeedbacksLastUsedId();
         }
         $feedbackTemplatesIds = Mage::getModel('M2ePro/FeedbacksTemplates')->getCollection()->addFieldToFilter('account_id', $account->getId())->setOrder('id', 'ASC')->getAllIds();
         if (!count($feedbackTemplatesIds)) {
             return '';
         }
         $feedbackTemplate = Mage::getModel('M2ePro/FeedbacksTemplates');
         if (max($feedbackTemplatesIds) > $lastUsedId) {
             foreach ($feedbackTemplatesIds as $templateId) {
                 if ($templateId <= $lastUsedId) {
                     continue;
                 }
                 $feedbackTemplate->load($templateId);
                 break;
             }
         } else {
             $feedbackTemplate->load(min($feedbackTemplatesIds));
         }
         if (!$feedbackTemplate->getId()) {
             return '';
         }
         $account->setData('feedbacks_last_used_id', $feedbackTemplate->getId())->save();
         return $feedbackTemplate->getBody();
     }
     if ($account->isFeedbacksAutoResponseRandom()) {
         $feedbackTemplatesIds = Mage::getModel('M2ePro/FeedbacksTemplates')->getCollection()->addFieldToFilter('account_id', $account->getId())->getAllIds();
         if (!count($feedbackTemplatesIds)) {
             return '';
         }
         $index = rand(0, count($feedbackTemplatesIds) - 1);
         $feedbackTemplate = Mage::getModel('M2ePro/FeedbacksTemplates')->load($feedbackTemplatesIds[$index]);
         if (!$feedbackTemplate->getId()) {
             return '';
         }
         return $feedbackTemplate->getBody();
     }
     return '';
 }
Exemplo n.º 5
0
 public static function receiveMessages(Ess_M2ePro_Model_Accounts $account, array $paramsConnector = array())
 {
     // Create connector
     //-----------------------
     $messages = Mage::getModel('M2ePro/Connectors_Ebay_Dispatcher')->processVirtual('message', 'get', 'memberList', $paramsConnector, 'messages', NULL, $account->getId());
     is_null($messages) && ($messages = array());
     //-----------------------
     // Get new messages
     //-----------------------
     $countNewMessages = 0;
     foreach ($messages as $message) {
         $dbMessage = array('account_id' => $account->getId(), 'ebay_item_id' => $message['item_id'], 'ebay_item_title' => $message['item_title'], 'sender_name' => $message['sender_name'], 'message_id' => $message['id'], 'message_subject' => $message['subject'], 'message_text' => $message['body'], 'message_date' => $message['creation_date'], 'message_type' => $message['type']);
         if (isset($message['responses'])) {
             $dbMessage['message_responses'] = json_encode($message['responses'], JSON_FORCE_OBJECT);
         }
         $existMessage = Mage::getModel('M2ePro/Messages')->getCollection()->addFieldToFilter('message_id', $message['id'])->toArray();
         $tempModel = Mage::getModel('M2ePro/Messages');
         if (count($existMessage['items']) != 0) {
             $tempModel->setId($existMessage['items'][0]['id']);
         } else {
             $countNewMessages++;
         }
         $tempModel->addData($dbMessage)->save();
     }
     //-----------------------
     return array('new' => $countNewMessages, 'total' => count($messages));
 }