View difference between Paste ID: Lv0vXYJG and 6ML1xxzw
SHOW: | | - or go back to the newest paste.
1
<?php
2
3
/** 
4
 *  PHP Version 5
5
 *
6
 *  @category    Amazon
7
 *  @package     MarketplaceWebService
8
 *  @copyright   Copyright 2009 Amazon Technologies, Inc.
9
 *  @link        http://aws.amazon.com
10
 *  @license     http://aws.amazon.com/apache2.0  Apache License, Version 2.0
11
 *  @version     2009-01-01
12
 */
13
/******************************************************************************* 
14
15
 *  Marketplace Web Service PHP5 Library
16
 *  Generated: Thu May 07 13:07:36 PDT 2009
17
 * 
18
 */
19
20
/**
21
 * Submit Feed  Sample
22
 */
23
24
include_once ('.config.inc.php'); 
25
26
/************************************************************************
27
* Uncomment to configure the client instance. Configuration settings
28
* are:
29
*
30
* - MWS endpoint URL
31
* - Proxy host and port.
32
* - MaxErrorRetry.
33
***********************************************************************/
34
// IMPORTANT: Uncomment the approiate line for the country you wish to
35
// sell in:
36
// United States:
37
//$serviceUrl = "https://mws.amazonservices.com";
38
// United Kingdom
39
$serviceUrl = "https://mws.amazonservices.co.uk";
40
// Germany
41
//$serviceUrl = "https://mws.amazonservices.de";
42
// France
43
//$serviceUrl = "https://mws.amazonservices.fr";
44
// Italy
45
//$serviceUrl = "https://mws.amazonservices.it";
46
// Japan
47
//$serviceUrl = "https://mws.amazonservices.jp";
48
// China
49
//$serviceUrl = "https://mws.amazonservices.com.cn";
50
// Canada
51
//$serviceUrl = "https://mws.amazonservices.ca";
52
53
$config = array (
54
  'ServiceURL' => $serviceUrl,
55
  'ProxyHost' => null,
56
  'ProxyPort' => -1,
57
  'MaxErrorRetry' => 3,
58
);
59
60
/************************************************************************
61
 * Instantiate Implementation of MarketplaceWebService
62
 * 
63
 * AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY constants 
64
 * are defined in the .config.inc.php located in the same 
65
 * directory as this sample
66
 ***********************************************************************/
67
 $service = new MarketplaceWebService_Client(
68
     AWS_ACCESS_KEY_ID, 
69
     AWS_SECRET_ACCESS_KEY, 
70
     $config,
71
     APPLICATION_NAME,
72
     APPLICATION_VERSION);
73
 
74
/************************************************************************
75
 * Uncomment to try out Mock Service that simulates MarketplaceWebService
76
 * responses without calling MarketplaceWebService service.
77
 *
78
 * Responses are loaded from local XML files. You can tweak XML files to
79
 * experiment with various outputs during development
80
 *
81
 * XML files available under MarketplaceWebService/Mock tree
82
 *
83
 ***********************************************************************/
84
 // $service = new MarketplaceWebService_Mock();
85
86
/************************************************************************
87
 * Setup request parameters and uncomment invoke to try out 
88
 * sample for Submit Feed Action
89
 ***********************************************************************/
90
 // @TODO: set request. Action can be passed as MarketplaceWebService_Model_SubmitFeedRequest
91
 // object or array of parameters
92
93
// Note that PHP memory streams have a default limit of 2M before switching to disk. While you
94
// can set the limit higher to accomidate your feed in memory, it's recommended that you store
95
// your feed on disk and use traditional file streams to submit your feeds. For conciseness, this
96
// examples uses a memory stream.
97
98
$feed = <<<EOD
99
<?xml version="1.0" encoding="UTF-8 "?>
100
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
101
  xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
102
  <Header>
103
    <DocumentVersion>1.01</DocumentVersion>
