わたしは現在、インターネットを使った輸入代行業をしています。
一般的なお客さんは海外のショップでほしいものがあっても、輸送手段もわからなければ送料もかさんでしまい、リスクがあって中々手が出せない。そんなコストやリスクの問題を代わりに負担し、その対価を得るのが輸入代行業、輸入ビジネスです。
海外で買った物をAmazonに出品するのですが、いったい相場はいくらなのか?そこで絶対に必須なツールが『モノレート』です。
非常に便利で必須なツールなのですが、どうしてもわたしの場合は自分のPC上にモノレート相当のツールを作り込まなければならない状況になりました。
今回は、モノレートを自分のPCに構築する方法と、なぜそのようになってしまったか、説明したいと思います。
目次
モノレートを自分のPCに構築した理由
モノレートがアクセス禁止になる
わたしは普段、自作のツールを使ってリサーチ作業をします。1時間の間に約15,000件のデータを取得することができます。
自分で言うのもなんですが、作業効率は相当良いはずです。しかし問題なのが、作業効率が上がりすぎてモノレートにアクセスする頻度も高くなってしまったのです。
モノレートに高速でアクセスしているせいか、モノレートからアクセス禁止にされてしまいます。アクセス禁止になると、一定時間はモノレートが使えなくなります。
モノレートの結果表示が遅い!
いくらモノレートにアクセスするのが早いといっても、そこはやはりブラウザを通して作業をしているため遅いです。理想としては、1万件の商品ID(AmazonだとASIN)を渡したら、1時間かけてもいいので1万件分のデータを返してほしいのです。
1件1件モノレートで確認していると、100件確認するだけでも1時間かかってしまいます。
モノレートの価格表示がカートボックス価格ではなく最安値であるため
モノレートは非常に便利なツールなのですが、わたしはAmazonのFBA(フルフィルメント・バイ・アマゾン)を利用しています。商品をAmazonに納品すれば、あとは全部Amazonが対応してくれるというサービスです。
この場合、販売時に送料などが加算されませんので、モノレートで最安値を表示されても、わたしが出品したい価格と乖離してしまうんですよね。
その結果、正しいリサーチ結果とならず、そこらへんを補正するために余計な時間がかかってしまいます。
アクセス禁止されて作業が止まる、外部ツールに依存することの危険性
わたしはもう何度も何度もモノレートのアクセス禁止をくらっています。正直モノレートに文句を言いたいです!
しかし、だからこそ見えたことがあります。それは、自分のお金を稼ぐ仕事を外部の無料ツールに依存させることは危険だということです。
ある日突然モノレートの運営が止まったらどうなってしまうでしょうか?代わりにプライスチェックというものもありますが、そちらも止まらない保証なんてありません。
やはり、自分の生活がかかっているようなものは、しっかり自分で用意すべきなんですよね。
モノレートを自分のPCに構築した方法
というわけで、わたしはモノレート相当のものを自分のPCに構築することにしました。それでは、実際にどういう環境なのか説明させていただきます。
カートボックス価格、ランキング、出品者数を出力するツールを作る
まず最初に、カートボックス価格、ランキング、出品者数を出力するツールを作ります。AmazonにはMWS APIというプログラミングを使ってAmazonのデータベースから直接データを取ってこれる仕組みがあります。
このMWS APIを使えば簡単にデータを取得することができます。1時間あたり36,000商品分のデータの取得が可能です。
取得したデータに日付を付与して、毎日ひたすらデータを蓄積する、たったこれだけのツールです。管理する商品数と蓄積する期間によりますが、10万件を3ヶ月間保存するぐらいであればハードディスク容量は1TBあれば十分すぎて余るぐらいでしょう。
プログラム言語はC#、データベースはMySQL
自分のPC上にモノレートを作る、となると、どのような環境にするかは非常に重要です。わたしが悩みに悩んだ結果、プログラム言語はC#で、データベースはMySQLを使用することにしました。
まず、自分のPC上で動くアプリであれば、言語はC#がベストでしょう。ありがたいことにAmazonもC#向けのクラスライブラリを公開しています。
悩ましいのがデータベースです。
C#であればSQL Serverを使用するのが一般的ですが、SQL Serverは無償版では10GBまでという制限があります。
モノレートは1つの商品につき1年間のデータを記録しています。これは簡単に10GBを突破してしまうことを意味しています。
次に候補にあがるのはaccessかMySQLです。
accessは視覚的にデータベースを扱いやすく、フレキシブルにフォルダ配置を変えられるのが良いところです。しかし、データ量が増えた時、処理速度が遅くならないか?という心配がありました。
MySQLは実績もありますので特にデメリットはありません。あえて言うのであれば、accessと違って視覚的にデータベースが見づらく、フォルダ配置を変更できないといったところでしょうか。
以上の理由から、プログラム言語はC#、データベースはMySQLに決定しました。
Windowsのタスクスケジュール機能でツールを指定した時間に自動実行する
環境が決まり、ツールを作成すれば、あとは作ったツールを自動実行するだけです。ツールの自動実行はWindowsのタスクスケジュール機能におまかせします。
ツール自体にスケジュール機能を持たせるのも良いですが、なるべくツールには複雑なことをさせないのが良いプログラムを作るためのコツです。作り込みを少なくすれば、テストも少なくなるし、バグ発生リスクも減りますからね。
まとめ
自分のPCに作り込んだモノレート、わたしはこれを『私設モノレート』なんて名前をつけています。これにより、商品の月間販売個数や価格の乖離率などがまとめて高速に取得できるようになり、リサーチ精度をさらに向上させることができます。
わたしは普段、組み込み系のソフトウェアエンジニアをしており、C#やデータベースとは無縁の人間です。C言語以外は基本的に仕事では使いません。
要するに、この程度のツールは大した難易度ではない、ということです。開発時間は2時間程度だったでしょうか。朝飯前です。
具体的な話はあえて伏せていますが、概要としてはこんなところです。そんなに難易度は高くありませんので、興味があればぜひ作ってみてください。
もうみんなでモノレートやめましょう、ストライキです!