カテゴリー別アーカイブ: Amazon

C#でAmazonMWSの各種APIを使ってみる

出品詳細レポート
「出品詳細レポート」を取得して在庫確認に利用してみる。これで便利なのは「optional-payment-type-exclusion」で除外されている支払方法が確認できたり、「scheduled-delivery-sku-set」で配送スケジュールに割り当てられているSKUリストを確認できたりする。

確か、除外されている支払方法はセラーセントラルからは確認できなかったと思うし、配送スケジュールは個別に「在庫管理」から「詳細の編集」で見ていくしかなかったはずなので、それらが一覧で確認できると設定漏れなどが一目瞭然なので、わりと便利。


在庫健全性レポート
「FBA在庫リスト」という名称にしてしまったけど、保管期間や単位期間毎の出荷数、販売予測週数を見ることが出来るので、FBAでドンドン拡販していく商品と、引き上げた方が良い商品の判断に利用できる。

売れている商品はどうしても目に付くけど、全く売れてない商品なんてのは全く目に付かなくて、最悪の場合、忘れ去られる。

1年後くらいに「え!?これまだ残ってたの!?」なんてことになりかねないので、180日保管とか270日保管に数字が上がってきていたら対策を早々に練ろう。


競合価格調査
カートの獲得率を左右する要素はいくつかあるようだけど、やはりなんと言っても価格が一番影響が大きい。

ただ、2~3%くらいなら高くてもカートは獲得できるので、なるべく無駄な値下げ競争はしないように調整していきたい。


MWS設定画面
MWSを利用するには

「AWS_ACCESS_KEY_ID」やら
「AWS_SECRET_ACCESS_KEY」
「MERCHANT_ID」
「MARKETPLACE_ID」
「MWS認証トークン」
なんかが必要になってくる。
それらはここで設定している。


とまぁ、こんな感じで趣味と実益を兼ねてプログラミングの勉強中。

まだ、受注リストが50件を超えた場合の「NextToken」の処理が出来てなかったり、「次回更新」の日付や時間が変わらなかったり、まぁ、いろいろ足らないところだらけだけど、FBAの在庫状況が、保管期間と単位期間あたりの出荷数と在庫切れになるまでの予測とがパッと見でわかるようになったのは大きい。

あ・・・Form1とかって・・・とりあえずは「動けばいいんだよ!」ってことで。

GetMyPriceForSKU の謎

SellerSKUって重複はしない。
SellerSKUがわかれば、その商品の価格もわかる。

まぁ、当たり前のことなんだけど、なぜか一部の商品で「FulfillmentChannel」に「Amazon」と「MERCHANT」の両方が入ってくる。

<GetMyPriceForSKUResult SellerSKU=”ABCDEFG” status=”Success”>
 <Product>
  <Identifiers>
  (省略)
   <SKUIdentifier>
   (省略)
    <SellerSKU>
    ABCDEFG</SellerSKU>
   </SKUIdentifier>
  </Identifiers>
  <Offers>
   <Offer>
   (省略)
    <FulfillmentChannel>
    AMAZON</FulfillmentChannel>
    (省略)
    <SellerSKU>
    ABCDEFG_01</SellerSKU>
   </Offer>
   <Offer>
   (省略)
    <FulfillmentChannel>
    MERCHANT</FulfillmentChannel>
    <SellerSKU>
    ABCDEFG</SellerSKU>
   </Offer>
  </Offers>
 </Product>
</GetMyPriceForSKUResult>

で、SellerSKUが違うんだけど、なにこれ・・・


2015/04/22 追記

SellerSKUは重複しない、という点だけを見ていると上記現象は「不思議」なんだけど、この挙動は起こり得るらしい。

というのも、流れとして GetMyPriceForSKU で投げた SKU が、どの ASIN なのかを特定し、その ASIN を元にして、出品者の販売可能状態にある商品情報を返答するから。