104-
    <MerchantIdentifier>A16RKHUXAWZIZN</MerchantIdentifier>
104+
    <MerchantIdentifier>my_merchant_id</MerchantIdentifier>
105
  </Header>
106
  <MessageType>Product</MessageType>
107
  <PurgeAndReplace>true</PurgeAndReplace>
108
  <Message>
109
    <MessageID>1</MessageID>
110
    <OperationType>Insert</OperationType>
111
    <Product>
112
      <SKU>56789</SKU>
113
      <StandardProductID>
114
        <Type>ASIN</Type>
115
        <Value>B0EXAMPLEG</Value>
116
      </StandardProductID>
117
      <ProductTaxCode>A_GEN_NOTAX</ProductTaxCode>
118
      <DescriptionData>
119
        <Title>Example Product Title</Title>
120
        <Brand>Example Product Brand</Brand>
121
        <Description>This is an example product description.</Description>
122
        <BulletPoint>Example Bullet Point 1</BulletPoint>
123
        <BulletPoint>Example Bullet Point 2</BulletPoint>
124
        <MSRP currency="USD">99.99</MSRP>
125
        <Manufacturer>Example Product Manufacturer</Manufacturer>
126
        <ItemType>example-item-type</ItemType>
127
      </DescriptionData>
128
      <ProductData>
129
        <Health>
130
          <ProductType>
131
            <HealthMisc>
132
              <Ingredients>Example Ingredients</Ingredients>
133
              <Directions>Example Directions</Directions>
134
            </HealthMisc>
135
          </ProductType>
136
        </Health>
137
      </ProductData>
138
    </Product>
139
  </Message>
140
</AmazonEnvelope>
141
EOD;
142
143
// Constructing the MarketplaceId array which will be passed in as the the MarketplaceIdList 
144
// parameter to the SubmitFeedRequest object.
145
//$marketplaceIdArray = array("Id" => array('<Marketplace_Id_1>','<Marketplace_Id_2>'));
146
     
147
 // MWS request objects can be constructed two ways: either passing an array containing the 
148
 // required request parameters into the request constructor, or by individually setting the request
149
 // parameters via setter methods.
150
 // Uncomment one of the methods below.
151
 
152
/********* Begin Comment Block *********/
153
154
// $feedHandle = @fopen('php://temp', 'rw+');
155
// fwrite($feedHandle, $feed);
156
// rewind($feedHandle);
157
// $parameters = array (
158
//  'Merchant' => MERCHANT_ID,
159
//  'MarketplaceIdList' => array(MARKETPLACE_ID),
160
//  'FeedType' => '_POST_ORDER_FULFILLMENT_DATA_',
161
//  'FeedContent' => $feedHandle,
162
//  'PurgeAndReplace' => false,
163
//  'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)),
164
// );
165
166
// rewind($feedHandle);
167
168
// $request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
169
/********* End Comment Block *********/
170
171
/********* Begin Comment Block *********/
172
$feedHandle = @fopen('php://memory', 'rw+');
173
fwrite($feedHandle, $feed);
174
rewind($feedHandle);
175
176
$request = new MarketplaceWebService_Model_SubmitFeedRequest();
177
$request->setMerchant(MERCHANT_ID);
178
$request->setMarketplaceIdList(array('Id'=>array(MARKETPLACE_ID)));
179
$request->setFeedType('_POST_ORDER_FULFILLMENT_DATA_');
180
$request->setContentMd5(base64_encode(md5(stream_get_contents($feedHandle), true)));
181
rewind($feedHandle);
182
$request->setPurgeAndReplace(false);
183
$request->setFeedContent($feedHandle);
184
185
rewind($feedHandle);
186
/********* End Comment Block *********/
187
188
invokeSubmitFeed($service, $request);
189
190
@fclose($feedHandle);
191
                                        
