public function OnActionListOrders($event) { $checkTime = date("Y-m-d H:i:s", strtotime($this->amazon_check_time)); $checkDate = date("Y-m-d", strtotime($this->amazon_check_time)); Yii::log("Checking for new orders since " . $checkTime, 'info', 'application.' . __CLASS__ . "." . __FUNCTION__); $request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); $request->setSellerId($this->MerchantID); $marketplaceIdArray = array("Id" => array($this->MarketplaceID)); // List all orders updated after a certain date $request->setCreatedAfter(new DateTime($checkTime, new DateTimeZone(_xls_get_conf('TIMEZONE')))); // Set the marketplaces queried in this ListOrdersRequest $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList(); $marketplaceIdList->setId(array($this->MarketplaceID)); $request->setMarketplaceId($marketplaceIdList); $config = array('ServiceURL' => $this->getMWSUrl() . "/Orders/" . $checkDate, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3); $service = new MarketplaceWebServiceOrders_Client($this->MWS_ACCESS_KEY_ID, $this->MWS_SECRET_ACCESS_KEY, $this->APPLICATION_NAME, $this->APPLICATION_VERSION, $config); $response = $this->invokeListOrders($service, $request); if ($response->isSetListOrdersResult()) { $this->parseListOrders($response); } return self::SUCCESS; }
* XML files available under MarketplaceWebServiceOrders/Mock tree * ***********************************************************************/ // $service = new MarketplaceWebServiceOrders_Mock(); /************************************************************************ * Setup request parameters and uncomment invoke to try out * sample for List Orders Action ***********************************************************************/ $request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); $request->setSellerId(MERCHANT_ID); $interval_start = strtotime($start); $interval_end = strtotime($interval_time, $interval_start); $base_end = strtotime($end); while ($interval_end <= $base_end) { $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList(); $marketplaceIdList->setId(array(MARKETPLACE_ID)); $request->setMarketplaceId($marketplaceIdList); $orderStatuses = new MarketplaceWebServiceOrders_Model_OrderStatusList(); $orderStatuses->setStatus(array('Unshipped', 'PartiallyShipped')); $request->setOrderStatus($orderStatuses); $start = date("Y-m-d H:i:s", $interval_start); $end = date("Y-m-d H:i:s", $interval_end); $astart = date('Y-m-d', strtotime($start)) . " " . date('H:i:s', strtotime($start)); $aend = date('Y-m-d', strtotime($end)) . " " . date('H:i:s', strtotime($end)); $interval_start = $interval_end; $interval_end = strtotime($interval_time, $interval_end); echo $astart . '<br>'; echo $aend; $request->setCreatedAfter(new DateTime($astart, new DateTimeZone('UTC'))); $request->setCreatedBefore(new DateTime($aend, new DateTimeZone('UTC'))); $errorstatus = invokeListOrders($service, $request);
public function test() { $this->load->config('config_mws_api'); $amazon_app = $this->config->item('amazon_app'); //var_dump($amazon_app); foreach ($amazon_app as $amazon) { $serviceUrl = $amazon['serviceUrl']; $amazon_api = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3); $all_order_id = array(); $service = new MarketplaceWebServiceOrders_Client($amazon['AWS_ACCESS_KEY_ID'], $amazon['AWS_SECRET_ACCESS_KEY'], $this->config->item('APPLICATION_NAME'), $this->config->item('APPLICATION_VERSION'), $amazon_api); $request = new MarketplaceWebServiceOrders_Model_ListOrdersRequest(); $request->setSellerId($amazon['MERCHANT_ID']); //$request->setCreatedAfter(new DateTime('2012-12-17 00:00:00', new DateTimeZone('UTC'))); $beginning_time = $this->order_model->get_amazon_import_beginning_time(); $end_time = date('Y-m-d H:i:s', mktime(substr($beginning_time, 11, 2) + 24, substr($beginning_time, 14, 2), substr($beginning_time, 17, 2), substr($beginning_time, 5, 2), substr($beginning_time, 8, 2), substr($beginning_time, 0, 4))); $startdate = strtotime($end_time); $enddate = strtotime(str_replace("Z", "", str_replace("T", " ", get_utc_time('-20 minutes')))); if ($enddate - $startdate <= 0) { $end_time = get_utc_time('-20 minutes'); } $end_time = str_replace("Z", "", str_replace("T", " ", $end_time)); echo "beginning_time[utc]:" . $beginning_time; echo "end_time[utc]:" . $end_time; //die(); //$request->setLastUpdatedAfter(new DateTime('2013-01-21 08:43:14', new DateTimeZone('UTC'))); //$request->setLastUpdatedBefore(new DateTime('2013-01-21 11:10:25', new DateTimeZone('UTC'))); $request->setLastUpdatedAfter(new DateTime($beginning_time, new DateTimeZone('UTC'))); $request->setLastUpdatedBefore(new DateTime($end_time, new DateTimeZone('UTC'))); $orderStatuses = new MarketplaceWebServiceOrders_Model_OrderStatusList(); $orderStatuses->setStatus(array('Unshipped', 'PartiallyShipped')); $request->setOrderStatus($orderStatuses); $marketplaceIdList = new MarketplaceWebServiceOrders_Model_MarketplaceIdList(); $marketplaceIdList->setId(array($amazon['MARKETPLACE_ID'])); $request->setMarketplaceId($marketplaceIdList); $orderids = $this->invokeListOrders($service, $request); $all_order_id = $orderids[1]; //var_dump($orderids);die(); $next_token = $orderids[0]; while ($next_token != '') { $request = new MarketplaceWebServiceOrders_Model_ListOrdersByNextTokenRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setNextToken($orderids[0]); $orderids = $this->invokeListOrdersByNextToken($service, $request); $next_token = $orderids[0]; $all_order_id = array_merge($all_order_id, $orderids[1]); //var_dump($orderids); } //var_dump($all_order_id); foreach ($all_order_id as $order_id) { $order_info = array(); $items = array(); $data = array(); $amazon_pdf_data = array(); $amazon_ack_failed_data = array(); $request = new MarketplaceWebServiceOrders_Model_GetOrderRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setAmazonOrderId(array($order_id)); // object or array of parameters $order_info = $this->invokeGetOrder($service, $request); //var_dump($order_info); $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setAmazonOrderId($order_id); // object or array of parameters $items = $this->invokeListOrderItems($service, $request); //var_dump($items); if (!isset($order_info['AmazonOrderId'])) { $this->log_report($order_id); $amazon_ack_failed_data = array('amazonorderid' => $order_id, 'sellerid' => $amazon['MERCHANT_ID']); if (!$this->order_model->check_amazon_ack_failed_exists($order_id)) { $this->order_model->add_amazon_ack_failed($amazon_ack_failed_data); } continue; } $data = $this->_make_common_order_list_data($order_info, $items); //var_dump($data); if ($this->order_model->check_exists('order_list', array('transaction_id' => $data['transaction_id']))) { echo $data['transaction_id'] . "存在\n"; /* $invoice_begin=2372; $invoice_id=$invoice_begin+$this->order_model->fetch_all_amazon_count()+1; $amazon_pdf_data=array( 'amazonorderid'=>$order_info['AmazonOrderId'], 'sellerid'=>$amazon['MERCHANT_ID'], 'invoice_id'=>$invoice_id, ); if(!$this->order_model->check_wait_create_amazon_pdf_exists($order_id)) { $this->order_model->add_wait_create_amazon_pdf($amazon_pdf_data); }*/ } else { $this->order_model->add_order($data); $invoice_begin = 2372; $invoice_id = $invoice_begin + $this->order_model->fetch_all_amazon_count() + 1; $amazon_pdf_data = array('amazonorderid' => $order_info['AmazonOrderId'], 'sellerid' => $amazon['MERCHANT_ID'], 'invoice_id' => $invoice_id); if (!$this->order_model->check_wait_create_amazon_pdf_exists($order_id) && $order_info['AmazonOrderId'] != '') { $this->order_model->add_wait_create_amazon_pdf($amazon_pdf_data); } echo $data['transaction_id'] . "保存成功\n"; } sleep(2); } $this->order_model->update_amazon_import_beginning_time(array('value' => $end_time)); } }