/** * 抓取订单产品详细 * @param number $OrderId * @return array * @author czq */ public function getOrderDetailLists($OrderId) { $service = new MarketplaceWebServiceOrders_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APPLICATION_NAME, APPLICATION_VERSION, $this->config); $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId(MERCHANT_ID); $request->setAmazonOrderId($OrderId); $response = $service->listOrderItems($request); $listOrderItemsResult = $response->getListOrderItemsResult(); $all_response = array(); $all_response[] = $listOrderItemsResult; while ($listOrderItemsResult->isSetNextToken()) { $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsByNextTokenRequest(); $request->setSellerId(MERCHANT_ID); $request->setNextToken($listOrderItemsResult->getNextToken()); $response = $service->ListOrdersByNextToken($request); $listOrderItemsResult = $response->getListOrderItemsByNextTokenResult(); $all_response[] = $listOrderItemsResult; //最大的请求权限为30个,每30个就sleep 60秒恢复 if ($this->_requestTimes % 30 == 0) { sleep(60); $this->_requestTimes = 0; } $this->_requestTimes++; } return $all_response; }
function amazon_mws_get_order_items($pAmazonOrderId) { global $gAmazonMWS; $ret = NULL; $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId(MERCHANT_ID); $request->setAmazonOrderId($pAmazonOrderId); try { $response = $gAmazonMWS->listOrderItems($request); if ($response->isSetListOrderItemsResult()) { $listOrderItemsResult = $response->getListOrderItemsResult(); if ($listOrderItemsResult->isSetOrderItems()) { } } $ret = $listOrderItemsResult->getOrderItems(); } catch (MarketplaceWebServiceOrders_Exception $ex) { echo "Caught Exception: " . $ex->getMessage() . "\n"; echo "Response Status Code: " . $ex->getStatusCode() . "\n"; echo "Error Code: " . $ex->getErrorCode() . "\n"; echo "Error Type: " . $ex->getErrorType() . "\n"; echo "Request ID: " . $ex->getRequestId() . "\n"; echo "XML: " . $ex->getXML() . "\n"; } return $ret; }
function init($AmazonOrderId) { $this->AmazonOrderId = $AmazonOrderId; $config = array('ServiceURL' => $this->serviceUrl . "Orders/2013-09-01", 'ProxyHost' => null, 'ProxyPort' => -1, 'ProxyUsername' => null, 'ProxyPassword' => null, 'MaxErrorRetry' => 3); $service = new MarketplaceWebServiceOrders_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APPLICATION_NAME, APPLICATION_VERSION, $config); $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId(MERCHANT_ID); $request->setAmazonOrderId($this->AmazonOrderId); // object or array of parameters return $this->invokeListOrderItems($service, $request); }
function invokeListOrdersByNextToken(MarketplaceWebServiceOrders_Interface $service, $request, $tokens) { try { $response = $service->listOrdersByNextToken($request); echo '我执行了,invokeListOrdersByNextToken,,'; echo "Service Response\n"; echo "=============================================================================\n"; echo " ListOrdersByNextTokenResponse\n"; if ($response->isSetListOrdersByNextTokenResult()) { echo " ListOrdersByNextTokenResult\n"; $listOrdersByNextTokenResult = $response->getListOrdersByNextTokenResult(); if ($listOrdersByNextTokenResult->isSetCreatedBefore()) { echo " CreatedBefore\n"; echo " " . $listOrdersByNextTokenResult->getCreatedBefore() . "\n"; } if ($listOrdersByNextTokenResult->isSetLastUpdatedBefore()) { echo " LastUpdatedBefore\n"; echo " " . $listOrdersByNextTokenResult->getLastUpdatedBefore() . "\n"; } if ($listOrdersByNextTokenResult->isSetOrders()) { echo " Orders\n"; $orders = $listOrdersByNextTokenResult->getOrders(); $orderList = $orders->getOrder(); foreach ($orderList as $order) { $val = ''; if ($order->isSetSellerOrderId()) { // echo(" SellerOrderId\n"); // echo(" " . $order->getSellerOrderId() . "\n"); } if ($order->isSetPurchaseDate()) { $CreatedDate = strtotime($order->getPurchaseDate()); } if ($order->isSetLastUpdateDate()) { $PaidTime = strtotime($order->getLastUpdateDate()); } $orderstatus = ''; if ($order->isSetOrderStatus()) { if ($order->getOrderStatus() == 'Unshipped') { $orderstatus = 822; } } if ($order->isSetAmazonOrderId() && $orderstatus == '822') { $val = $order->getAmazonOrderId(); $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId(MERCHANT_ID); $request->setAmazonOrderId($val); if ($val != '') { invokeListOrderItems($service, $request, $val, $account); } } if ($order->isSetFulfillmentChannel()) { // echo(" FulfillmentChannel\n"); // echo(" " . $order->getFulfillmentChannel() . "\n"); } if ($order->isSetSalesChannel()) { // echo(" SalesChannel\n"); // echo(" " . $order->getSalesChannel() . "\n"); } if ($order->isSetOrderChannel()) { // echo(" OrderChannel\n"); // echo(" " . $order->getOrderChannel() . "\n"); } if ($order->isSetShipServiceLevel()) { // echo(" ShipServiceLevel\n"); // echo(" " . $order->getShipServiceLevel() . "\n"); } $Street1 = ''; $Street2 = ''; $CityName = ''; $StateOrProvince = ''; if ($order->isSetShippingAddress()) { $shippingAddress = $order->getShippingAddress(); if ($shippingAddress->isSetName()) { $Name = mysql_escape_string($shippingAddress->getName()); } if ($shippingAddress->isSetAddressLine1()) { $Street1 = mysql_escape_string($shippingAddress->getAddressLine1()); } if ($shippingAddress->isSetAddressLine2()) { $Street2 = mysql_escape_string($shippingAddress->getAddressLine2()); } if ($shippingAddress->isSetAddressLine3()) { // echo(" " . $shippingAddress->getAddressLine3() . "\n"); } if ($shippingAddress->isSetCity()) { $CityName = mysql_escape_string($shippingAddress->getCity()); } if ($shippingAddress->isSetCounty()) { $CountryName = $shippingAddress->getCounty(); } if ($shippingAddress->isSetDistrict()) { // echo(" " . $shippingAddress->getDistrict() . "\n"); } if ($shippingAddress->isSetStateOrRegion()) { $StateOrProvince = $shippingAddress->getStateOrRegion(); } if ($shippingAddress->isSetPostalCode()) { $PostalCode = $shippingAddress->getPostalCode(); } if ($shippingAddress->isSetCountryCode()) { $Country = $shippingAddress->getCountryCode(); } if ($shippingAddress->isSetPhone()) { $Phone = $shippingAddress->getPhone(); } } if ($order->isSetOrderTotal()) { $orderTotal = $order->getOrderTotal(); if ($orderTotal->isSetCurrencyCode()) { $Currency = $orderTotal->getCurrencyCode(); } if ($orderTotal->isSetAmount()) { $AmountPaid = $orderTotal->getAmount(); } } if ($order->isSetNumberOfItemsShipped()) { // echo(" " . $order->getNumberOfItemsShipped() . "\n"); } if ($order->isSetNumberOfItemsUnshipped()) { // echo(" " . $order->getNumberOfItemsUnshipped() . "\n"); } if ($order->isSetPaymentExecutionDetail()) { $paymentExecutionDetail = $order->getPaymentExecutionDetail(); $paymentExecutionDetailItemList = $paymentExecutionDetail->getPaymentExecutionDetailItem(); foreach ($paymentExecutionDetailItemList as $paymentExecutionDetailItem) { // echo(" PaymentExecutionDetailItem\n"); if ($paymentExecutionDetailItem->isSetPayment()) { // echo(" Payment\n"); $payment = $paymentExecutionDetailItem->getPayment(); if ($payment->isSetCurrencyCode()) { // echo(" CurrencyCode\n"); // echo(" " . $payment->getCurrencyCode() . "\n"); } if ($payment->isSetAmount()) { // echo(" Amount\n"); // echo(" " . $payment->getAmount() . "\n"); } } if ($paymentExecutionDetailItem->isSetSubPaymentMethod()) { // echo(" SubPaymentMethod\n"); // echo(" " . $paymentExecutionDetailItem->getSubPaymentMethod() . "\n"); } } } if ($order->isSetPaymentMethod()) { //echo(" PaymentMethod\n"); //echo(" " . $order->getPaymentMethod() . "\n"); } if ($order->isSetMarketplaceId()) { //echo(" MarketplaceId\n"); // echo(" " . $order->getMarketplaceId() . "\n"); } if ($order->isSetBuyerEmail()) { // echo(" BuyerEmail\n"); // echo(" " . $order->getBuyerEmail() . "\n"); $Email = $order->getBuyerEmail(); } if ($order->isSetBuyerName()) { $UserID = mysql_escape_string($order->getBuyerName()); } if ($order->isSetShipmentServiceLevelCategory()) { //echo(" ShipmentServiceLevelCategory\n"); // echo(" " . $order->getShipmentServiceLevelCategory() . "\n"); } $Country_q = countryname_change($Country); $sql = "INSERT INTO `ebay_order` (`ebay_paystatus`,`ebay_ordersn` ,`ebay_tid` ,`ebay_ptid` ,`ebay_orderid` ,"; $sql .= "`ebay_createdtime` ,`ebay_paidtime` ,`ebay_userid` ,`ebay_username` ,`ebay_usermail` ,`ebay_street` ,"; $sql .= "`ebay_street1` ,`ebay_city` ,`ebay_state` ,`ebay_couny` ,`ebay_countryname` ,`ebay_postcode` ,`ebay_phone`"; $sql .= " ,`ebay_currency` ,`ebay_total` ,`ebay_status`,`ebay_user`,`ebay_shipfee`,`ebay_account`,`recordnumber`,`ebay_addtime`,`ebay_note`,`ebay_site`,`eBayPaymentStatus`,`PayPalEmailAddress`,`ShippedTime`,`RefundAmount`,`ebay_warehouse`,`order_no`)VALUES ('Complete','{$val}', '{$tid}' , '{$ptid}' , '{$orderid}' , '{$CreatedDate}' , '{$PaidTime}' , '{$UserID}' ,"; $sql .= " '{$Name}' , '{$Email}' , '{$Street1}' , '{$Street2}' , '{$CityName}','{$StateOrProvince}' , '{$Country}' , '{$Country_q}' , '{$PostalCode}' , '{$Phone}' , '{$Currency}' , '{$AmountPaid}' , '{$orderstatus}','{$user}','{$shipingfee}','{$account}','" . ($addrecordnumber == '' ? $val : $addrecordnumber) . "','{$mctime}','{$BuyerCheckoutMessage}','{$site}','{$eBayPaymentStatus}','{$PayPalEmailAddress}','{$ShippedTime}','{$RefundAmount}','{$defaultstoreid}','{$order_no}')"; $sg = "select * from ebay_order where ebay_ordersn ='{$val}' "; $sg = $dbcon->execute($sg); $sg = $dbcon->getResultArray($sg); if (count($sg) == 0) { $dbcon->execute($sql); addLog("ordersn:{$val} 添加成功。"); } else { addLog("ordersn:{$val} 在数据库中已经存在。"); } } } if ($listOrdersByNextTokenResult->isSetNextToken()) { echo " NextToken\n"; echo " " . $listOrdersByNextTokenResult->getNextToken() . "\n"; $tokens = $listOrdersByNextTokenResult->getNextToken(); return $tokens; } else { return 0; } } if ($response->isSetResponseMetadata()) { echo " ResponseMetadata\n"; $responseMetadata = $response->getResponseMetadata(); if ($responseMetadata->isSetRequestId()) { echo " RequestId\n"; echo " " . $responseMetadata->getRequestId() . "\n"; } } } catch (MarketplaceWebServiceOrders_Exception $ex) { echo "Caught Exception: " . $ex->getMessage() . "\n"; echo "Response Status Code: " . $ex->getStatusCode() . "\n"; echo "Error Code: " . $ex->getErrorCode() . "\n"; echo "Error Type: " . $ex->getErrorType() . "\n"; echo "Request ID: " . $ex->getRequestId() . "\n"; echo "XML: " . $ex->getXML() . "\n"; } }
* responses without calling MarketplaceWebServiceOrders service. * * Responses are loaded from local XML files. You can tweak XML files to * experiment with various outputs during development * * XML files available under MarketplaceWebServiceOrders/Mock tree * ***********************************************************************/ // $service = new MarketplaceWebServiceOrders_Mock(); /************************************************************************ * Setup request parameters and uncomment invoke to try out * sample for List Order Items Action ***********************************************************************/ $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId(MERCHANT_ID); $request->setAmazonOrderId($_REQUEST['azoid'][0]); // @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_ListOrderItemsRequest // object or array of parameters invokeListOrderItems($service, $request); /** * List Order Items Action Sample * This operation can be used to list the items of the order indicated by the * given order id (only a single Amazon order id is allowed). * * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface * @param mixed $request MarketplaceWebServiceOrders_Model_ListOrderItems or array of parameters */ function invokeListOrderItems(MarketplaceWebServiceOrders_Interface $service, $request) { try { $response = $service->listOrderItems($request);
* responses without calling MarketplaceWebServiceOrders service. * * Responses are loaded from local XML files. You can tweak XML files to * experiment with various outputs during development * * XML files available under MarketplaceWebServiceOrders/Mock tree * ***********************************************************************/ // $service = new MarketplaceWebServiceOrders_Mock(); /************************************************************************ * Setup request parameters and uncomment invoke to try out * sample for List Order Items Action ***********************************************************************/ $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId(MERCHANT_ID); $request->setAmazonOrderId("<AMAZON ORDER ID>"); // @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_ListOrderItemsRequest // object or array of parameters invokeListOrderItems($service, $request); /** * List Order Items Action Sample * This operation can be used to list the items of the order indicated by the * given order id (only a single Amazon order id is allowed). * * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface * @param mixed $request MarketplaceWebServiceOrders_Model_ListOrderItems or array of parameters */ function invokeListOrderItems(MarketplaceWebServiceOrders_Interface $service, $request) { try { $response = $service->listOrderItems($request);
function act_invokeListOrders(MarketplaceWebServiceOrders_Interface $service, $request, $account, $site, $accountId, $flip_transportList, $message) { // /global $account, $site, $accountId, $flip_transportList , $message; try { $response = $service->getOrder($request); //echo ("Service Response\n"); //echo ("=============================================================================\n"); if ($response->isSetGetOrderResult()) { //echo ("ListOrdersResult\n"); $listOrdersResult = $response->getGetOrderResult(); /*if ($listOrdersResult->isSetNextToken()) { //echo (" NextToken----"); //echo ($listOrdersResult->getNextToken() . "\n"); } if ($listOrdersResult->isSetCreatedBefore()) { //echo ("CreatedBefore----"); //echo ($listOrdersResult->getCreatedBefore() . "\n"); } if ($listOrdersResult->isSetLastUpdatedBefore()) { //echo ("LastUpdatedBefore----"); //echo ($listOrdersResult->getLastUpdatedBefore() . "\n"); }*/ if ($listOrdersResult->isSetOrders()) { $orders = $listOrdersResult->getOrders(); $orderList = $orders->getOrder(); $orderIndex = 1; $now = time(); //BaseModel :: begin(); //开始事务 foreach ($orderList as $order) { //echo ("***********Orders $orderIndex************\n\n"); $orderIndex++; $orderData = array(); //om_unshipped_order $orderUserInfoData = array(); //om_unshipped_order_userInfo $orderExtenData = array(); //om_unshipped_order_extension $street2 = ''; //街道2 $street3 = ''; //街道3 if ($order->isSetAmazonOrderId() && $order->isSetOrderStatus() && $order->getOrderStatus() == 'Unshipped') { //$orderData['ebay_status'] = 1; //同步进来的订单的状态 $orderData['recordNumber'] = $order->getAmazonOrderId(); //平台上的订单id //echo "AmazonOrderId ==== {$orderData['recordNumber']}\n"; } else { //echo 'getOrderStatus======' . $order->getOrderStatus() . "\n"; if ($order->getOrderStatus() == 'Shipped') { //表示已经发货了的订单 $shippedRecordNum = $order->getAmazonOrderId(); $tName = 'om_shipped_order'; $where = "WHERE recordNumber='{$shippedRecordNum}' and accountId='{$accountId}' and ShippedTime=''"; $set = "SET ShippedTime='{$now}'"; //标记发货时间 $affectRow = OmAvailableModel::updateTNameRow($tName, $set, $where); if ($affectRow) { $message .= "<font color='green'>update {$shippedRecordNum} ShippedTime success" . "</font><br>"; } else { $message .= "<font color='red'>update {$shippedRecordNum} ShippedTime fail may be has shippedTime or had no this recordNumber" . "</font><br>"; } } continue; } if ($order->isSetPurchaseDate()) { //亚马逊平台上的下单时间 $orderData['ordersTime'] = strtotime($order->getPurchaseDate()); //echo ("addTime ==== {$order->getPurchaseDate()}\n"); } if ($order->isSetLastUpdateDate()) { //支付时间 $orderData['paymentTime'] = strtotime($order->getLastUpdateDate()); //echo ("paidTime ==== {$order->getLastUpdateDate()}\n"); } $orderstatus = ''; //订单状态 //if ($order->isSetOrderStatus()) { // if($order->getOrderStatus() == 'Unshipped'){ // $orderstatus = 1; // } // } if ($order->isSetFulfillmentChannel()) { $orderExtenData['FulfillmentChannel'] = $order->getFulfillmentChannel(); //echo ("FulfillmentChannel ==== "); //订单配送方式 //echo ($orderExtenData['FulfillmentChannel'] . "\n"); } if ($order->isSetSalesChannel()) { $orderExtenData['SalesChannel'] = $order->getSalesChannel(); //echo ("SalesChannel ==== "); //echo ($orderExtenData['SalesChannel'] . "\n"); } if ($order->isSetOrderChannel()) { $orderExtenData['OrderChannel'] = $order->getOrderChannel(); //echo ("OrderChannel ===="); //echo ($orderExtenData['OrderChannel'] . "\n"); } if ($order->isSetShipServiceLevel()) { $orderExtenData['ShipServiceLevel'] = $order->getShipServiceLevel(); //echo ("ShipServiceLevel ==== "); //echo ($orderExtenData['ShipServiceLevel'] . "\n"); } if ($order->isSetShippingAddress()) { //判断是否设置了地址 $shippingAddress = $order->getShippingAddress(); if ($shippingAddress->isSetName()) { //获取收件人姓名 $orderUserInfoData['username'] = htmlentities($shippingAddress->getName(), ENT_QUOTES); //echo ("username ==== "); //echo ($orderUserInfoData['username'] . "\n"); } if ($shippingAddress->isSetAddressLine1()) { //街道1 $orderUserInfoData['street'] = htmlentities($shippingAddress->getAddressLine1(), ENT_QUOTES); //echo ("street ==== "); //echo ($orderUserInfoData['street'] . "\n"); } if ($shippingAddress->isSetAddressLine2()) { //街道2 $street2 = htmlentities($shippingAddress->getAddressLine2(), ENT_QUOTES); } if ($shippingAddress->isSetAddressLine3()) { //街道3 $street3 = htmlentities($shippingAddress->getAddressLine3(), ENT_QUOTES); } if ($shippingAddress->isSetCity()) { //城市 $orderUserInfoData['city'] = htmlentities($shippingAddress->getCity(), ENT_QUOTES); //echo ("city ==== "); //echo ($orderUserInfoData['city'] . "\n"); } if ($shippingAddress->isSetCounty()) { //郡,县 $orderUserInfoData['address2'] = htmlentities($shippingAddress->getCounty() . ' ' . $street2, ENT_QUOTES); $orderUserInfoData['address3'] = htmlentities($shippingAddress->getCounty() . ' ' . $street3, ENT_QUOTES); //echo ("address2 ==== "); //echo ($orderUserInfoData['address2'] . "\n"); //echo ("address3 ==== "); //echo ($orderUserInfoData['address3'] . "\n"); } if ($shippingAddress->isSetDistrict()) { //地方,区 //echo ("District ==== " . $shippingAddress->getDistrict() . "\n"); } if ($shippingAddress->isSetStateOrRegion()) { //州 $orderUserInfoData['state'] = htmlentities($shippingAddress->getStateOrRegion(), ENT_QUOTES); //echo ("state ==== "); //echo ($orderUserInfoData['state'] . "\n"); } if ($shippingAddress->isSetPostalCode()) { //邮编 $orderUserInfoData['zipCode'] = htmlentities($shippingAddress->getPostalCode(), ENT_QUOTES); //echo ("zipCode ==== "); //echo ($orderUserInfoData['zipCode'] . "\n"); } if ($shippingAddress->isSetCountryCode()) { //国家简称 /*$ebay_countrynames = array('US'=>'United States', "UK"=>"United Kingdom"); $orderData['ebay_couny'] = $shippingAddress->getCountryCode() ; $orderData['ebay_site'] = $shippingAddress->getCountryCode() ; $orderData['ebay_countryname'] = $ebay_countrynames[$shippingAddress->getCountryCode()];*/ //$sql = "SELECT regions_en FROM ebay_region WHERE regions_jc = '".$shippingAddress->getCountryCode()."'"; // $sql = $dbcon->execute($sql); // $amazon_countryname = $dbcon->fetch_one($sql); $orderUserInfoData['countrySn'] = $shippingAddress->getCountryCode(); //这里要调用运输方式管理系统的数据,获取国家简称对应的国家名称 $countryNameInfo = CommonModel::getCountrieInfoBySn($orderUserInfoData['countrySn']); //根据国家简称获取该国家的信息 //$orderData['ebay_site'] = $shippingAddress->getCountryCode() ; $orderUserInfoData['countryName'] = trim($countryNameInfo['regions_en']); //获得国家名称 //echo ("getCountryCode==== " . $orderUserInfoData['countrySn'] . "\n"); } if ($shippingAddress->isSetPhone()) { //手机 $orderUserInfoData['phone'] = $shippingAddress->getPhone(); //echo ("phone ==== "); //echo ($orderUserInfoData['phone'] . "\n"); } } if ($order->isSetOrderTotal()) { $orderTotal = $order->getOrderTotal(); if ($orderTotal->isSetCurrencyCode()) { //币种 $orderUserInfoData['currency'] = $orderTotal->getCurrencyCode(); //echo ("currency ==== "); //echo ($orderUserInfoData['currency'] . "\n"); } if ($orderTotal->isSetAmount()) { //订单总价,线上总价 $orderData['onlineTotal'] = $orderTotal->getAmount(); $orderData['actualTotal'] = $orderTotal->getAmount(); //echo ("onlineTotal ==== "); //echo ($orderData['onlineTotal'] . "\n"); } } if ($order->isSetNumberOfItemsShipped()) { //echo ("ItemsShipped ==== " . $order->getNumberOfItemsShipped() . "\n"); } if ($order->isSetNumberOfItemsUnshipped()) { //echo ("NumberOfItemsUnshipped ==== " . $order->getNumberOfItemsUnshipped() . "\n"); } if ($order->isSetPaymentExecutionDetail()) { $paymentExecutionDetail = $order->getPaymentExecutionDetail(); $paymentExecutionDetailItemList = $paymentExecutionDetail->getPaymentExecutionDetailItem(); foreach ($paymentExecutionDetailItemList as $paymentExecutionDetailItem) { echo "######PaymentExecutionDetailItem######\n"; if ($paymentExecutionDetailItem->isSetPayment()) { $payment = $paymentExecutionDetailItem->getPayment(); if ($payment->isSetCurrencyCode()) { //echo ("CurrencyCode ==== "); //echo ($payment->getCurrencyCode() . "\n"); } if ($payment->isSetAmount()) { //echo (" Amount ==== "); //echo ($payment->getAmount() . "\n"); } } if ($paymentExecutionDetailItem->isSetSubPaymentMethod()) { //echo ("SubPaymentMethod ==== "); //echo ($paymentExecutionDetailItem->getSubPaymentMethod() . "\n"); } } } if ($order->isSetPaymentMethod()) { $orderExtenData['PaymentMethod'] = $order->getPaymentMethod(); //echo ("PaymentMethod ==== "); //echo ($orderExtenData['PaymentMethod'] . "\n"); } if ($order->isSetMarketplaceId()) { $orderExtenData['MarketplaceId'] = $order->getMarketplaceId(); //echo ("MarketplaceId ==== "); //echo ($orderExtenData['MarketplaceId'] . "\n"); } if ($order->isSetBuyerName()) { //买家ID $orderUserInfoData['platformUsername'] = htmlentities($order->getBuyerName(), ENT_QUOTES); //echo ("platformUsername ==== "); //echo ($orderUserInfoData['platformUsername'] . "\n"); } if ($order->isSetBuyerEmail()) { //买家email $orderUserInfoData['email'] = $order->getBuyerEmail(); //echo ("email ==== "); //echo ($orderUserInfoData['email'] . "\n"); } if ($order->isSetShipmentServiceLevelCategory()) { $orderExtenData['ShipmentServiceLevelCategory'] = $order->getShipmentServiceLevelCategory(); //echo ("ShipmentServiceLevelCategory ==== "); //echo ($orderExtenData['ShipmentServiceLevelCategory'] . "\n"); } //$orderData['ebay_user'] = $user; $orderData['platformId'] = 11; //amazon的平台ID为11 $orderData['accountId'] = $accountId; //amazon的账号ID //echo ("accountId ==== "); //echo ($orderData['accountId'] . "\n"); $orderData['orderAddTime'] = time(); //添加到系统的时间 //echo ("orderAddTime ==== "); //echo ($orderData['orderAddTime'] . "\n"); $orderData['orderStatus'] = C('STATEPENDING'); //默认订单状态 $orderData['orderType'] = C('STATEPENDING_INITIAL'); //默认订单类型 $orderData = array('orderData' => $orderData, 'orderExtenData' => $orderExtenData, 'orderUserInfoData' => $orderUserInfoData); $tName = 'om_unshipped_order'; $where = "WHERE recordNumber='{$orderData['orderData']['recordNumber']}' AND platformId={$orderData['orderData']['platformId']} and is_delete ='0'"; $flagCountUnshipped = OmAvailableModel::getTNameCount($tName, $where); $tName = 'om_shipped_order'; $flagCountshipped = OmAvailableModel::getTNameCount($tName, $where); if (empty($flagCountUnshipped) && empty($flagCountshipped)) { //判断订单是否已经在系统2个订单表(未发货和已发货)中存在 //$orderData['ebay_ordersn'] = generateOrdersn(); $detailrequest = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $detailrequest->setSellerId(MERCHANT_ID); $detailrequest->setAmazonOrderId($orderData['orderData']['recordNumber']); $orderDetailArr = self::act_invokeListOrderItems($service, $detailrequest); //var_dump($orderDetailArr); exit; for ($i = 0; $i < count($orderDetailArr); $i++) { $orderDetailArr[$i]['orderDetailData']['recordNumber'] = $orderData['orderData']['recordNumber']; } //print_r($orderDetailArr); if (!empty($orderDetailArr)) { $orderData['orderDetail'] = $orderDetailArr; $insertData = array(); //var_dump($obj_order_detail_data); echo "<br>"; $calcInfo = CommonModel::calcAddOrderWeight($orderDetailArr); //计算重量和包材 //var_dump($calcInfo); exit; $orderData['orderData']['ORcalcWeight'] = $calcInfo[0]; $orderData['orderData']['calcWeight'] = $calcInfo[0]; $orderData['orderData']['pmId'] = $calcInfo[1]; if ($orderData['orderData']['calcWeight'] != $totalweight) { $insertData['old_totalweight'] = $totalweight; $insertData['new_totalweight'] = $orderData['orderData']['calcWeight']; } if ($orderData['orderData']['pmId'] != $pmId) { $insertData['old_pmId'] = $pmId; $insertData['new_pmId'] = $orderData['orderData']['pmId']; } $newcarrier = get_carrier($orderData['orderData']['calcWeight'], $orderData['orderUserInfoData']['countryName'], $account, $orderData['orderUserInfoData']['currency']); $orderData['orderData']['transportId'] = $flip_transportList[$newcarrier]; $orderData['orderData']['ORtransportId'] = $flip_transportList[$newcarrier]; $rtn = OldsystemModel::orderErpInsertorder($orderData); //var_dump($rtn); if ($rtn['errcode'] == 200) { //var_dump($rtn); $rtn_data = $rtn['data']; $orderId = $rtn_data['orderId']; $message .= "<font color='green'>" . date("Y-m-d H:i:s") . " 插入老系统成功,订单编号 [{$orderId}] </font><br>"; $pmId = $rtn_data['pmId']; $totalweight = $rtn_data['totalweight']; $shipfee = $rtn_data['shipfee']; $carrier = $rtn_data['carrier']; $carrierId = $rtn_data['carrierId']; $status = $rtn_data['status']; $orderData['orderData']['id'] = $orderId; //赋予新系统订单编号@20140501 if (count($orderData['orderDetail']) > 1) { $orderData['orderData']['orderAttribute'] = 3; } else { if (isset($orderData['orderDetail'][0]['orderDetailData']['amount']) && $orderData['orderDetail'][0]['orderDetailData']['amount'] > 1) { $orderData['orderData']['orderAttribute'] = 2; } } /*$calcShippingInfo = CommonModel :: calcAddOrderShippingFee($orderData,1);//计算运费 //var_dump($calcShippingInfo); exit; //$insert_orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']['fee']; $orderData['orderData']['channelId'] = $calcShippingInfo['fee']['channelId'];*/ $calcShippingInfo = TransAPIModel::trans_carriers_fix_get($orderData['orderData']['transportId'], $orderData['orderData']['calcWeight'], $orderData['orderUserInfoData']['countryName']); //计算运费 //var_dump($calcShippingInfo); $orderData['orderData']['calcShipping'] = $calcShippingInfo['fee']; //$orderData['orderData']['transportId'] = $calcShippingInfo['carrierId']; $orderData['orderData']['channelId'] = $calcShippingInfo['channelId']; $orderData['orderData']['ORchannelId'] = $calcShippingInfo['channelId']; if ($orderData['orderData']['calcShipping'] != $shipfee) { $insertData['old_shippfee'] = $shipfee; $insertData['new_shippfee'] = $orderData['orderData']['calcShipping']; } if ($orderData['orderData']['transportId'] != $carrierId) { $insertData['old_carrierId'] = $carrierId; $insertData['new_carrierId'] = $orderData['orderData']['transportId']; } if (!empty($insertData)) { $insertData['ebay_id'] = $orderId; $insertData['addtime'] = time(); //var_dump($insertData); OldsystemModel::insertTempSyncRecords($insertData); // 插入临时对比记录表 } $orderData = AutoModel::auto_contrast_intercept($orderData); //print_r($interceptInfo); exit; /*$orderData['orderData']['orderStatus'] = $interceptInfo['orderStatus']; $orderData['orderData']['orderType'] = $interceptInfo['orderType'];*/ //var_dump($orderData); exit; if (OrderAddModel::insertAllOrderRow($orderData)) { //echo 'insert success!' . "\n"; $message .= "<font color='green'>" . date("Y-m-d H:i:s") . ", 新增订单{$orderData['orderData']['recordNumber']}成功</font><br>"; } else { $message .= "<font color='red'>" . date("Y-m-d H:i:s") . ", 新增订单{$orderData['orderData']['recordNumber']}失败</font><br>"; //echo OrderAddModel :: $errMsg; } } } else { //echo "Amazon ID: ".$orderData['recordnumber']." 订单详情添加失败\n"; $message .= "<font color='red'>Amazon ID: " . $orderData['orderData']['recordNumber'] . " has no detail </font><br>"; } } else { $message .= "<font color='red'>Amazon ID: " . $orderData['orderData']['recordNumber'] . " had exist</font><br>"; } } } } } catch (MarketplaceWebServiceOrders_Exception $ex) { $message .= "Caught Exception: " . $ex->getMessage() . "<br>"; $message .= "Response Status Code: " . $ex->getStatusCode() . "<br>"; $message .= "Error Code: " . $ex->getErrorCode() . "<br>"; $message .= "Error Type: " . $ex->getErrorType() . "<br>"; $message .= "Request ID: " . $ex->getRequestId() . "<br>"; $message .= "XML: " . $ex->getXML() . "<br>"; } catch (Exception $e) { BaseModel::rollback(); BaseModel::autoCommit(); $message .= $e->getMessage() . "<br>"; } return $message; }
public function onActionListOrderDetails($event) { Yii::log("Running event " . print_r($event, true), 'info', 'application.' . __CLASS__ . "." . __FUNCTION__); $data_id = $event->data_id; $arrData = explode(",", $data_id); $cartId = $arrData[0]; $checkDate = $arrData[1]; $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); $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest(); $request->setSellerId($this->MerchantID); $request->setAmazonOrderId($cartId); // object or array of parameters $response = $this->invokeListOrderItems($service, $request); $listOrderItemsResult = $response->getListOrderItemsResult(); if ($listOrderItemsResult->isSetOrderItems()) { $objCart = Cart::LoadByIdStr($cartId); if ($objCart->cart_type == CartType::cart) { $orderItems = $listOrderItemsResult->getOrderItems(); $orderItemList = $orderItems->getOrderItem(); $shippingCost = 0; foreach ($orderItemList as $orderItem) { $strCode = $orderItem->getSellerSKU(); Yii::log("Amazon " . $cartId . " item on order " . $strCode, 'info', 'application.' . __CLASS__ . "." . __FUNCTION__); Yii::log("Order item information " . print_r($orderItem, true), 'info', 'application.' . __CLASS__ . "." . __FUNCTION__); $intQty = $orderItem->getQuantityOrdered(); $objPrice = $orderItem->getItemPrice(); $fltPrice = $objPrice->getAmount(); $strCurrency = $objPrice->getCurrencyCode(); //Amazon provides price as total for line item, but our AddToCart expects per item //so we divide if ($intQty > 1) { $fltPrice = $fltPrice / $intQty; } if ($orderItem->isSetShippingPrice()) { $objShippingPrice = $orderItem->getShippingPrice(); if ($objShippingPrice->isSetAmount()) { $shippingCost += $objShippingPrice->getAmount(); } } if ($orderItem->isSetPromotionDiscount()) { $promotionDiscount = $orderItem->getPromotionDiscount(); $fltDiscount = $promotionDiscount->getAmount(); } else { $fltDiscount = 0; } $objProduct = Product::LoadByCode($strCode); if (is_null($objProduct)) { $objCart->printed_notes .= "ERROR MISSING PRODUCT - " . "Attempted to download a product from Amazon " . $strCode . " that doesn't exist in Web Store\n"; Yii::log("Attempted to download a product from Amazon " . $strCode . " that doesn't exist in Web Store", 'error', 'application.' . __CLASS__ . "." . __FUNCTION__); } else { $objCart->AddProduct($objProduct, $intQty, CartType::order, null, $orderItem->getTitle(), $fltPrice, $fltDiscount); } $objCart->currency = $strCurrency; if (!$objCart->save()) { Yii::log("Error saving cart " . print_r($objCart->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__); } } $objCart->cart_type = CartType::order; if (!$objCart->save()) { Yii::log("Error saving cart " . print_r($objCart->getErrors(), true), 'error', 'application.' . __CLASS__ . "." . __FUNCTION__); } $objShipping = $objCart->shipping; $objShipping->shipping_cost = $shippingCost; $objShipping->shipping_sell = $shippingCost; $objShipping->save(); $objCart->recalculateAndSave(); $objCart->RecalculateInventoryOnCartItems(); //A new order has been created, so run signal $objEvent = new CEventOrder('wsamazon', 'onCreateOrder', $objCart->id_str); _xls_raise_events('CEventOrder', $objEvent); } } return self::SUCCESS; }
public function create_amazon_pdf() { if (strpos($_SERVER['SCRIPT_FILENAME'], 'create_amazon_pdf.php') === FALSE) { exit; } $this->load->config('config_mws_api'); $amazon_app = $this->config->item('amazon_app'); //var_dump($amazon_app); $orders = $this->order_model->fetch_all_wait_create_amazon_pdf(); foreach ($orders as $order) { $AmazonOrderId = $order->amazonorderid; foreach ($amazon_app as $amazon) { $serviceUrl = $amazon['serviceUrl']; $amazon_api = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3); if ($amazon['MERCHANT_ID'] != $order->sellerid) { continue; } $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_GetOrderRequest(); $request->setSellerId($amazon['MERCHANT_ID']); $request->setAmazonOrderId(array($AmazonOrderId)); // 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($AmazonOrderId); // object or array of parameters $items = $this->invokeListOrderItems($service, $request); //var_dump($items); if ($order_info["AmazonOrderId"] != '') { $this->_create_amazon_pdf($order_info, $items); $amazon_pdf_data = array('status' => 1); if ($this->order_model->check_wait_create_amazon_pdf_exists($AmazonOrderId)) { $this->order_model->update_wait_create_amazon_pdf($AmazonOrderId, $amazon_pdf_data); } break; } } break; } }