④MWS実践-はじめに


主な処理種別

③MWSの技術解説(できる事)のおさらいですが、主な処理種別と用途について説明します。

【主な処理種別】
1.フィード:Amazonに新たに商品を出品する場合や出品中商品の価格・在庫改定などを行うCSVファイルをUploadするための処理
2.レポート:Amazonに出品している商品一覧を取得するための処理
3.商品:Amazonに存在する商品情報(価格含む)を取得するための処理
4.注文:Amazon出品中の商品が販売(注文)された情報の取得処理
(FBAを利用している場合はフルフィルメント関連が必要ですが同様ですので本サイトは割愛しています。)
があります。個々の処理で処理フローが異なりますので、個々のページ(目次)で詳細を説明します。

個別の説明に入る前に、主に「1.フィード処理」ではCSVファイルを生成してUploadする処理と工程が2つに分かれます。また、その個々の工程についていくつかの方法がありますので、整理して理解しておく必要があります。

【本サイトで説明している内容】

(1)CSVファイル作成処理
 ・Excel利用による生成方法(パラメータ説明)
(2)CSVファイルUpload処理
 ・プログラムによるUpload(Excel-Amazon、PHP、Excel-VBA)
 ・セラーセントラルの画面から直接Upload
(3)プログラム(CSVファイル作成を除く)
 ・PHP(Aamzonライブラリ利用あり)
 ・PHP(Aamzonライブラリ利用なし)
 ・Excel⁻VBA

個々について少し説明しておきます。

(1)CSVファイル作成処理

MWSはCSVファイルを作成して商品を出品したり価格改定したりさまざまな操作が可能です。「1.フィード処理」はCSVファイルをUploadするための処理です。CSVファイルは作成されたものを前提としています。
CSVファイルの作成をプログラムで作成することはもちろん可能ですが、本サイトではCSV作成のためのプログラムについては説明していません。プログラムではただのテキスト処理(プログラムの基本処理)だからです。CSVファイルはただのカンマ区切りのテキストファイルです。MWSで決められた順番のフィールド(カンマ区切り要素)でファイルを作成すれば良いので、人が作る場合はExcelを利用した方が簡単に作成できます。このため、本サイトではExcelを利用したCSVファイルの生成方法を説明しています。
テキストエディタで直接CSVファイルを作成することも可能ですが、カンマ区切りで非常に作業が困難ですのでExcel利用を進めます。
CSVファイルの作成が必要なのは「1.フィード処理」だけですが、このCSVの中身で操作がするので非常に重要です。

(2)CSVファイルUpload処理

先ほどCSVファイルのUploadは「1.フィード処理」でのみ実施すると言いましたが、セラーセントラルの画面から直接選択してUploadする方法もあります。この方法についても本サイトでは説明しています。

(3)プログラム(CSVファイル作成を除く)

本サイトではプログラムを掲載していますが、CSVファイルの生成についてはExcelでの生成方法を記載しており、プログラムでのサンプルは掲載していません。プログラムとしては単純なテキスト操作で生成できるからです。
MWSの4つの処理(1.フィード、2.レポート、3.商品、4.注文)について、PHP(Amazonライブラリ利用あり)、PHP(Amazonライブラリ利用なし)、Excel⁻VBAの3つのプログラムを用説明(4つの処理全てをほぼ網羅しています)しています。

これらを踏まえて個々のページを読んでもらえると理解が深まると思います。

⑥API実践-商品-Excel


Excel-VBAでアクセスする場合のソースプログラムを示します。★★の部分にAamzonから取得したKey等を入れればAmazon日本から情報取得できます。(取得方法は“④API実践-はじめに(登録方法含む)”で投稿)【PHPでの実施方法は⑤API実践-商品-PHP参照】

【使い方】
①Excelを開きVBEで新規に標準モジュールを追加し下記のプログラムをコピーして★★を自分のID,KEYに修正してください。
②以下のダウンロードボタンを押下し、2つファイルを取得します。本ファイルはAPI用の暗号化モジュールですので、VBEで新規に標準モジュールを2つ追加しファイルごとに貼り付けてください。(URLエンコードやMD5などの暗号化するためのモジュールです。私も詳細は理解してません。。。)
暗号
③①で貼り付けたプログラムを実行すれば動作します。

