輸入ビジネスで役立つエクセル操作法

Amazonプログラミング入門

[サンプルソース付]MWS APIを使ってASINをもとにカート価格を取得する方法

更新日:

MWS APIを使うと何ができるの?なんか便利だって聞いたけど…。

何ができるのかと聞かれれば、ASINをもとにAmazonで出品されている商品のデータを取得することができます。

そして、商品のデータを取得したいといったとき、一番取得したいのは商品の価格でしょう。

商品の価格の中でも、今回はカート価格の取得方法について書かせていただきます。

MWS APIを使ったカート価格の取得方法

価格取得の手段は3つある

実は、MWS APIを使った価格取得には3つほど手段があります。

主に使われるものが下記でしょう。

  1. GetCompetitivePricingForASIN
  2. GetLowestOfferListingsForASIN
  3. GetLowestPricedOffersForASIN

う~ん、名前が似ていて見分けにくい!

わたしが実際にリサーチツールを開発する際に、いろいろ実験もしてみました。

ここではAmazonのリファレンスも含めて、わたしなりの解釈を加えて説明します。

GetCompetitivePricingForASIN

このライブラリを使用することで、商品の競合価格を取得することができます。

競合価格ってなんぞ?という感じでしょう。わたしもよくわかりません。(笑)

わたしが何度か検証してたどりついた結果は、『カートボックスを取得するために競合している価格』と解釈しました。

ゆえに、GetCompetitivePricingForASINで取得した価格が実質カート価格である、という認識です。

GetLowestOfferListingsForASIN

こちらのライブラリは商品の最低価格を取得することができます。

最低価格であって、カート価格ではありません。

カート価格が設定されていない商品もありますので、結構多用します。

GetLowestPricedOffersForASIN

こちらはしっかりカートボックス価格を取得することができます。

ですが、カート価格が設定されていない場合もありますし、なにより1時間に200回しか利用できないので、あまり使い物になりません…。

カート価格の取得には、『GetCompetitivePricingForASIN』を使う!

実際には『実質のカート価格』です。厳密にカート価格ではないです。

ちなみに、当ブログで公開しているAsinStockerもGetCompetitivePricingForASINを使ってカート価格を取得しています。

検証してみていただければわかるかと思いますが、AsinStockerが出力するカート価格と実際のAmazonのカート価格、きっと一致するはずです。

逆に、一致しなかったケースが見当たりませんでした。

Amazonカート価格取得のサンプルプログラム

GetCompetitivePricingForASINを使ったサンプルコード

下記がサンプルコードです。たぶんそのまま使えるはず。

ASINはAmazonで並行輸入と検索した結果の頭から10個分抜き出しています。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using MarketplaceWebServiceProducts;
using MarketplaceWebServiceProducts.Mock;
using MarketplaceWebServiceProducts.Model;

namespace _00_sample
{
    class Program
    {
        static void Main(string[] args)
        {
            string appName         = "";               // アプリの名前
            string appVer          = "";               // アプリのバージョン
            string merchantId      = "";               // 出品者ID
            string accessKeyId     = "";               // アクセスキー
            string secretAccessKey = "";               // 秘密キー
            string marketPlaceId   = "A1VC38T7YXB528"; // ←日本はこの値固定

            MarketplaceWebServiceProductsConfig config = new MarketplaceWebServiceProductsConfig();
            config.ServiceURL = "https://mws.amazonservices.jp";

            MarketplaceWebServiceProductsClient service;
            service = new MarketplaceWebServiceProductsClient(appName, appVer, accessKeyId, secretAccessKey, config);

            GetCompetitivePricingForASINRequest request = new GetCompetitivePricingForASINRequest();

            // 1度に突っ込めるASINは10個まで!
            ASINListType asinList = new ASINListType();
            asinList.ASIN.Add("B00WXLQBEI");
            asinList.ASIN.Add("B00HIVH840");
            asinList.ASIN.Add("B00MHXHL64");
            asinList.ASIN.Add("B01ASQ2G6G");
            asinList.ASIN.Add("B00PDMJ7VS");
            asinList.ASIN.Add("B006D37Q82");
            asinList.ASIN.Add("B01KFQQARK");
            asinList.ASIN.Add("B005TJMC0S");
            asinList.ASIN.Add("B075Q94T7Y");
            asinList.ASIN.Add("B00BYIGR4U");

            request.SellerId = merchantId;
            request.ASINList = asinList;
            request.MarketplaceId = marketPlaceId;

            GetCompetitivePricingForASINResponse response = null;
            response = service.GetCompetitivePricingForASIN(request);

            for (int i = 0; i < asinList.ASIN.Count; i++ )
                Console.WriteLine(response.GetCompetitivePricingForASINResult[i].Product.CompetitivePricing.CompetitivePrices.CompetitivePrice[0].Price.LandedPrice.Amount);
        }
    }
}

GetCompetitivePricingForASINを使った実行結果

実行結果が下記です。

価格取得結果

ちなみに、価格はdecimal型になります。

ここから文字列なりなんなり、好きに料理ししちゃってください。

そして実際のAmazonページの表示が下記です。

実際の価格

価格、一致してますよね。

制作時間5分程度、ちょっと急ぎで作ったのでいい加減かもしれません。

スポンサードリンク

-Amazonプログラミング入門
-, ,

Copyright© 自作ツールと輸入ビジネス , 2024 AllRights Reserved Powered by AFFINGER4.