/** * 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; } }
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; }