案件の概要
Amazonの出品や在庫を依頼先のデータベースと連携するバッチの開発です。
依頼先では、すでに別のECサイトとの連携を行なっていて、依頼先データベースで一元管理を行なっていました。
今回は、Amazonとの連携を行いたいとのことでしたので、Amazonと依頼先データベースを連携するバッチを開発しました。
Amazon MWSとはなにか
Amazonが提供しているサービスのひとつです。
ではどんなサービスなのかというと、公式では
AmazonマーケットプレイスWebサービス(Amazon MWS)は統合されたWebサービス API で、これにより出品者は出品、注文、支払い、レポートなどをプログラムでデータを交換することができます。
と説明されています。
何ができるのか
通常、Amazonに出品する場合は、「セラーセントラル」という出品用の管理ページで行います。
Amazon MWSを使うと、出品する際に、管理画面を使うことなく、APIを利用して出品や在庫の更新などを行うことができます。
大量の商品を扱ったり、在庫の変動が激しい商品など、人の手での管理が厳しい場合は、このAPIを利用して自動で管理を行うプログラムを開発することで、入力ミスや時間短縮をすることができます。
また、商品の価格なども取得できるため、価格の推移や競合価格などマーケティングに必要な情報を得ることもできます。
どう連携するのか
以下の4つのバッチを順番で実行し、依頼者データベースとAmazonを連携させます。
-
受注作成バッチ
Amazonから注文された内容を、依頼者データベース(以下DB)に登録するバッチ
-
在庫連携バッチ
Amazonに出品されている商品の在庫をDBから取得、Amazonへ反映するバッチ
-
商品連携バッチ
Amazonへ出品する商品をDBから取得、Amazonへ反映するバッチ
-
出荷連携バッチ
注文の出荷状況をDBから取得、Amazonへ反映するバッチ
商品連携
Amazonへ出品する商品を連携するバッチです。
データベースから、連携する商品リストを取得、それをTSVデータとして作成します。
そのTSVデータと、前回アップロードに成功したTSVデータの差分を比較、差分のあるデータを抽出してアップロード用TSVとして出力します。
※このとき、ファイルサイズは10MB以下でないとアップロードができないため、10MBを超えるデータは次回連携データとして出力します。
そして、作成したアップロード用TSVデータを、フィードAPIを使用してAmazon MWSにアップロードし、Amazonに反映させます。
受注作成
Amazonで未出荷状態の注文を取得して、データベースに反映するバッチです。
Amazon MWSの「注文API」を使用して、Amazonから未出荷の注文を取得します。
そこで取得した「注文番号」から、その注文の商品情報を、「注文API」で取得します。
取得した情報を、データベースに沿った形に変更、データベースに注文として登録します。
在庫連携
データベースから在庫を取得して、Amazonに反映するバッチです。
在庫連携対象商品を取得したら、TSVデータとして作成します。
そのTSVデータと、前回アップロードに成功したTSVデータの差分を比較、差分のあるデータを抽出してアップロード用TSVとして出力します。
※このとき、ファイルサイズは10MB以下でないとアップロードができないため、10MBを超えるデータは次回連携データとして出力します。
そして、作成したアップロード用TSVデータを、フィードAPIを使用してAmazon MWSにアップロード、Amazonに反映させます。
出荷連携
データベースから出荷状況を取得して、Amazonに反映するバッチです。
出荷連携対象商品を取得したら、TSVデータとして作成します。
※このとき、ファイルサイズは10MB以下でないとアップロードができないため、10MBを超えるデータは次回連携データとして出力します。
そして、作成したアップロード用TSVデータを、フィードAPIを使用してAmazon MWSにアップロードし、Amazonに反映させます。
MWSの仕組み
MWSはAPIを使用して、Amazonとデータのやり取りを行います。
また、Amazonへデータを送る場合は、フィードAPIを使用することになります。
フィードAPIについて
在庫を更新する、出荷状況を更新する、商品を更新する…といった場合、フィードAPIを使用してデータをアップロードすることになります。
フィードAPI自体は共通ですが、アップロードの際に指定するフィードタイプによって、在庫を更新したり商品の価格を変更したりなど、更新する内容が変わります。
クライアントライブラリを利用する
Amazon MWSにはクライアントライブラリが用意されています。
現在、Java、PHP、C#の3つの言語でサポートされたものが提供されています。
https://developer.amazonservices.jp/tools
クライアントライブラリを使用することで、リクエストの署名や送信リクエストのフォーマットなどが実行できます。
このサービスに関するお問い合わせはこちら