【少し解説】
本プログラムはASIN番号をキーにして商品情報を取得するためのAPIになっています。Sheet1のA列にASIN番号を入力しておくとB~G列にタイトル等を取得してくれます。下図参照(シートの1行目の項目名は入力しておく必要があります)。
1

以下にExcel-VBAのSampleExcelとプログラムを示します。
【以下のExcelをダウンロードし、IDなどを書き換えれば簡単に利用できます。】
API_sample

⑤API実践-商品-PHP


APIをPHPでプログラムする場合のサンプルを示します。★番号★の部分にAamzonから取得したKey等を入れればAmazon日本から情報取得できます。(取得方法は“④API実践-はじめに(登録方法含む)”で投稿)

【使い方】
①フォルダを作成し(今回は”C:\sampleAmazonApi”)以下のPHPプログラムを全てコピーし、メモ帳で新規にファイルを開き、ファイル名を”sample1.php”等の名前で保存。
②Windowsマーク+”r”コマンドによりコマンドプロンプトを開き、フォルダに移動する”cd C:\sampleAmazonApi”を入力しフォルダを移動
③コマンドプロンプト上で、”c:\xampp\php\php sample1.php”と入力し実行する。(PHPが”c:\xampp\php\php”にインストールされていないといけません。XAMPPインストールは別記事で投稿)
1
【少し解説】
本プログラムは全カテゴリーの中から、”GUNDAM”というキーワードを検索し1ページ目を取得する内容になっています。

$params[‘ItemPage’] = 1;
$params[‘Keywords’] = ‘GUNDAM’;

を変更すればページ数は変更できますが、5ページまでしか表示できません。6にしたらAmazonでエラーになり応答はありません。ですので、キーワード検索を行いページ数を1~5までインクリすれば10×5の50件のみ表示できます。キーワードを細かくして50件ずつ取得すれば、一時間で最大2万件(2000アクセス×10商品)のデータを取得することができます。ただ、そんなにうまくキーワードを指定できないでしょうから個人的には困難だと思います。

■キーワードで検索時■のところをコメントアウト”//”にして、■ASIN番号で検索時■のコメントアウトを外せばASIN番号での検索が可能です。ASINは以下のように固定で”ラジコンヘリのナノファルコン”(=”B00CPDCZWG”)になっていますので、ここを任意のASIN番号に順次変える事が出来れば、情報を取得できます。ASIN番号を順次変更すれば1時間に2000件のデータを取得することが可能です。以下の’B00CPDCZWG’を任意の番号に変更してください。

$params[‘ItemId’]=’B00CPDCZWG’;

ただし、ASIN番号を事前に把握しないといけないため、Webアクセスなどで取得する必要があります。

プログラムのここについては見てもらえば難しくないので理解できるとは思いますが、少しだけ補足します。
まず、リクエスト種別は
$params[‘Operation’]=’ItemSearch’;
を変更してください。例えば、’ItemSearch’を’ItemLookup’に変更するとASIN番号などから商品情報を取得できます。(先に述べたようにコメントアウトすれば出来ます。)
取得したい情報を変更するには、レスポンスグループを変更してください
$params[‘ResponseGroup’]=’Large’;
の’Large’を変更すれば使えます。詳細はAPIの技術解説を見てください。

35行目まではパラメータの設定ですので、決められた値を利用すれば良いです。7~9行目はAmazonにアクセスするためのIDですので、Amazonから取得する必要があります。(取得方法は別記事で投稿)
19行目は取得情報を変更する場合に変更する必要があります。例えば21行目とコメントアウト”//”を入れ替える必要がありますが、Largeが一番多くの処理を取得することができますので、取得情報を絞りたい場合に変更ということになると思います。AmazonAPIについてはTATSUO IKURA氏のAmazon Web サービス入門(Product Advertising API)に詳しく書かれています。
37~52行目までは以下に表示しているURL(HTML―Request)を作成するためのプログラムです。URLの&でつながる送信パラメータを作成しています。55行目でHTMLアクセスし情報を取得しています。58行目で取り込んだ値をXMLとして解析し値として取得する処理をしています。60~81行目は取得した商品情報を順次取り出し変数に格納し、84~88行目で一部の値のみ表示するようにしています。最後に、93~95行目はURLエンコード(日本語などをURLで送信するための文字コード変換)するためのサブ関数で繰り返し行う処理をサブ関数として分けています。

上記のPHPは以下のURL(HTML―Request)を送信して返答を得る(情報を得る)ためのプログラムです。