コード例 #1
0
 //echo $file;exit;
 $feed = setFeedXml($dat);
 //print_r($feed);exit;
 error_reporting(-1);
 file_put_contents($file, $feed);
 file_put_contents($xmlFile, '');
 $feedHandle = fopen($file, 'rw+');
 // fopen('php://temp', 'rw+');
 fwrite($feedHandle, $feed);
 rewind($feedHandle);
 //设置接口参数
 $parameters = array('Merchant' => MERCHANT_ID, 'MarketplaceIdList' => $marketplaceIdArray, 'FeedType' => '_POST_ORDER_FULFILLMENT_DATA_', 'FeedContent' => $feedHandle, 'PurgeAndReplace' => false, 'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)));
 rewind($feedHandle);
 //echo "==============="; echo "\n";
 $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
 $submissionId = invokeSubmitFeed($service, $request);
 //echo $submissionId."\r\n";
 fclose($feedHandle);
 //***************end------- 上传跟踪号*******************
 sleep(120);
 //暂停120秒再查询$submissionId
 //***************begin----- 检测跟踪号状态*******************
 getFeedStatus($submissionId, $service, $xmlFile);
 while (true) {
     if (is_file($xmlFile)) {
         $requestXml = file_get_contents($xmlFile);
         $xmlResult = xml_to_array($requestXml);
         if (isset($xmlResult['ErrorResponse']['Error'])) {
             sleep(90);
             getFeedStatus($submissionId, $service, $xmlFile);
         } else {
コード例 #2
0
$marketplaceIdArray = array("Id" => array(MARKETPLACE_ID));
$now = date(DATE_ATOM);
//提供给amazon mws的必须是带时区的DATE_ATOM格式
$dat = array(array("AmazonOrderID" => "203-9224758-5617961", "FulfillmentDate" => $now, "CarrierName" => "Specify carrier", "ShippingMethod" => "Deutschland Post", "ShipperTrackingNumber" => "RG267410498DE"));
//$tName = 'om_unshipped_order';
//$select = '';
//OmAvailableModel::getTNameList();
$feed = setFeedXml($dat);
$feedHandle = fopen('php://temp', 'rw+');
fwrite($feedHandle, $feed);
rewind($feedHandle);
//设置接口参数
$parameters = array('Merchant' => MERCHANT_ID, 'MarketplaceIdList' => $marketplaceIdArray, 'FeedType' => '_POST_ORDER_FULFILLMENT_DATA_', 'FeedContent' => $feedHandle, 'PurgeAndReplace' => false, 'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)));
rewind($feedHandle);
$request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
invokeSubmitFeed($service, $request);
fclose($feedHandle);
//组装xml文件
function setFeedXml($ret)
{
    $xmlHeader = '<?xml version="1.0" encoding="UTF-8"?>
						<AmazonEnvelope xsi:noNamespaceSchemaLocation="amzn-envelope.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
						<Header>
							<DocumentVersion>1.01</DocumentVersion>
							<MerchantIdentifier>ListingsContentHandler</MerchantIdentifier>
						</Header>
						<MessageType>OrderFulfillment</MessageType>';
    $xmlBody = "";
    foreach ($ret as $k => $v) {
        $index = $k + 1;
        $xmlBody .= '<Message>
コード例 #3
0
ファイル: S.php プロジェクト: bizonix/sailvan
function markettoamazon($ebay_id)
{
    global $MERCHANT_ID, $request, $service, $dbConn, $user, $nowtime;
    $start0 = strtotime("{$nowtime} -16 hours");
    $shiptime = date('Y-m-d', $start0) . 'T' . date('H:i:s', $start0) . '-00:00';
    echo 'ff' . $shiptime;
    die;
    $sq = "select * from ebay_order where ebay_id='{$ebay_id}'";
    $sq = $dbConn->execute($sq);
    $sq = $dbConn->getResultArray($sq);
    $corder = $sq[0]['ebay_combine'];
    $corder = explode('#', $corder);
    $ebay_ordersn = $sq[0]['ebay_ordersn'];
    $ebay_tracknumber = $sq[0]['ebay_tracknumber'];
    $ebay_carrier = $sq[0]['ebay_carrier'];
    $account = $sq[0]['ebay_account'];
    $sql = "select * from ebay_account where ebay_user='******' and ebay_account='{$account}'";
    $sql = $dbConn->execute($sql);
    $sql = $dbConn->getResultArray($sql);
    $token = $sql[0]['ebay_token'];
    // ebay toekn
    $MERCHANT_ID = $sql[0]['MERCHANT_ID'];
    // amazon key
    $MARKETPLACE_ID = $sql[0]['MARKETPLACE_ID'];
    // amazon key
    /* 检查订单项的资料 */
    $sq = "select * from ebay_orderdetail where ebay_ordersn='{$ebay_ordersn}'";
    $sq = $dbConn->execute($sq);
    $sq = $dbConn->getResultArray($sq);
    $Itemstr = '';
    for ($i = 0; $i < count($sq); $i++) {
        $recordnumber = $sq[$i]['recordnumber'];
        $ebay_amount = $sq[$i]['ebay_amount'];
        $Itemstr = '<Item>
                <AmazonOrderItemCode>' . $recordnumber . '</AmazonOrderItemCode>
                <Quantity>' . $ebay_amount . '</Quantity>
            </Item>';
    }
    /* 取得订单的对应的运送方式的值 */
    $ss = "select * from ebay_carrier where name='{$ebay_carrier}' and ebay_user='******'";
    $ss = $dbConn->execute($ss);
    $ss = $dbConn->getResultArray($ss);
    $ebay_carrier = $ss[0]['value'];
    if ($ebay_carrier == '') {
        echo $ebay_ordersn . ' 未设置运送方式, 不能上传更新<br>';
        return;
    }
    $feed = <<<EOD
<?xml version="1.0" encoding="UTF-8"?>
<AmazonEnvelope xsi:noNamespaceSchemaLocation="amzn-envelope.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Header>
        <DocumentVersion>1.01</DocumentVersion>
        <MerchantIdentifier>{$MERCHANT_ID}</MerchantIdentifier>
    </Header>
    <MessageType>OrderFulfillment</MessageType>
    <Message>
        <MessageID>1</MessageID>
        <OperationType>Update</OperationType>
        <OrderFulfillment>
            <AmazonOrderID>{$ebay_ordersn}</AmazonOrderID>
            <FulfillmentDate>2012-08-03T04:59:59-07:00</FulfillmentDate>
<FulfillmentData> 
<CarrierName>{$ebay_carrier}</CarrierName> 
<ShippingMethod>{$ebay_carrier}</ShippingMethod> 
<ShipperTrackingNumber>{$ebay_tracknumber}</ShipperTrackingNumber> 
</FulfillmentData> 
           {$Itemstr}
        </OrderFulfillment>
    </Message>
</AmazonEnvelope>
EOD;
    echo $feed;
    die;
    $marketplaceIdArray = array("Id" => array($MARKETPLACE_ID));
    $feedHandle = @fopen('php://temp', 'rw+');
    fwrite($feedHandle, $feed);
    rewind($feedHandle);
    $parameters = array('Merchant' => $MERCHANT_ID, 'MarketplaceIdList' => $marketplaceIdArray, 'FeedType' => '_POST_ORDER_FULFILLMENT_DATA_', 'FeedContent' => $feedHandle, 'PurgeAndReplace' => false, 'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)));
    rewind($feedHandle);
    $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
    invokeSubmitFeed($service, $request);
    @fclose($feedHandle);
}
コード例 #4
0
    /**
     * MwsfeedProductPrice method
     *
     * @return json
     */
    public function mwsfeedProductPrice()
    {
        $this->autoRender = FALSE;
        $vender_id = 3;
        $conn = ConnectionManager::get('default');
        $query = $conn->query('SELECT `secondaries`.* ,(CASE WHEN `item_discounts`.`discount` IS NULL THEN `brand_discounts`.`discount` ELSE `item_discounts`.`discount` END) as `final_discount` FROM `secondaries` 
LEFT JOIN brand_discounts ON (`brand_discounts`.`brand_code` = `secondaries`.`brand_code` AND `brand_discounts`.`vendor_id` = ' . $vender_id . ' and `brand_discounts`.`status` =1 AND (NOW() BETWEEN `brand_discounts`.`start_date` AND `brand_discounts`.`end_date`)) 
LEFT JOIN item_discounts ON ( `item_discounts`.`sku` = `secondaries`.`sku` AND `item_discounts`.`vendor_id` = ' . $vender_id . ' AND (NOW() BETWEEN `item_discounts`.`start_date` AND `item_discounts`.`end_date`)) 
INNER JOIN brands on (`brands`.`brand_code` = `secondaries`.`brand_code` AND `brands`.`status` =1) 
INNER JOIN stores on (`stores`.`store_code` = `secondaries`.`store_code` AND `stores`.`status` =1) WHERE `secondaries`.`stock` > `secondaries`.`layaway`');
        $feedEthos = "";
        foreach ($query as $key => $item) {
            if ($key > 10) {
                continue;
            }
            $sku = $item['sku'];
            $price = $item['price'];
            $discount = $item['final_discount'];
            if (!empty($discount)) {
                $finalPrice = round($price - $price * $discount / 100, 2);
            } else {
                $finalPrice = round($price, 2);
            }
            $feedEthos .= "<Message>\n                            <MessageID>" . $key . "</MessageID>\n                            <OperationType>Update</OperationType>\n                            <Price>\n                                <SKU>" . $sku . "</SKU>\n                                <StandardPrice currency='INR'>" . $finalPrice . "</StandardPrice>\t\t\t\n                            </Price>\n\t\t\t</Message>";
        }
        /**
         *  PHP Version 5
         *
         * @category    Amazon
         * @package     MarketplaceWebService
         * @copyright   Copyright 2009 Amazon Technologies, Inc.
         * @link        http://aws.amazon.com
         * @license     http://aws.amazon.com/apache2.0  Apache License, Version 2.0
         * @version     2009-01-01
         */
        /*******************************************************************************
         *  Marketplace Web Service PHP5 Library
         *  Generated: Thu May 07 13:07:36 PDT 2009
         *
         */
        /**
         * Submit Feed  Sample
         */
        //include_once('.config.inc.php');
        require_once ROOT . DS . 'vendor' . DS . 'brickfox' . DS . 'mws' . DS . 'src' . DS . 'MarketplaceWebService' . DS . 'Api' . DS . '.config.inc.php';
        /************************************************************************
         * Uncomment to configure the client instance. Configuration settings
         * are:
         *
         * - MWS endpoint URL
         * - Proxy host and port.
         * - MaxErrorRetry.
         ***********************************************************************/
        // IMPORTANT: Uncomment the approiate line for the country you wish to
        // sell in:
        // United States:
        //$serviceUrl = "https://mws.amazonservices.com";
        // United Kingdom
        //$serviceUrl = "https://mws.amazonservices.co.uk";
        // Germany
        //$serviceUrl = "https://mws.amazonservices.de";
        // France
        //$serviceUrl = "https://mws.amazonservices.fr";
        // Italy
        //$serviceUrl = "https://mws.amazonservices.it";
        // Japan
        //$serviceUrl = "https://mws.amazonservices.jp";
        // China
        //$serviceUrl = "https://mws.amazonservices.com.cn";
        // Canada
        //$serviceUrl = "https://mws.amazonservices.ca";
        // India
        $serviceUrl = "https://mws.amazonservices.in";
        $config = array('ServiceURL' => $serviceUrl, 'ProxyHost' => null, 'ProxyPort' => -1, 'MaxErrorRetry' => 3);
        /************************************************************************
         * Instantiate Implementation of MarketplaceWebService
         *
         * AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY constants
         * are defined in the .config.inc.php located in the same
         * directory as this sample
         ***********************************************************************/
        $service = new MarketplaceWebService_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, $config, APPLICATION_NAME, APPLICATION_VERSION);
        /************************************************************************
         * Uncomment to try out Mock Service that simulates MarketplaceWebService
         * responses without calling MarketplaceWebService service.
         *
         * Responses are loaded from local XML files. You can tweak XML files to
         * experiment with various outputs during development
         *
         * XML files available under MarketplaceWebService/Mock tree
         *
         ***********************************************************************/
        // $service = new MarketplaceWebService_Mock();
        /************************************************************************
         * Setup request parameters and uncomment invoke to try out
         * sample for Submit Feed Action
         ***********************************************************************/
        // @TODO: set request. Action can be passed as MarketplaceWebService_Model_SubmitFeedRequest
        // object or array of parameters
        // Note that PHP memory streams have a default limit of 2M before switching to disk. While you
        // can set the limit higher to accomidate your feed in memory, it's recommended that you store
        // your feed on disk and use traditional file streams to submit your feeds. For conciseness, this
        // examples uses a memory stream.
        $feed = '<?xml version="1.0" encoding="UTF-8"?>
        <AmazonEnvelope xsi:noNamespaceSchemaLocation="amzn-envelope.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <Header>
        <DocumentVersion>1.01</DocumentVersion>
        <MerchantIdentifier>A21TJRUUN4KGV</MerchantIdentifier>
        </Header>
        <MessageType>Price</MessageType>
        ' . $feedEthos . '
        </AmazonEnvelope>';
        // Constructing the MarketplaceId array which will be passed in as the the MarketplaceIdList
        // parameter to the SubmitFeedRequest object.
        //$marketplaceIdArray = array("Id" => array('<Marketplace_Id_1>','<Marketplace_Id_2>'));
        $marketplaceIdArray = array("Id" => array('A21TJRUUN4KGV'));
        // MWS request objects can be constructed two ways: either passing an array containing the
        // required request parameters into the request constructor, or by individually setting the request
        // parameters via setter methods.
        // Uncomment one of the methods below.
        /********* Begin Comment Block *********/
        $feedHandle = @fopen('php://temp', 'rw+');
        fwrite($feedHandle, $feed);
        rewind($feedHandle);
        $parameters = array('Merchant' => 'A2NO191O6JIY8M', 'MarketplaceIdList' => $marketplaceIdArray, 'FeedType' => '_POST_PRODUCT_PRICING_DATA_', 'FeedContent' => $feedHandle, 'PurgeAndReplace' => false, 'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)), 'MWSAuthToken' => 'M_ETHOSWATCH_4685999');
        rewind($feedHandle);
        $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
        /********* End Comment Block *********/
        /********* Begin Comment Block *********/
        //$feedHandle = @fopen('php://memory', 'rw+');
        //fwrite($feedHandle, $feed);
        //rewind($feedHandle);
        //$request = new MarketplaceWebService_Model_SubmitFeedRequest();
        //$request->setMerchant(MERCHANT_ID);
        //$request->setMarketplaceIdList($marketplaceIdArray);
        //$request->setFeedType('_POST_PRODUCT_DATA_');
        //$request->setContentMd5(base64_encode(md5(stream_get_contents($feedHandle), true)));
        //rewind($feedHandle);
        //$request->setPurgeAndReplace(false);
        //$request->setFeedContent($feedHandle);
        //$request->setMWSAuthToken('<MWS Auth Token>'); // Optional
        //rewind($feedHandle);
        /********* End Comment Block *********/
        echo '<pre>';
        print_r($request);
        print_r($service);
        die;
        invokeSubmitFeed($service, $request);
        //@fclose($feedHandle);
        /**
         * Submit Feed Action Sample
         * Uploads a file for processing together with the necessary
         * metadata to process the file, such as which type of feed it is.
         * PurgeAndReplace if true means that your existing e.g. inventory is
         * wiped out and replace with the contents of this feed - use with
         * caution (the default is false).
         *
         * @param MarketplaceWebService_Interface $service instance of MarketplaceWebService_Interface
         * @param mixed $request MarketplaceWebService_Model_SubmitFeed or array of parameters
         */
        function invokeSubmitFeed(MarketplaceWebService_Interface $service, $request)
        {
            try {
                $response = $service->submitFeed($request);
                echo "Service Response\n";
                echo "=============================================================================\n";
                echo "        SubmitFeedResponse\n";
                if ($response->isSetSubmitFeedResult()) {
                    echo "            SubmitFeedResult\n";
                    $submitFeedResult = $response->getSubmitFeedResult();
                    if ($submitFeedResult->isSetFeedSubmissionInfo()) {
                        echo "                FeedSubmissionInfo\n";
                        $feedSubmissionInfo = $submitFeedResult->getFeedSubmissionInfo();
                        if ($feedSubmissionInfo->isSetFeedSubmissionId()) {
                            echo "                    FeedSubmissionId\n";
                            echo "                        " . $feedSubmissionInfo->getFeedSubmissionId() . "\n";
                        }
                        if ($feedSubmissionInfo->isSetFeedType()) {
                            echo "                    FeedType\n";
                            echo "                        " . $feedSubmissionInfo->getFeedType() . "\n";
                        }
                        if ($feedSubmissionInfo->isSetSubmittedDate()) {
                            echo "                    SubmittedDate\n";
                            echo "                        " . $feedSubmissionInfo->getSubmittedDate()->format(DATE_FORMAT) . "\n";
                        }
                        if ($feedSubmissionInfo->isSetFeedProcessingStatus()) {
                            echo "                    FeedProcessingStatus\n";
                            echo "                        " . $feedSubmissionInfo->getFeedProcessingStatus() . "\n";
                        }
                        if ($feedSubmissionInfo->isSetStartedProcessingDate()) {
                            echo "                    StartedProcessingDate\n";
                            echo "                        " . $feedSubmissionInfo->getStartedProcessingDate()->format(DATE_FORMAT) . "\n";
                        }
                        if ($feedSubmissionInfo->isSetCompletedProcessingDate()) {
                            echo "                    CompletedProcessingDate\n";
                            echo "                        " . $feedSubmissionInfo->getCompletedProcessingDate()->format(DATE_FORMAT) . "\n";
                        }
                    }
                }
                if ($response->isSetResponseMetadata()) {
                    echo "            ResponseMetadata\n";
                    $responseMetadata = $response->getResponseMetadata();
                    if ($responseMetadata->isSetRequestId()) {
                        echo "                RequestId\n";
                        echo "                    " . $responseMetadata->getRequestId() . "\n";
                    }
                }
                echo "            ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n";
            } catch (MarketplaceWebService_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";
                echo "ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "\n";
            }
        }
    }