機能関連図なるものを作成してみました

システム内にどのような機能があるのか、どのようなデータがあるのかを表現するために、機能関連図という表現方法が存在します。

仕事で作成したことはほとんどないので、書き方を調べなおして、書いてみました。

主要な機能関連図はこちら

かめたろーシステム(=アマゾン商品の自動収集システム)の主要機能を以下の画像に惜しみなく書きました。

ごちゃごちゃしすぎるので、主要機能(全体の8割程度)のみ書いています。

人のシステムなぞ興味ないと思いますが、個人的におすすめの機能を説明したいと思います。

リクエストあれば機能の説明を追記したいと思いますので、コメントお待ちしています。

 

ASIN自動収集機能

説明

使用MWS
①商品 ListMatchingProducts
②商品 GetMatchingProduct

①は任意の検索キーワードと商品カテゴリを指定すると、オススメの商品(ASIN)を返信してくれるというものです。

多いときで10商品少ないと0個のASINを取得することができます。

ポイントは、検索キーワードを日本語10万件、英語10万件程度をデータベース内に事前に用意しており、手動で指定しなくても、勝手にプログラム君が1件ずつ(1キーワードずつ)取り出してきて、リクエストしてくれるというところです。

②は、ASINを指定すると、その商品の詳細情報(名称、サイズ、重さ、など)を返信してくれるものです。

実はこの詳細情報の中に関連商品のASINも含まれている場合があります。

例えば、色違いの商品とかですかね。それも含まれていた場合は、頂いちゃいます。

 

動作ログ

①検索キーワードからのASIN収集 動作ログ(簡易版)

自作のプログラムは、ログを出力させてます。

1行目の説明をすると、9/23 11:22:54に、lithoという検索キーワードを指定して、ListMatchingProducts APIをリクエストし、Totalの数だけASINを返信してくれました。そのうちデータベースに格納しようとしたら、3件成功しました。という意味です。残りの7件はすでにデータベースに存在しているので、追加されません。

2017/09/23 11:22:54 litho ( 2017/09/17 20:53:46 ) Total:10 Success:3
2017/09/23 11:22:58 lithograph ( 2017/09/17 20:53:50 ) Total:4 Success:3
2017/09/23 11:23:02 lithographer ( 2017/09/17 20:53:54 ) Total:10 Success:10
2017/09/23 11:23:07 lithographers ( 2017/09/17 20:53:57 ) Total:10 Success:0
2017/09/23 11:23:10 lithographic ( 2017/09/17 20:54:01 ) Total:1 Success:0
2017/09/23 11:23:14 lithographs ( 2017/09/17 20:54:09 ) Total:4 Success:0
2017/09/23 11:23:18 lithography ( 2017/09/17 20:54:13 ) Total:2 Success:1
2017/09/23 11:23:22 lithoid ( 2017/09/17 20:54:16 ) Total:0 Success:0
2017/09/23 11:23:26 lithos ( 2017/09/17 20:54:20 ) Total:10 Success:0
2017/09/23 11:23:29 litigate ( 2017/09/17 20:54:24 ) Total:2 Success:1

 

②ASIN指定の詳細情報内の関連ASIN収集 動作ログ(デバッグ版)

デバッグ版ログ(動作詳細を知りたいために多くの処理結果を出力)は、出力サイズが多くなるので、通常は出力させていません。

下のほうの「Inserted Relation ASIN_ID: xxxxx with yyyyyyyy」という部分が関連ASINを収集しているところのログです。

63453 ms : Created Request Parameters
63453 ms : Create Signature
64764 ms : Received Response
64856 ms : Inserted Relation ASIN_ID : B018HW3EDC with B018HWDPT0
64859 ms : B018HWDPT0 : Success 0
65033 ms : Inserted Relation ASIN_ID : B011R988I8 with B01HZPUZ70
65050 ms : Inserted Relation ASIN_ID : B011R98SFG with B01HZPUZ70
65061 ms : Inserted Relation ASIN_ID : B011R99CVK with B01HZPUZ70
65128 ms : Inserted Relation ASIN_ID : B011R99VO8 with B01HZPUZ70
   ~中略~
69874 ms : Inserted Relation ASIN_ID : B011R97NF2 with B01HZPUZ70
69909 ms : Inserted Relation ASIN_ID : B011R9AFDY with B01HZPUZ70
69993 ms : B01HZPUZ70 : Success 0

いやー長くなってしまうぅ

 

売買個数集計機能

説明

使用MWS
商品 GetCompetitivePricingForASIN

売買個数集計は、大きく2ステップに分けられます。

Step1.
データベース内にあるASINを取り出して、上記APIを呼び出して、ランキング情報をアマゾンからもらってきます。もらってきたランキングは「日時」と「ランキング」を一緒に履歴としてデータベースに保存しておきます。現在、1日に80万ASIN程度のランキングを順次取得してデータベースに格納しています。

Step2.
Step1.で収集できた数ヶ月間のランキング情報をもとに売買個数を算出しています。

具体的には、ランキングが上がると、1回売れました、的な。
ただ、その時に出品者がゼロという不可解なことが起きる時、あった気がします。(おそらく売れてはないけれど、ランキングが上位にあがる)

まぁ、そういうことも踏まえて「出品者がゼロでない」という条件も追加しています。

動作ログ見てもちんぴんかんぷんなので収集したランキングから売買個数を集計するイメージです。

例 
ASIN_ID : 対象ASIN
DATE : ランキング取得日時
RANK : ランキング
NEW : 新品を出品している人の数
USED : 中古を出品している人の数
ANY : 新品、中古、コレクター、など全出品者数

 

 

ということで、現在は確か120万件程度のASINのランキング情報を1~1.5日間隔で収集しており、そこから随時売買個数を算出してデータベースに格納しています。

本当に合っているのかな?笑

数が多すぎて確認なんかする気まったくないですが、たまにモノレートで確認してみると、なんかそんな感じだし、取引商品を仕入れて輸出してみると、やはり早く売れたりするから、合っているということにしています。

 

疲れました~。

他にも知りたい機能あれば、時間のあるときにでも説明を追加したいと思います。コメント待ってまーす☆

それでは、また次回!!

 

 

 

コメントを残す

メールアドレスが公開されることはありません。