Scratchpadを活用してAmazonMWSで出荷通知をPHPで送信させる

amazonセラーセントラルにログインせずに出荷通知の送信を行います。

やること

amazonセラーセントラルの任意の一つの出荷情報(注文ID、伝票番号等)を引数として、
出荷通知のXMLフィードを送信し、
その成否のレスポンスを受け取るプログラムです。

本当は複数の出荷情報をいっぺんに送信できますが、ここでは1つずつとします。

必要なもの

フィードAPIライブラリ

Amazonから提供されているAPIライブラリ。

フィードAPIセクション – バージョン 2009-01-01
ここからPHPのライブラリをダウンロードしてください。

Amazon MWS Scratchpad

超便利な公式webアプリ。
後ほど使うところだけ紹介します。

データ定義ファイル

FeedType列挙子

「フラットファイル 出荷通知フィード」の項から「Flat.File.ShippingConfirmation.jp._TTH_.xls」をダウンロードします。

送信するデータについて記載されています。
XMLフィード作成の参考にします。

ソースコード

解説

invokeSubmitFeedで一つの注文番号の情報を記載したXMLフィードを送信し、
FeedSubmissionIdを取得。

invokeGetFeedSubmissionListを、
送信した処理の状況が_DONE_になるまで一定間隔で実行する。

_DONE_になったらinvokeGetFeedSubmissionResultで、
目的の処理のレスポンスをテキストに保存

保存したXML形式のデータから成否を確認する。

という流れです。

冒頭の

require_once(‘.config.inc’);
は、セラーセントラルのアクセスキー等を指定する設定ファイルです。
AWS_ACCESS_KEY_ID:セラーセントラルアクセスキーID
AWS_SECRET_ACCESS_KEY:セラーセントラル秘密キー
APPLICATION_NAME:アプリケーション名(適当で良い?)
APPLICATION_VERSION:アプリバージョン(適当で良い?)
MERCHANT_ID:出品者ID
MARKETPLACE_ID:マーケットプレイスID

ライブラリの設定ファイルにMARKETPLACE_IDの設定箇所がなかったら、
define (‘MARKETPLACE_ID’, ‘<Your Marketplace ID>’);
を追加してください(<Your Marketplace ID>にはマーケットプレイスIDを記述する)

ソースコード中の
invokeSubmitFeed
invokeGetFeedSubmissionList
invokeGetFeedSubmissionResult
は、ライブラリに含まれているメソッドです。
都合に合わせてロジックを変更しています。

Amazon MWS Scratchpadを活用する

Amazon MWS Scratchpad

AmazonMWSScratchpadはweb上でAmazonMWSの任意のAPIを実行できるアプリケーションです。

任意のXMLフィードをAmazonMWSに送信し、
各種APIを実行することでレスポンスを確認することができます。

AmazonMWS関係のロジックを組むのに欠かせないアプリですので、じゃんじゃん活用してください。

AmazonMWSScratchpad

パラメータの簡単な説明です。

  • APIセクション:フィードしか使わないのでフィードで固定
  • Operation:今回はSubmitFeedとGetFeedSubmissionListとGetFeedSubmissionResultを使用します。
  • SellerId:出品者IDを入力します。
  • MWSAuthToken:未入力でOKです。
  • AWSAccessKeyId:アクセスキーIDを入力します。
  • SecretKey:秘密キーを入力します。

SubmitFeed

出荷通知の送信です。
API必須パラメータのFeedTypeは
「_POST_ORDER_FULFILLMENT_DATA_」と入力します(詳しくはFeedType列挙子

右側のフィードにXMLを入力し送信すると
「FeedSubmissionId」が発行されます。

GetFeedSubmissionList

送信された直近のフィード一覧が出力されます。

必須パラメータはありません。
「FeedProcessingStatus」が「_DONE_」に
なっているものは処理済みです。

GetFeedSubmissionResult

必須パラメータはFeedSubmissionIdです。
任意のクエリの処理の詳細情報が出力されます。

SubmitFeedまたはGetFeedSubmissionListのレスポンスから取得した
任意のIdを入力してください。
GetFeedSubmissionListが「_DONE_」になっているものについて、
出荷通知の成否が表示されます。

参考

Amazon MWS PHPサンプルコードの実行(コマンドライン実践編)
AmazonMWS日本公式ブログ。
コマンドラインで実行する時や、設定ファイルについて。

Amazonマーケットプレイス Web サービス (Amazon MWS) ドキュメント
フィードの説明等

Amazon MWSによる注文管理 – 出荷通知の送信
公式ブログの出荷通知についての説明