mamimpの研究帳

個人的にまとめたいものを記事にしています。

Amazon MWS サンプルコードの実行方法

目的
 Amazon Marketplace Web Service(Amazon MWS)の公式サンプルコードを実行する。
 MWSはマーケットプレイス出品者のためのAPIで、AWSよりもできることが多いらしい。
 MWSの情報が少なすぎてサンプルコードを動かすのもままならなかったので記事にまとめます。 

前提

  出品者ID(MERCHANT_ID)
  マーケットプレイスID(MARKETPLACE_ID)
  AWSアクセスキーID(AWS_ACCESS_KEY_ID)
  秘密キー(AWS_SECRET_ACCESS_KEY)

  • PHP5を使っていること

  PHP7で動かそうとしたら色々なエラーに引っかかる。

  • サーバー上で動かすこと。自分はさくらのレンタルサーバー(スタンダード)を使った。

  ローカルXAMPPで実行しようとするとSSL関係のエラーになる。

 エラーを回避する手段はありそうだけど、とりあえずMWSの動作を確認するには前提を守ったほうが良い。

サンプルコードの取得
Amazon マーケットプレイスWebサービス にアクセス
f:id:mamimp:20170706111109j:plain

API&ドキュメントの商品をクリック
f:id:mamimp:20170706111121j:plain

PHPクライアントライブラリをクリック
f:id:mamimp:20170706111129j:plain

Downloadをクリック
MWSProductsPHPClientLibrary-2011-10-01._V531003271_.zip がダウンロードされる。
f:id:mamimp:20170706111140j:plain

認証情報の入力
src\MarketplaceWebServiceProducts\Samples\.config.inc.php を開く。
Your Access Key ID
Your Secret Key
Your Merchant Id
Your Marketplace Id
の文字列を自分が持っている認証情報に置き換える。
f:id:mamimp:20170706111831j:plain


ASINコードを用いてマーケットプレイスに出品中の商品価格を取得する。
src\MarketplaceWebServiceProducts\Samples\GetMyPriceForASINSample.php について解説します。

$serviceUrlがコメントアウトされているのでスラッシュを消して日本のエンドポイントを指定します。
f:id:mamimp:20170706112739j:plain

@TOTO: set request. Action can be passed as MarketplaceWebServiceProducts_Model_GetMyPriceForASIN
という記述の近くに$requestがあるので、ここに追加が必要な$request文を記述する。
f:id:mamimp:20170706115409j:plain

↓request文を追加
$request->setMarketplaceId(MARKETPLACE_ID); としたほうが良かった
f:id:mamimp:20170706120209j:plain

どのような値をrequestにセットする必要があるのかはドキュメントに書かれている。
f:id:mamimp:20170706120608j:plain
f:id:mamimp:20170706120617j:plain
f:id:mamimp:20170706120624j:plain
f:id:mamimp:20170706120635j:plain

また、どのようなfunctionを使えば値をセットできるのかはModelを見てみるとわかる。
src\MarketplaceWebServiceProducts\Model\GetMyPriceForASINRequest.php
f:id:mamimp:20170706120921j:plain
f:id:mamimp:20170706121036j:plain
f:id:mamimp:20170706121043j:plain

すべて編集し終えたらsrcディレクトリ以下を全てサーバーにアップロードしてGetMyPriceForASINSample.phpにアクセスすればXMLが返ってくる。