示例#1
0
 public function process()
 {
     if (!is_null($this->marketplace)) {
         $this->requestExtraData['marketplace'] = $this->marketplace->getId();
     }
     if (!is_null($this->account)) {
         $this->requestExtraData['account'] = $this->account->getServerHash();
     }
     if (!is_null($this->mode)) {
         $this->requestExtraData['mode'] = $this->mode;
     }
     return parent::process();
 }
示例#2
0
 protected function processAccount(Ess_M2ePro_Model_Accounts $account, $percentsForAccount)
 {
     $this->_profiler->addEol();
     $this->_profiler->addTitle('Starting account "' . $account->getData('title') . '"');
     $this->_profiler->addEol();
     $this->_profiler->addTimePoint(__METHOD__ . 'get' . $account->getData('id'), 'Get orders from eBay');
     $tempString = str_replace('%acc%', $account->getTitle(), Mage::helper('M2ePro')->__('Task "Orders Synchronization" for eBay account: "%acc%" is started. Please wait...'));
     $this->_lockItem->setStatus($tempString);
     $currentPercent = $this->_lockItem->getPercents();
     // Get since time
     //---------------------------
     $lastSinceTime = $this->_getEbayCheckSinceTime();
     //---------------------------
     // Get orders from ebay
     //---------------------------
     $request = array('account' => $account->getServerHash(), 'last_update' => $lastSinceTime);
     $response = Mage::getModel('M2ePro/Connectors_Ebay_Dispatcher')->processVirtual('sales', 'get', 'list', $request);
     $ebayOrders = array();
     $lastSuccessTime = $lastSinceTime;
     if (isset($response['sales']) && isset($response['updated_to'])) {
         $ebayOrders = $response['sales'];
         $lastSuccessTime = $response['updated_to'];
     }
     if (count($ebayOrders) <= 0) {
         return $lastSuccessTime;
     }
     //---------------------------
     $currentPercent = $currentPercent + $percentsForAccount * 0.15;
     $this->_lockItem->setPercents($currentPercent);
     $this->_lockItem->activate();
     $this->_profiler->saveTimePoint(__METHOD__ . 'get' . $account->getData('id'));
     $this->_profiler->addTitle('Total count orders received from eBay: ' . count($ebayOrders));
     $this->_profiler->addTimePoint(__METHOD__ . 'process' . $account['id'], 'Processing received orders from eBay');
     $tempString = str_replace('%acc%', $account['title'], Mage::helper('M2ePro')->__('Task "Orders Synchronization" for eBay account: "%acc%" is in data processing state. Please wait...'));
     $this->_lockItem->setStatus($tempString);
     // Save eBay orders
     //---------------------------
     $orders = array();
     foreach ($ebayOrders as $ebayOrderData) {
         /** @var $ebayOrder Ess_M2ePro_Model_Orders_Ebay_Order */
         $ebayOrder = Mage::getModel('M2ePro/Orders_Ebay_Order');
         $ebayOrder->setAccount($account);
         $ebayOrder->initialize($ebayOrderData);
         $result = $ebayOrder->process();
         if ($result) {
             $orders[] = $result;
         }
     }
     //---------------------------
     if (!count($orders)) {
         return $lastSuccessTime;
     }
     $currentPercent = $currentPercent + $percentsForAccount * 0.05;
     $this->_lockItem->setPercents($currentPercent);
     $this->_lockItem->activate();
     $this->_profiler->saveTimePoint(__METHOD__ . 'process' . $account->getData('id'));
     $this->_profiler->addEol();
     $this->_profiler->addTimePoint(__METHOD__ . 'magento_orders_process' . $account['id'], 'Creating magento orders');
     $tempString = str_replace('%acc%', $account['title'], Mage::helper('M2ePro')->__('Task "Orders Synchronization" for eBay account: "%acc%" is in order creation state.. Please wait...'));
     $this->_lockItem->setStatus($tempString);
     // Create magento orders
     //---------------------------
     $magentoOrders = 0;
     $paymentTransactions = 0;
     $invoices = 0;
     $shipments = 0;
     $percentPerOrder = floor(($percentsForAccount - $currentPercent) / count($orders));
     foreach ($orders as $order) {
         /** @var $order Ess_M2ePro_Model_Orders_Order */
         $order->createMagentoOrder() && $magentoOrders++;
         $order->createPaymentTransactionForMagentoOrder() && $paymentTransactions++;
         $order->createInvoiceForMagentoOrder() && $invoices++;
         $order->createShipmentForMagentoOrder() && $shipments++;
         $currentPercent = $currentPercent + $percentPerOrder;
         $this->_lockItem->setPercents($currentPercent);
         $this->_lockItem->activate();
     }
     //---------------------------
     $this->_profiler->saveTimePoint(__METHOD__ . 'magento_orders_process' . $account->getData('id'));
     $this->_profiler->addTitle('Total count magento orders created: ' . $magentoOrders);
     $this->_profiler->addTitle('Total count payment transactions created: ' . $paymentTransactions);
     $this->_profiler->addTitle('Total count invoices created: ' . $invoices);
     $this->_profiler->addTitle('Total count shipments created: ' . $shipments);
     $this->_profiler->addEol();
     $this->_profiler->addTitle('End account "' . $account->getData('title') . '"');
     return $lastSuccessTime;
 }