具体的に起こり得る状況としては、通常はFBA出荷だけど、諸事情によりFBA在庫がなくなったら出品者出荷にしたい、けどまたすぐにFBAに納品する、といったような状況で、在庫管理や販売管理上の問題でSKUを別にしたい時がある。
(かかる送料コストがFBA出荷と出品者出荷では当然違うので、出荷チャネルによってコスト計算が変わってくるとか、同一商品でも仕入れ先が異なるとかで、SKUを明確に分けたいといったことがある)

そうなると、ひとつの ASIN に対して複数の SellerSKU を作らざるを得なくなるので、「ASIN を元にした出品者の販売可能状態にある商品情報」が複数出来上がってしまうことがある。

ん~、処理の流れを追えば、ひとつのSellerSKUを投げたのにレスポンスが複数になる、という状況は理解できるけど、「SellerSKUは重複しない」という前提で商品を登録し販売・運用しているのに、その重複しないSellerSKUを投げても、レスポンスに他のSellerSKU情報も含まれるというのはどうも感覚的に不自然。

出品者にとって唯一無二のSellerSKUのはずなのに、返答にはそれ以外の不要な情報までわざわざひっつけてくるんだもの。

しかし、そういった仕様のようなので、「複数のレスポンスがある」ということを考えておかないといけないのね。

C#でAmazonMWSの注文APIを使ってみる

C#でMWSの注文APIを利用する
やりたいことはいろいろあるけれど、C#の勉強がてらAmazonのAPIを使ってみることに。

とりあえず、注文一覧の取得。

名前空間とかインスタンスとか、初歩的なことでかなりつまずいた感はあるけれど、MWSのクライアントライブラリが優秀なおかげか、なんとか動くようにはなるもんだな。

AmazonのSellerCentralから取得した情報をExcelで処理してみる

FBAがスゴク便利で、ちょいちょいAmazonに出品する機会がある。

そのなかで、Amazonの集客力を利用して赤字で在庫を処分する、というケースも想定される。

この場合、SellerCentralの「Amazon出品コーチ」が指示してくれる「在庫の補充を推奨する商品」では、さすがに自動的に弾いてくれるという事はない。

これは単純に過去の販売数量と在庫数あたりから補充の推奨を促しているだけなので、赤字でも格安で処分に走った商品なのか、今が旬の売れ筋商品なのかまでは気を遣ってくれない。当たり前だけど。

そこで、今回はExcel君に頑張ってもらった。

目的としてはFBA在庫として拡販・処分販売を行っていく商品の選別というのが第一。

そこで参照する、SellerCentralからダウンロードできるレポートで必要なのは

「レポート」→「ビジネスレポート」→「詳細ページ 売上・トラフィック」のCSVデータ
 ※ 直近30日の売上データを参照したい

「在庫」→「出品レポート」→「出品詳細レポート」のTAB区切りなtxtファイル
 ※ 現在価格や出品者側の在庫数を参照したい

「レポート」→「フルフィルメント」→「在庫受領レポート」
 ※ FBA納品日や数量を参照したい

「レポート」→「フルフィルメント」→「在庫健全性レポート」
 ※ 「売上・トラフィック」のCSVと被るが、過去30日、90日、または保管手数料などを参照したい

「SKUと自社で使用している販売管理ソフトなどで登録されている商品コード等との紐付けファイル」
 ※ こればかりは会社によって事業所によって異なると思う。
   AmazonでのSKUから、直接、仕切や社内在庫が検索できるなら不要。
   しかし、SKUがそのまま社内で使用している販売管理システムで通用するわけではないと思うので、
   今回は、SKUと社内で使用中の管理システムとを橋渡ししてやるためのリストを作った。
   データベースでいうところのリレーションというやつかしらね?

という、これら5つのファイルを用意する。

とはいっても、4つはAmazonが自動的に作ってくれるもの。

