示例#1
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_GetOrderRequest();
     $request->setSellerId(MERCHANT_ID);
     $request->setAmazonOrderId($this->AmazonOrderId);
     // object or array of parameters
     return $this->invokeGetOrder($service, $request);
 }
示例#2
0
 /**
  * Get Order
  * This operation takes up to 50 order ids and returns the corresponding orders.
  *
  * @param mixed $request array of parameters for MarketplaceWebServiceOrders_Model_GetOrder request or MarketplaceWebServiceOrders_Model_GetOrder object itself
  * @see MarketplaceWebServiceOrders_Model_GetOrderRequest
  * @return MarketplaceWebServiceOrders_Model_GetOrderResponse
  *
  * @throws MarketplaceWebServiceOrders_Exception
  */
 public function getOrder($request)
 {
     if (!$request instanceof MarketplaceWebServiceOrders_Model_GetOrderRequest) {
         $request = new MarketplaceWebServiceOrders_Model_GetOrderRequest($request);
     }
     $parameters = $request->toQueryParameterArray();
     $parameters['Action'] = 'GetOrder';
     $httpResponse = $this->_invoke($parameters);
     $response = MarketplaceWebServiceOrders_Model_GetOrderResponse::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 Get Order Action
 ***********************************************************************/
// @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_GetOrder
$request = new MarketplaceWebServiceOrders_Model_GetOrderRequest();
$request->setSellerId(MERCHANT_ID);
// object or array of parameters
invokeGetOrder($service, $request);
/**
 * Get Get Order 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_GetOrder or array of parameters
 */
function invokeGetOrder(MarketplaceWebServiceOrders_Interface $service, $request)
{
    try {
        $response = $service->GetOrder($request);
示例#4
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 Get Order Action
 ***********************************************************************/
$request = new MarketplaceWebServiceOrders_Model_GetOrderRequest();
$request->setSellerId(MERCHANT_ID);
// @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_GetOrderRequest
// object or array of parameters
// Set the list of AmazonOrderIds
$orderIds = new MarketplaceWebServiceOrders_Model_OrderIdList();
$orderIds->setId($_REQUEST['azoid']);
$request->setAmazonOrderId($orderIds);
invokeGetOrder($service, $request);
/**
 * Get Order Action Sample
 * This operation takes up to 50 order ids and returns the corresponding orders.
 *   
 * @param MarketplaceWebServiceOrders_Interface $service instance of MarketplaceWebServiceOrders_Interface
 * @param mixed $request MarketplaceWebServiceOrders_Model_GetOrder or array of parameters
 */
示例#5
0
 public function act_fetchOrder()
 {
     $message = "";
     $accountId = isset($_POST['amazon_account']) ? $_POST['amazon_account'] : "";
     $account = OmAvailableModel::getTNameList("om_account", "*", " where id={$accountId}");
     $account = $account[0]['account'];
     $recordNumber = isset($_POST['amazon_id']) ? $_POST['amazon_id'] : "";
     $amazon_account = isset($_POST['amazon_account']) ? $_POST['amazon_account'] : "";
     $site = isset($_POST['site']) ? $_POST['site'] : "";
     $recordNumbers = explode(",", $recordNumber);
     //print_r($recordNumbers);
     //$rids 	 = empty($_GET['rids']) ? array() : array_map('trim', explode(',', $_GET['rids']));
     $rids = array_values(array_unique(array_filter(array_map('trim', $recordNumbers))));
     if (!defined('WEB_PATH')) {
         define("WEB_PATH", "/data/web/order.valsun.cn/");
     }
     //define('SCRIPTS_PATH_CRONTAB', '/data/web/erpNew/order.valsun.cn/crontab/');
     require_once WEB_PATH . "crontab/scripts.comm.php";
     require_once WEB_PATH_CONF_SCRIPTS . "script.ebay.config.php";
     require_once WEB_PATH_LIB_SCRIPTS_AMAZON . "amazon_order_func.php";
     if (strtoupper($site) == "US") {
         $keyname = WEB_PATH_CONF_SCRIPTS_KEYS_AMAZON . "amazon_keys_{$account}.php";
     } elseif (strtoupper($site) == "UK" || strtoupper($site) == "DE") {
         $ext = strtolower($site);
         $keyname = WEB_PATH_CONF_SCRIPTS_KEYS_AMAZON . "amazon_keys_{$ext}_{$account}.php";
     }
     //echo $keyname;
     if (file_exists($keyname)) {
         include_once $keyname;
     } else {
         //exit ("未找对应的key文件!\n");
         $message .= "<font color='red'>未找对应的key文件</font>";
     }
     define('APPLICATION_NAME', $APPLICATION_NAME);
     define('APPLICATION_VERSION', $APPLICATION_VERSION);
     define('AWS_ACCESS_KEY_ID', $AWS_ACCESS_KEY_ID);
     define('AWS_SECRET_ACCESS_KEY', $AWS_SECRET_ACCESS_KEY);
     define('MERCHANT_ID', $MERCHANT_ID);
     define('MARKETPLACE_ID', $MARKETPLACE_ID);
     //echo "\n".get_include_path()."\n";
     set_include_path(get_include_path() . PATH_SEPARATOR . WEB_PATH_LIB_SDK_AMAZON);
     //
     //echo "\n".get_include_path()."\n";
     //
     /*function __autoload($className){
     			$filePath = str_replace('_', DIRECTORY_SEPARATOR, $className) . '.php';
     			$includePaths = explode('/', get_include_path());
     			foreach($includePaths as $includePath){
     				if(file_exists($includePath . DIRECTORY_SEPARATOR . $filePath)){
     					require_once $filePath;
     					return;
     				}
     			}
     		}*/
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Client.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Interface.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Exception.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Model/GetOrderRequest.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Model/OrderIdList.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Model/ListOrdersRequest.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Model/MarketplaceIdList.php';
     require_once WEB_PATH_LIB_SDK . 'amazon/MarketplaceWebServiceOrders/Model/ListOrderItemsRequest.php';
     $config = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3);
     $minute = 100;
     $start = date("Y-m-d H:i:s", time() - $minute * 60);
     //$order_statistics = new OrderStatistics();
     $service = new MarketplaceWebServiceOrders_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APPLICATION_NAME, APPLICATION_VERSION, $config);
     $request = new MarketplaceWebServiceOrders_Model_GetOrderRequest();
     $request->setSellerId(MERCHANT_ID);
     //$request->setCreatedAfter(new DateTime($start, new DateTimeZone('UTC')));
     //$request->setCreatedBefore(new DateTime('2012-08-03 12:00:00', new DateTimeZone('UTC')));
     //$request->setMarketplaceId($marketplaceIdList);
     //由account得出其accountId
     /*$tName = 'om_account';
     		$select = 'id';
     		$where = "WHERE account='$account' AND platformId=11"; //亚马孙平台id为11
     		$accountIdList = OmAvailableModel :: getTNameList($tName, $select, $where);
     		if (empty ($accountIdList)) {
     			exit ("$account is not in om_account!\n");
     		}
     		$accountId = $accountIdList[0]['id'];*/
     $transportList = CommonModel::getCarrierListById();
     $flip_transportList = array_flip($transportList);
     //var_dump($flip_transportList); exit;
     $orderIds = new MarketplaceWebServiceOrders_Model_OrderIdList();
     //echo "<pre>"; print_r($rids);
     $orderIds->setId($rids);
     $request->setAmazonOrderId($orderIds);
     $info = self::act_invokeListOrders($service, $request, $account, $site, $accountId, $flip_transportList, $message);
     return $info;
 }
 public function getOrder_v2($OrderID)
 {
     WPLA()->logger->info('getOrder() - ' . $OrderID);
     $this->initAPI('Orders');
     $request = new MarketplaceWebServiceOrders_Model_GetOrderRequest();
     $request->setSellerId($this->SellerId);
     // $request->setMarketplaceId( $this->MarketplaceId );
     // set AmazonOrderId
     $request->setAmazonOrderId($OrderID);
     // invoke request
     try {
         $response = $this->service->GetOrder($request);
         echo "<pre>";
         print_r($response);
         echo "</pre>";
         #die();
         echo "<pre>";
         // $xml_data = $response->toXML();
         // echo "<pre>";print_r($xml_data);echo"</pre>";#die();
         echo "        GetOrderResponse\n";
         if ($response->isSetGetOrderResult()) {
             echo "            GetOrderResult\n";
             $getOrderResult = $response->getGetOrderResult();
             if ($getOrderResult->isSetOrders()) {
                 echo "                Orders\n";
                 $orders = $getOrderResult->getOrders();
                 $orderList = $orders->getOrder();
                 foreach ($orderList as $order) {
                     echo "                    Order\n";
                     if ($order->isSetAmazonOrderId()) {
                         echo "                        AmazonOrderId\n";
                         echo "                            " . $order->getAmazonOrderId() . "\n";
                     }
                     if ($order->isSetSellerOrderId()) {
                         echo "                        SellerOrderId\n";
                         echo "                            " . $order->getSellerOrderId() . "\n";
                     }
                     if ($order->isSetPurchaseDate()) {
                         echo "                        PurchaseDate\n";
                         echo "                            " . $order->getPurchaseDate() . "\n";
                     }
                     if ($order->isSetLastUpdateDate()) {
                         echo "                        LastUpdateDate\n";
                         echo "                            " . $order->getLastUpdateDate() . "\n";
                     }
                     if ($order->isSetOrderStatus()) {
                         echo "                        OrderStatus\n";
                         echo "                            " . $order->getOrderStatus() . "\n";
                     }
                     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";
                     }
                     if ($order->isSetShippingAddress()) {
                         echo "                        ShippingAddress\n";
                         $shippingAddress = $order->getShippingAddress();
                         if ($shippingAddress->isSetName()) {
                             echo "                            Name\n";
                             echo "                                " . $shippingAddress->getName() . "\n";
                         }
                         if ($shippingAddress->isSetAddressLine1()) {
                             echo "                            AddressLine1\n";
                             echo "                                " . $shippingAddress->getAddressLine1() . "\n";
                         }
                         if ($shippingAddress->isSetAddressLine2()) {
                             echo "                            AddressLine2\n";
                             echo "                                " . $shippingAddress->getAddressLine2() . "\n";
                         }
                         if ($shippingAddress->isSetAddressLine3()) {
                             echo "                            AddressLine3\n";
                             echo "                                " . $shippingAddress->getAddressLine3() . "\n";
                         }
                         if ($shippingAddress->isSetCity()) {
                             echo "                            City\n";
                             echo "                                " . $shippingAddress->getCity() . "\n";
                         }
                         if ($shippingAddress->isSetCounty()) {
                             echo "                            County\n";
                             echo "                                " . $shippingAddress->getCounty() . "\n";
                         }
                         if ($shippingAddress->isSetDistrict()) {
                             echo "                            District\n";
                             echo "                                " . $shippingAddress->getDistrict() . "\n";
                         }
                         if ($shippingAddress->isSetStateOrRegion()) {
                             echo "                            StateOrRegion\n";
                             echo "                                " . $shippingAddress->getStateOrRegion() . "\n";
                         }
                         if ($shippingAddress->isSetPostalCode()) {
                             echo "                            PostalCode\n";
                             echo "                                " . $shippingAddress->getPostalCode() . "\n";
                         }
                         if ($shippingAddress->isSetCountryCode()) {
                             echo "                            CountryCode\n";
                             echo "                                " . $shippingAddress->getCountryCode() . "\n";
                         }
                         if ($shippingAddress->isSetPhone()) {
                             echo "                            Phone\n";
                             echo "                                " . $shippingAddress->getPhone() . "\n";
                         }
                     }
                     if ($order->isSetOrderTotal()) {
                         echo "                        OrderTotal\n";
                         $orderTotal = $order->getOrderTotal();
                         if ($orderTotal->isSetCurrencyCode()) {
                             echo "                            CurrencyCode\n";
                             echo "                                " . $orderTotal->getCurrencyCode() . "\n";
                         }
                         if ($orderTotal->isSetAmount()) {
                             echo "                            Amount\n";
                             echo "                                " . $orderTotal->getAmount() . "\n";
                         }
                     }
                     if ($order->isSetNumberOfItemsShipped()) {
                         echo "                        NumberOfItemsShipped\n";
                         echo "                            " . $order->getNumberOfItemsShipped() . "\n";
                     }
                     if ($order->isSetNumberOfItemsUnshipped()) {
                         echo "                        NumberOfItemsUnshipped\n";
                         echo "                            " . $order->getNumberOfItemsUnshipped() . "\n";
                     }
                     if ($order->isSetPaymentExecutionDetail()) {
                         echo "                        PaymentExecutionDetail\n";
                         $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->isSetPaymentMethod()) {
                                 echo "                                PaymentMethod\n";
                                 echo "                                    " . $paymentExecutionDetailItem->getPaymentMethod() . "\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";
                     }
                     if ($order->isSetBuyerName()) {
                         echo "                        BuyerName\n";
                         echo "                            " . $order->getBuyerName() . "\n";
                     }
                     if ($order->isSetShipmentServiceLevelCategory()) {
                         echo "                        ShipmentServiceLevelCategory\n";
                         echo "                            " . $order->getShipmentServiceLevelCategory() . "\n";
                     }
                     if ($order->isSetShippedByAmazonTFM()) {
                         echo "                        ShippedByAmazonTFM\n";
                         echo "                            " . $order->getShippedByAmazonTFM() . "\n";
                     }
                     if ($order->isSetTFMShipmentStatus()) {
                         echo "                        TFMShipmentStatus\n";
                         echo "                            " . $order->getTFMShipmentStatus() . "\n";
                     }
                 }
             }
         }
         // parse XML response
         // $dom = new DOMDocument();
         // $dom->loadXML($response->toXML());
         // $dom->preserveWhiteSpace = false;
         // $dom->formatOutput = true;
         // $xml_data = $dom->saveXML();
         // WPLA()->logger->info('XML:'.print_r($xml_data,1));
         // $parsed_xml = $this->parseXML( $xml_data );
         // WPLA()->logger->info('parsed_xml:'.print_r($parsed_xml,1));
         // $res = $response->getGetMatchingProductForIdResult();
         // echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");
         // if ($response->isSetSubmitFeedResult()) {
         //     $submitFeedResult = $response->getSubmitFeedResult();
         //     if ($submitFeedResult->isSetFeedSubmissionInfo()) {
         //         $feedSubmissionInfo = $submitFeedResult->getFeedSubmissionInfo();
         //         if ( $feedSubmissionInfo->isSetFeedSubmissionId() ) {
         //             $result = new stdClass();
         //             $result->FeedSubmissionId     = $feedSubmissionInfo->getFeedSubmissionId();
         //             $result->FeedProcessingStatus = $feedSubmissionInfo->getFeedProcessingStatus();
         //             $result->FeedType             = $feedSubmissionInfo->getFeedType();
         //             $result->SubmittedDate        = $feedSubmissionInfo->getSubmittedDate()->format(DATE_FORMAT);
         //             $result->success              = true;
         //             // log to db - parsed request
         //             $this->dblogger->updateLog( array(
         //                 'result'    => json_encode( $result ),
         //                 'success'   => 'Success'
         //             ));
         //             return $result;
         //         }
         //     }
         // }
         $result = new stdClass();
         // $result->product = $parsed_xml;
         $result->order = 'TODO';
         $result->success = true;
         // log to db - parsed request
         $this->dblogger->updateLog(array('response' => $xml_data, 'result' => json_encode($result->order), 'success' => 'Success'));
         return $result;
     } catch (MarketplaceWebServiceOrders_Exception $ex) {
         $error = new stdClass();
         $error->ErrorMessage = $ex->getMessage();
         $error->ErrorCode = $ex->getErrorCode();
         $error->StatusCode = $ex->getStatusCode();
         $error->ErrorType = $ex->getErrorType();
         $error->RequestId = $ex->getRequestId();
         $error->XML = $ex->getXML();
         $error->HeaderMeta = $ex->getResponseHeaderMetadata();
         // log to db - parsed request
         $this->dblogger->updateLog(array('result' => json_encode($error), 'success' => 'Error'));
         return $error;
     }
     $result = new stdClass();
     $result->success = false;
     return $result;
 }
