2017-07-20 3 views
1

Amazon MWS Merchant Fulfillment API PHP SDKを使用して出荷を購入しようとしています。Amazon MWS Merchant Fulfillment API PHP SDKを使用して配送を購入する

https://developer.amazonservices.com/doc/merchantfulfillment/merchantfulfillment/v20150601/php.html/132-2116251-7478560

私のコードでは、プライバシーのために変更され、いくつかの個人情報を、次のようになります。

// Configure 
require_once('sdks/Amazon/.config.inc.php'); 
$serviceUrl = "https://mws.amazonservices.com/MerchantFulfillment/2015-06-01"; 
$config = array(
'ServiceURL' => $serviceUrl, 
'ProxyHost' => null, 
'ProxyPort' => -1, 
'ProxyUsername' => null, 
'ProxyPassword' => null, 
'MaxErrorRetry' => 3 
); 


// Create service 
$merchant_service = new Amazon_Merchant_Client(AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, APPLICATION_NAME, APPLICATION_VERSION, $config); 

// Create request object 
$request = new Amazon_Merchant_Model_CreateShipmentRequest(); 

// Set SellerId 
$request->setSellerId(MERCHANT_ID); 

// Define shipping info 
$package_dimensions = array(
    'Length' => 5, 
    'Width' => 5, 
    'Height' => 5, 
    'Unit' => 'inches', 
); 
$weight = array(
    'Value' => 5, 
    'Unit' => 'ounces', 
); 
$ship_from_address = array(
    'Name' => '904Custom', 
    'AddressLine1' => 'foobar', 
    'AddressLine2' => 'foobar', 
    'Email' => '[email protected]', 
    'City' => 'foobar', 
    'StateOrProvinceCode' => 'FL', 
    'PostalCode' => '12345', 
    'CountryCode' => 'US', 
    'Phone' => '(888) 555-5555', 
); 
$shipping_service_options = array(
    'DeliveryExperience' => 'DeliveryConfirmationWithoutSignature', 
    'CarrierWillPickUp' => true, 
); 
$shipping_details_array = array(
    'AmazonOrderId' => '114-1234567-1234567', 
    'SellerOrderId' => '114-1234567-1234567', 
    'ShipFromAddress' => $ship_from_address, 
    'PackageDimensions' => $package_dimensions, 
    'Weight' => $weight, 
    'ShippingServiceOptions' => $shipping_service_options, 
); 
$request->setShipmentRequestDetails($shipping_details_array); 

// Set shipping service id 
$request->setShippingServiceId('1234'); 

// Invoke request 
// invokeCreateShipment is a wrapper for $service->CreateShipment($request); 
$result = $this->invokeCreatehipment($merchant_service, $request); 

これが私に与え

致命的なエラー:メンバ関数_toQueryParameterArrayに呼び出し()の/var/www/hydra/sdks/Amazon/Merchant/Model.php on line 276の非オブジェクト

詳細はよくない私はAPIへのリクエストを送信しようとしています。SDKは、それが実行中の致命的なPHPエラーのために私に許可していません。価値のあるものについては、$ request-> setShipmentRequestDetails()を削除して、どのような結果が得られるかを確認しました。私は、APIからの応答を取得しましたが、それはInternalFailureのXMLた:

<ErrorResponse xmlns="https://mws.amazonservices.com/MerchantFulfillment/2015-06-01"> 
    <Error> 
     <Type>Receiver</Type> 
     <Code>InternalFailure</Code> 
    </Error> 
    <RequestId>b1f5a04c-54ac-442c-ab88-f2f1c9374377</RequestId> 
</ErrorResponse> 

私はサンプルファイルは、SDKに含まれてみました次のドキュメント

のすべてを読んだが、彼ら完全な例ではありません。

私は網羅的な検索を行っていますが、野生のこのSDKの使用方法は見つかりませんでした。

http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_Overview.html http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_HowToUseForPrime.html http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_CreateShipment.html http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_Datatypes.html#ShipmentRequestDetails http://docs.developer.amazonservices.com/en_US/merch_fulfill/MerchFulfill_Datatypes.html#ShippingServiceOptions

私は何が起こっているのかを把握しようとするために、ソースコード中のvar_dump()INGをしようとしましたが、それはで動作するように非常に抽象的で難しいです。たとえば、toQueryParameterArray()は、_toQueryParameterArray()を呼び出し、__toQueryParameterArray()を呼び出して、_toQueryParameterArray()__toQueryParameterArray()の両方を呼び出します。このコードは理解するのが難しく、回避策をコード化しようとする試みが崩れています。参考のため

、ここでは公式の私は何年もの方法の数十に受注、フィード、およびレポートのAPIを使用しましたアマゾンMWSマーチャントフルフィルメントAPI PHP SDK

https://github.com/AustinMaddox/mws-merchant-fulfillment-php-client-library

のミラーは、ありますMerchant APIでは、私は困惑しており、何か助けが必要です。

Amazon MWS Merchant Fulfillment API PHP SDKを使用して配送を購入するにはどうすればよいですか?

答えて

1

Amazon forumsのBullcomのおかげで、私はそれを理解しました。

私は私の新しいコードをよりこの

$shipping_details = new Amazon_Merchant_Model_ShipmentRequestDetails(); 
    $weight = new Amazon_Merchant_Model_Weight(); 
    $weight->setValue(5); 
    $weight->setUnit('ounces'); 
    $shipping_details->setWeight($weight); 

のように見えるだけでデータ

の配列を渡さない。これは間違いのためのサンプルフォルダにある必要があり、オブジェクトを作成し、セッターとゲッターを使用するために必要なSDKでは、現在「//オブジェクトの配列またはパラメータの配列」というコメントがあいまいではなく

関連する問題