もう1つはSKUと自社システムとの紐付けファイルだけど、これは結局、運用するExcelファイルにシートとして用意して随時入力する方式とした。
(SKUと自社システムの管理コードが完全一致ならメチャ楽、ということなんだけど、逆をいえば、SKUと自社システムの管理コードとに全く関連がないと、全て手作業で入力しなければならないという可能性がなきにしもあらず)

で、出来上がったのがこんな画面。

fba_01


当たり障りのないデータを用意してみたつもりだけど、モザイクがうざくてすみません。

要は、これで現在価格と粗利、損益分岐点(ボーダー)、FBAへ最後に納品した日とその数量、納品アラート、過去30日間・90日間の販売数、ほぼリアルタイムに近い直近30日間の販売数、それらから求める月間予想粗利あたりがパッと見でわかる。
(粗利とはいっても販売手数料とFBA送料はさっ引いてるので、わりと純利益に近いかも)

で、わりと面倒なのがFBAへの納品手続き。

一つの商品を納品するならまだしも、複数の商品を納品しようとしたら「納品プランファイルをアップロード」という機能を使うと超便利。

その為に、ユーザーフォームを作って、出荷を推奨するデータのみに絞り、そこから本当に出荷すべき商品を「納品プランファイル」として作成するようにした。

こんな画面で作成時間のわりに、以外と使いやすかったりする。

fba_02


この画面だと「粗利率 1.99%」みたいになってる2919行目の商品は、もうやめてもいいよね。
3005行目も5%切ってるし、直近の30日間で2個しか売れてないとか、販売する意味ないよね。

そんな感じで「納品推奨」の中から「本当に納品すべきもの」を絞り込んでリストを作る。

納品したい商品にチェックを入れて、納品したい数量を入力して、「納品プランファイル作成」ボタンを押す。

出来上がったファイルをAmazonにアップロードすれば、後は「配送ラベル」を出力して、

混在在庫なら、商品を梱包し、

混在在庫じゃなければ、それぞれの商品にラベルを貼って梱包し、

発送すれば完了。

SellerCentralって確かに便利なんだけど、FBAに納品すべきかどうかを判断するのには、いくつかのレポートを見たり、在庫状況を確認したり、手数料を確認したり、なんだかんだでステップ数があるので、こうしてExcelにでもしておくと便利。

FBAへの出荷はおかげで漏れがなくなってきたかな。

Amazon MWS クライアントライブラリ を使ってみる 【 PHP 】

まずは設置。

とりあえず、フィードAPIのクライアントライブラリをダウンロード。

解凍すると[src]配下に[MarketplaceWebService]ができ、さらにその下に [Mock] [Model] [Samples] の3つのフォルダが出来上がる。

これらをサーバーの適当な場所に放り込む。

尚、「MarketplaceWebService」という名称は変更しない方が無難。
最初、必要なものだけ抜き出そうとして、フォルダ名を変更したら全く機能しなかった。
フォルダ名を戻したらOKだった、みたいなことがあったので、変更しない方が良いのかもしれない。

さて、フィードAPIの場合、編集が必要なファイルは「.config.inc.php」

アクセスキーIDやらシークレットアクセスキーやら、そのあたりを適宜変更。
「set_include_path」も変更が必要かな?
ここはこのライブラリをどこに置くでも変わってくるので、環境によりけりで要調整。

「Samples」フォルダから「SubmitFeedSample.php」「GetFeedSubmissionListSample.php」「GetFeedSubmissionResultSample.php」の3つをsrcフォルダに置く。

と、この「src」はあまりにもアレなので、適当に「Amazon」とでもリネームしてみた。

コピーしてきた3つのファイルも中身を適宜変更。

SubmitFeedでフィードを送り、GetFeedSubmissionListでリストを取得し、GetFeedSubmissionResulで結果を取得。

あとはFeedTypeにどんなのがあって、どんな書式になってるのか、利用シーンに合わせて勉強が必要か・・・

とりあえずは、ゲリラ的なタイムセールをやりたいときの時間帯指定セール価格変更が出来たのでよしとしよう。