Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
 /**
  * 抓取订单产品详细
  * @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;
 }
Ejemplo n.º 3
0
 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";
    }
}
 /**
  * List Order Items
  * 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 mixed $request array of parameters for MarketplaceWebServiceOrders_Model_ListOrderItems request or MarketplaceWebServiceOrders_Model_ListOrderItems object itself
  * @see MarketplaceWebServiceOrders_Model_ListOrderItemsRequest
  * @return MarketplaceWebServiceOrders_Model_ListOrderItemsResponse
  *
  * @throws MarketplaceWebServiceOrders_Exception
  */
 public function listOrderItems($request)
 {
     if (!$request instanceof MarketplaceWebServiceOrders_Model_ListOrderItemsRequest) {
         require_once dirname(__FILE__) . '/Model/ListOrderItemsRequest.php';
         $request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest($request);
     }
     $parameters = $request->toQueryParameterArray();
     $parameters['Action'] = 'ListOrderItems';
     $httpResponse = $this->_invoke($parameters);
     require_once dirname(__FILE__) . '/Model/ListOrderItemsResponse.php';
     $response = MarketplaceWebServiceOrders_Model_ListOrderItemsResponse::fromXML($httpResponse['ResponseBody']);
     $response->setResponseHeaderMetadata($httpResponse['ResponseHeaderMetadata']);
     return $response;
 }
 * Uncomment to try out Mock Service that simulates MarketplaceWebServiceOrders
 * 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
 ***********************************************************************/
// @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_ListOrderItems
$request = new MarketplaceWebServiceOrders_Model_ListOrderItemsRequest();
$request->setSellerId(MERCHANT_ID);
// object or array of parameters
invokeListOrderItems($service, $request);
/**
 * Get List Order Items Action Sample
 * Gets competitive pricing and related information for a product identified by
 * the MarketplaceId and ASIN.
 *
 * @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);
Ejemplo n.º 7
0
/************************************************************************
 * Uncomment to try out Mock Service that simulates MarketplaceWebServiceOrders
 * 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)
{
/************************************************************************
 * Uncomment to try out Mock Service that simulates MarketplaceWebServiceOrders
 * 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)
{
Ejemplo n.º 9
0
 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;
 }
Ejemplo n.º 10
0
 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;
 }
Ejemplo n.º 11
0
 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;
     }
 }