192
/**
193
  * Submit Feed Action Sample
194
  * Uploads a file for processing together with the necessary
195
  * metadata to process the file, such as which type of feed it is.
196
  * PurgeAndReplace if true means that your existing e.g. inventory is
197
  * wiped out and replace with the contents of this feed - use with
198
  * caution (the default is false).
199
  *   
200
  * @param MarketplaceWebService_Interface $service instance of MarketplaceWebService_Interface
201
  * @param mixed $request MarketplaceWebService_Model_SubmitFeed or array of parameters
202
  */
203
  function invokeSubmitFeed(MarketplaceWebService_Interface $service, $request) 
204
  {
205
      try {
206
          
207
              $response = $service->submitFeed($request);
208
              
209
                echo ("Service Response\n");
210
                echo ("=============================================================================\n");
211
212
                echo("        SubmitFeedResponse\n");
213
                if ($response->isSetSubmitFeedResult()) { 
214
                    echo("            SubmitFeedResult\n");
215
                    $submitFeedResult = $response->getSubmitFeedResult();
216
                    if ($submitFeedResult->isSetFeedSubmissionInfo()) { 
217
                        echo("                FeedSubmissionInfo\n");
218
                        $feedSubmissionInfo = $submitFeedResult->getFeedSubmissionInfo();
219
                        if ($feedSubmissionInfo->isSetFeedSubmissionId()) 
220
                        {
221
                            echo("                    FeedSubmissionId\n");
222
                            echo("                        " . $feedSubmissionInfo->getFeedSubmissionId() . "\n");
223
                        }
224
                        if ($feedSubmissionInfo->isSetFeedType()) 
225
                        {
226
                            echo("                    FeedType\n");
227
                            echo("                        " . $feedSubmissionInfo->getFeedType() . "\n");
228
                        }
229
                        if ($feedSubmissionInfo->isSetSubmittedDate()) 
230
                        {
231
                            echo("                    SubmittedDate\n");
232
                            echo("                        " . $feedSubmissionInfo->getSubmittedDate()->format(DATE_FORMAT) . "\n");
233
                        }
234
                        if ($feedSubmissionInfo->isSetFeedProcessingStatus()) 
235
                        {
236
                            echo("                    FeedProcessingStatus\n");
237
                            echo("                        " . $feedSubmissionInfo->getFeedProcessingStatus() . "\n");
238
                        }
239
                        if ($feedSubmissionInfo->isSetStartedProcessingDate()) 
240
                        {
241
                            echo("                    StartedProcessingDate\n");
242
                            echo("                        " . $feedSubmissionInfo->getStartedProcessingDate()->format(DATE_FORMAT) . "\n");
243
                        }
244
                        if ($feedSubmissionInfo->isSetCompletedProcessingDate()) 
245
                        {
246
                            echo("                    CompletedProcessingDate\n");
247
                            echo("                        " . $feedSubmissionInfo->getCompletedProcessingDate()->format(DATE_FORMAT) . "\n");
248
                        }
249
                    } 
250
                } 
251
                if ($response->isSetResponseMetadata()) { 
252
                    echo("            ResponseMetadata\n");
253
                    $responseMetadata = $response->getResponseMetadata();
254
                    if ($responseMetadata->isSetRequestId()) 
255
                    {
256
                        echo("                RequestId\n");
257
                        echo("                    " . $responseMetadata->getRequestId() . "\n");
258
                    }
259
                } 
260
261
     } catch (MarketplaceWebService_Exception $ex) {
262
         echo("Caught Exception: " . $ex->getMessage() . "\n");
263
         echo("Response Status Code: " . $ex->getStatusCode() . "\n");
264
         echo("Error Code: " . $ex->getErrorCode() . "\n");
265
         echo("Error Type: " . $ex->getErrorType() . "\n");
266
         echo("Request ID: " . $ex->getRequestId() . "\n");
267
         echo("XML: " . $ex->getXML() . "\n");
268
     }
269
 }