/**
  * sample_GetOrders::dispatchCall()
  * 
  * Dispatch the call
  *
  * @param array $params array of parameters for the eBay API call
  * 
  * @return boolean success
  */
 public function dispatchCall($params)
 {
     $req = new GetOrdersRequestType();
     $req->setCreateTimeFrom($params['CreateTimeFrom']);
     $req->setCreateTimeTo($params['CreateTimeTo']);
     $req->setOrderRole($params['OrderRole']);
     $req->setOrderStatus($params['OrderStatus']);
     $res = $this->proxy->GetOrders($req);
     if ($this->testValid($res)) {
         $this->dumpObject($res);
         return true;
     } else {
         return false;
     }
 }
Esempio n. 2
0
 public function retrieveOrders($params)
 {
     global $sugar_config;
     $shipping_service = $sugar_config['ebay_shipping_service'];
     $result = true;
     $account_id = $params['AccountID'];
     $this->session->setRequestToken($params['AuthToken']);
     $bean = BeanFactory::getBean('xeBayOrders');
     $req = new GetOrdersRequestType();
     if ($params['NumberOfDays'] != 90) {
         $req->setNumberOfDays($params['NumberOfDays']);
     } else {
         $req->setCreateTimeFrom(date('Y-m-dTH:i:s', strtotime('now - 88 days')));
     }
     $req->setOrderStatus($params['OrderStatus']);
     $pagination = new PaginationType();
     $pagination->setEntriesPerPage(50);
     $pageNumber = 1;
     $hasMoreOrders = false;
     do {
         $pagination->setPageNumber($pageNumber++);
         $req->setPagination($pagination);
         $res = $this->proxy->GetOrders($req);
         if ($this->testValid($res)) {
             $hasMoreOrders = $res->getHasMoreOrders();
             $ordersPerPage = $res->getOrdersPerPage();
             $orderArray = $res->getOrderArray();
             if (empty($orderArray)) {
                 break;
             }
             foreach ($orderArray as &$order) {
                 $eBayPaymentStatus = $order->getCheckoutStatus()->getEBayPaymentStatus();
                 if ($eBayPaymentStatus != "NoPaymentFailure") {
                     continue;
                 }
                 $completeStatus = $order->getCheckoutStatus()->getStatus();
                 if ($completeStatus != "Complete") {
                     continue;
                 }
                 $orderId = $order->getOrderID();
                 $duplicated = $bean->retrieve_by_string_fields(array('order_id' => $orderId));
                 if (empty($duplicated)) {
                     $bean->shipping_service = $shipping_service;
                     $bean->populateDefaultValues(true);
                 }
                 $bean->source_type = 'ebay';
                 $bean->xebayaccount_id = $account_id;
                 $bean->buyer_checkout_message = $order->getBuyerCheckoutMessage();
                 $bean->order_id = $order->getOrderID();
                 $bean->order_status = $order->getOrderStatus();
                 $bean->buyer_user_id = $order->getBuyerUserID();
                 $bean->subtotal_currency_id = $order->getSubtotal()->getTypeAttribute('currencyID');
                 $bean->subtotal_value = $order->getSubtotal()->getTypeValue();
                 $bean->total_currency_id = $order->getTotal()->getTypeAttribute('currencyID');
                 $bean->total_value = $order->getTotal()->getTypeValue();
                 $bean->date_entered = $order->getCreatedTime();
                 $bean->paid_time = $order->getPaidTime();
                 $bean->shipped_time = $order->getShippedTime();
                 if (!empty($bean->shipped_time)) {
                     $bean->handled_status = 'handled';
                 } else {
                     if (empty($duplicated)) {
                         $bean->handled_status = 'unhandled';
                     } else {
                         // do not change handled status
                     }
                 }
                 $bean->sales_record_number = $order->getShippingDetails()->getSellingManagerSalesRecordNumber();
                 $bean->eias_token = $order->getEIASToken();
                 $bean->payment_hold_status = $order->getPaymentHoldStatus();
                 $shippingAddress = $order->getShippingAddress();
                 $bean->name = $shippingAddress->getName();
                 $bean->street1 = $shippingAddress->getStreet1();
                 $bean->street2 = $shippingAddress->getStreet2();
                 $bean->city_name = $shippingAddress->getCityName();
                 $bean->state_or_province = $shippingAddress->getStateOrProvince();
                 $bean->country = $shippingAddress->getCountry();
                 $bean->country_name = $shippingAddress->getCountryName();
                 $bean->phone = $shippingAddress->getPhone();
                 $bean->postal_code = $shippingAddress->getPostalCode();
                 $bean->address_id = $shippingAddress->getAddressID();
                 $bean->address_owner = $shippingAddress->getAddressOwner();
                 $bean->external_address_id = $shippingAddress->getExternalAddressID();
                 if (empty($duplicated)) {
                     $bean->checkout_status_last_modified_time = $order->getCheckoutStatus()->getLastModifiedTime();
                     $bean->id = create_guid();
                     $bean->new_with_id = true;
                     $this->add_transactions($order->getTransactionArray(), $bean);
                     $bean->save();
                 } else {
                     $checkoutStatusLastModifiedTime = $order->getCheckoutStatus()->getLastModifiedTime();
                     if ($bean->checkout_status_last_modified_time != $checkoutStatusLastModifiedTime) {
                         $bean->checkout_status_last_modified_time = $checkoutStatusLastModifiedTime;
                         $bean->save();
                     }
                 }
             }
         } else {
             $this->dumpObject($res);
             $result = false;
             break;
         }
     } while ($hasMoreOrders);
     return $result;
 }