function amazon_process_order($pAmazonOrderId)
{
    global $gAmazonMWS, $gBitUser, $gCommerceSystem, $gBitCustomer, $currencies, $order;
    $ret = NULL;
    $request = new MarketplaceWebServiceOrders_Model_GetOrderRequest();
    $request->setSellerId(MERCHANT_ID);
    // @TODO: set request. Action can be passed as MarketplaceWebServiceOrders_Model_GetOrderRequest
    // object or array of parameters
    // Set the list of AmazonOrderIds
    $orderIds = new MarketplaceWebServiceOrders_Model_OrderIdList();
    $orderIds->setId(array($pAmazonOrderId));
    $request->setAmazonOrderId($orderIds);
    $holdUser = $gBitUser;
    $azUser = new BitPermUser($holdUser->lookupHomepage($gCommerceSystem->getConfig('MODULE_PAYMENT_AMAZONMWS_LOCAL_USERNAME', 'amazonmws')));
    $azUser->load();
    $gBitUser = $azUser;
    $gBitCustomer = new CommerceCustomer($gBitUser->mUserId);
    $gBitCustomer->syncBitUser($gBitUser->mInfo);
    $_SESSION['customer_id'] = $gBitUser->mUserId;
    try {
        $response = $gAmazonMWS->getOrder($request);
        if ($response->isSetGetOrderResult()) {
            $getOrderResult = $response->getGetOrderResult();
            if ($getOrderResult->isSetOrders()) {
                $oldCwd = getcwd();
                chdir(BITCOMMERCE_PKG_PATH);
                $azOrderList = $getOrderResult->getOrders();
                if ($azOrders = $azOrderList->getOrder()) {
                    require_once BITCOMMERCE_PKG_PATH . 'classes/CommerceOrder.php';
                    $order = new order();
                    $order->info = array('order_status' => DEFAULT_ORDERS_STATUS_ID, 'subtotal' => 0, 'tax' => 0, 'total' => 0, 'tax_groups' => array(), 'comments' => isset($_SESSION['comments']) ? $_SESSION['comments'] : '', 'ip_address' => $_SERVER['REMOTE_ADDR']);
                    $azOrder = current($azOrders);
                    // Setup delivery address
                    if ($orderTotal = $azOrder->getOrderTotal()) {
                        $order->info['total'] = $orderTotal->getAmount();
                        $order->info['currency'] = $orderTotal->getCurrencyCode();
                        $order->info['currency_value'] = $currencies->currencies[$order->info['currency']]['currency_value'];
                    }
                    if ($shippingAddress = $azOrder->getShippingAddress()) {
                        $country = zen_get_countries(zen_get_country_id($shippingAddress->getCountryCode()), TRUE);
                        $zoneName = zen_get_zone_name_by_code($country['countries_id'], $shippingAddress->getStateOrRegion());
                        $order->delivery = array('firstname' => substr($shippingAddress->getName(), 0, strpos($shippingAddress->getName(), ' ')), 'lastname' => substr($shippingAddress->getName(), strpos($shippingAddress->getName(), ' ') + 1), 'company' => NULL, 'street_address' => $shippingAddress->getAddressLine1(), 'suburb' => trim($shippingAddress->getAddressLine2() . ' ' . $shippingAddress->getAddressLine3()), 'city' => $shippingAddress->getCity(), 'postcode' => $shippingAddress->getPostalCode(), 'state' => $zoneName, 'country' => $country, 'format_id' => $country['address_format_id'], 'telephone' => $shippingAddress->getPhone(), 'email_address' => NULL);
                        $order->customer = $order->delivery;
                        $order->billing = $order->delivery;
                    }
                    // Setup shipping
                    $shipping = array('cost' => 0);
                    switch ($azOrder->getShipServiceLevel()) {
                        case 'Std US Dom':
                            $shipping['id'] = 'usps_MEDIA';
                            $shipping['title'] = 'United States Postal Service (USPS Media Mail (1 - 2 Weeks))';
                            $shipping['code'] = 'USPSREG';
                            break;
                    }
                    $azOrderItems = amazon_mws_get_order_items($azOrder->getAmazonOrderId());
                    $azOrderItem = $azOrderItems->getOrderItem();
                    foreach ($azOrderItem as $azi) {
                        $testSku = $azi->getSellerSKU();
                        list($productsId, $attrString) = explode(':', $testSku, 2);
                        $productsKey = $productsId . ':ASIN-' . $azi->getASIN();
                        $order->contents[$productsKey] = $gBitCustomer->mCart->getProductHash($productsKey);
                        $order->contents[$productsKey]['products_quantity'] = $azi->getQuantityOrdered();
                        $order->contents[$productsKey]['products_name'] = $azi->getTitle();
                        if ($itemPrice = $azi->getItemPrice()) {
                            //							{$itemTax->getCurrencyCode()}
                            $order->contents[$productsKey]['price'] = $itemPrice->getAmount();
                            $order->contents[$productsKey]['final_price'] = $itemPrice->getAmount();
                        }
                        if ($itemTax = $azi->getItemTax()) {
                            //							{$itemTax->getCurrencyCode()}
                            $order->contents[$productsKey]['tax'] = $itemTax->getAmount();
                        }
                        if ($shippingPrice = $azi->getShippingPrice()) {
                            //							{$itemTax->getCurrencyCode()}
                            $order->info['shipping_cost'] = $shippingPrice->getAmount();
                        }
                        if (empty($attrString)) {
                            $attrString = $gCommerceSystem->getConfig('MODULE_PAYMENT_AMAZONMWS_DEFAULT_ATTRIBUTES');
                        }
                        // stock up the attributes
                        if ($attrString && ($attrs = explode(',', $attrString))) {
                            foreach ($attrs as $optionValueId) {
                                $optionId = $order->mDb->getOne("SELECT cpa.`products_options_id` FROM " . TABLE_PRODUCTS_ATTRIBUTES . " cpa WHERE cpa.`products_options_values_id`=?", array($optionValueId));
                                $order->contents[$productsKey]['attributes'][$optionId . '_' . $optionValueId] = $optionValueId;
                            }
                        }
                        if (!empty($order->contents[$productsKey]['attributes'])) {
                            $attributes = $order->contents[$productsKey]['attributes'];
                            $order->contents[$productsKey]['attributes'] = array();
                            $subindex = 0;
                            foreach ($attributes as $option => $value) {
                                $optionValues = zen_get_option_value(zen_get_options_id($option), (int) $value);
                                // Determine if attribute is a text attribute and change products array if it is.
                                if ($value == PRODUCTS_OPTIONS_VALUES_TEXT_ID) {
                                    $attr_value = $order->contents[$productsKey]['attributes_values'][$option];
                                } else {
                                    $attr_value = $optionValues['products_options_values_name'];
                                }
                                $order->contents[$productsKey]['attributes'][$subindex] = array('option' => $optionValues['products_options_name'], 'value' => $attr_value, 'option_id' => $option, 'value_id' => $value, 'prefix' => $optionValues['price_prefix'], 'price' => $optionValues['options_values_price']);
                                $subindex++;
                            }
                        }
                        $shown_price = zen_add_tax($order->contents[$productsKey]['final_price'], $order->contents[$productsKey]['tax']) * $order->contents[$productsKey]['products_quantity'] + zen_add_tax($order->contents[$productsKey]['onetime_charges'], $order->contents[$productsKey]['tax']);
                        $order->subtotal += $shown_price;
                        $products_tax = $order->contents[$productsKey]['tax'];
                        $products_tax_description = $order->contents[$productsKey]['tax_description'];
                        if (DISPLAY_PRICE_WITH_TAX == 'true') {
                            $order->info['tax'] += $shown_price - $shown_price / ($products_tax < 10 ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax));
                            if (isset($order->info['tax_groups']["{$products_tax_description}"])) {
                                $order->info['tax_groups']["{$products_tax_description}"] += $shown_price - $shown_price / ($products_tax < 10 ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax));
                            } else {
                                $order->info['tax_groups']["{$products_tax_description}"] = $shown_price - $shown_price / ($products_tax < 10 ? "1.0" . str_replace('.', '', $products_tax) : "1." . str_replace('.', '', $products_tax));
                            }
                        } else {
                            $order->info['tax'] += $products_tax / 100 * $shown_price;
                            if (isset($order->info['tax_groups']["{$products_tax_description}"])) {
                                $order->info['tax_groups']["{$products_tax_description}"] += $products_tax / 100 * $shown_price;
                            } else {
                                $order->info['tax_groups']["{$products_tax_description}"] = $products_tax / 100 * $shown_price;
                            }
                        }
                        $order->info['tax'] = zen_round($order->info['tax'], 2);
                        if ($azi->isSetShippingPrice()) {
                            $shippingPrice = $azi->getShippingPrice();
                            $shipping['cost'] += $shippingPrice->getAmount();
                        }
                    }
                    foreach (array('cc_type', 'cc_owner', 'cc_number', 'cc_expires', 'coupon_code') as $key) {
                        $order->info[$key] = NULL;
                    }
                    $order->info['shipping_method'] = $shipping['title'];
                    $order->info['shipping_method_code'] = $shipping['code'];
                    $order->info['shipping_module_code'] = $shipping['id'];
                    $order->info['payment_module_code'] = 'amazonmws';
                    $order->info['payment_method'] = 'Amazon Order';
                    $_SESSION['sendto'] = NULL;
                    $_SESSION['shipping'] = $shipping;
                    unset($_SESSION['cot_gv']);
                    require_once DIR_FS_CLASSES . 'order_total.php';
                    global $order_total_modules;
                    $order_total_modules = new order_total();
                    $order_totals = $order_total_modules->pre_confirmation_check();
                    require_once DIR_WS_MODULES . 'payment/amazonmws.php';
                    $amazon = new amazonmws($azOrder->getAmazonOrderId());
                    $amazonOutput = $amazon->process();
                    $order_totals = $order_total_modules->process();
                    array_splice($order_totals, count($order_totals) - 1, 0, array($amazonOutput));
                    if ($ordersId = $order->create($order_totals, 2)) {
                        $order->create_add_products($ordersId);
                        $ret = $ordersId;
                        $order->updateStatus(array('status' => MODULE_PAYMENT_AMAZONMWS_INITIAL_ORDER_STATUS_ID));
                    }
                }
                chdir($oldCwd);
            }
        }
    } 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";
    }
    $gBitUser = $holdUser;
    $gBitCustomer = new CommerceCustomer($gBitUser->mUserId);
    $_SESSION['customer_id'] = $gBitUser->mUserId;
    return $ret;
}
示例#8
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;
     }
 }