もう“もしもAPI
”はお試しになりましたでしょうか?
“もしもAPI”の利用には認証コードが必要になります。
まだ取得していない片は、もしもに利用申請
して認証コードを取得してください。
2月にリリースされた“もしもAPI”。 これはまだベータ版です。
今後の機能UPを期待したい所です。
希望する機能としては
1.フラグ追加
2.複数商品IDを扱える
3.注文商品データを取得できる
4.在庫数を取得できる
5.データPUSHが可能
6.サーバの処理速度アップと分散
1.フラグ追加
検索結果データに含まれている「同梱不可フラグ」「素材有無」「メーカ名」等もパラメータとして与えられるようにして欲しいです。
(メーカ名の表記を統一して欲しいです。同じメーカでも英語表記だったりカタカナ表記だったり…)
2.複数商品IDを扱える
現在、1度のリクエストで指定できる商品IDは1つのみです。
したがって在庫チェックの為に何回もリクエストを行います。
もしも側としてもリクエスト回数が減ってサーバへの負荷が低くなるので
対応して欲しいところです。
その際には、もしプリの「在庫チェック」機能
が不要になりますが。
3.注文商品データを取得できる
たとえば、1時間以内注文が入った商品を取得できる。
現在でも「売り上げ順」でデータを取得できますね。
集計単位が1日なのか1週間なのか分かりませんが。
※どんなショップで、どんなキャッチで、どんな売り方をしているか等が大事なので、単純にこういったデータを取得しても巧く利用できないかもしれませんね。
4.在庫数を取得できる
商品によっては「あと何個」などの表示を行って購買意欲を掻き立てられる工夫がしたいですね。
ただ、ショップでAjax等でリアルタイムに在庫数の変化を表示しないと、お客さんからクレームが入りそうですね。
「まだ在庫数が10個って表示があったのに・・・」
5.データPUSHが可能
現在、販売価格を変更する方法は①もしもサイトで商品を検索する。②登録商品価格修正機能を使用する。の2種類です。
販売価格を[1]指定の価格[2]最低販売価格or推奨販売価格に設定できる[3]販売解除できるようPUSH式の機能も実現して欲しいです。
ただ、ショップで紹介する商品を1つ1つ吟味するという作業が疎かになるのは避けたいです。
6.サーバの処理速度アップと分散
www.moshimo.comとapi.moshimo.comのIPアドレスが同じなので、ちょっと触れてみました。
表向きは1つのIPで、内部では振り分けているのかもしれませんし、今の時点で(垂直にしても水平にしても)分散が必要なのか判りません。
「もしもAPIの欠点
」でも触れましたが、処理が遅い場合があるので、処理速度の向上をお願いしたい。
設備投資・人的投資が大変で、なかなか難しいかもしれませんが。
“もしもAPI”の欠点について
・(当然ですが)プログラミングが必要
“もしもAPI”を利用したツールが公開されているので、間接的に利用可能です。
・サーバが重い
検索条件によってレスポンス時間がかなり違います。
こんなスクリプトで実行してみました。
$base_url="http://api.moshimo.com/article/search.json?authorization_code=$AUTH_CODE";
$url['all']='';
$url['is_newly']='is_newly=1';
$url['is_salable']='is_salable=1';
$url['is_delivery_sameday']='is_delivery_sameday=1';
$url['stock_status_0']='stock_status=0';
$url['stock_status_1']='stock_status=1';
$url['stock_status_2']='stock_status=2';
$url['stock_status_3']='stock_status=3';
$url['exists_stock_1']='exists_stock=1';
$url['exists_stock_2']='exists_stock=2';
$url['is_newly+is_salable']='is_newly=1&is_salable=1';
$url['is_newly+is_salable+is_delivery_sameday']='is_newly=1&is_salable=1&is_delivery_sameday=1';
$url['is_newly+is_delivery_sameday']='is_newly=1&is_delivery_sameday=1';
$url['is_salable+is_delivery_sameday']='is_salable=1&is_delivery_sameday=1';
$url['is_newly+exists_stock_1']='is_newly=1&exists_stock=1';
$url['is_salable+exists_stock_1']='is_salable=1&exists_stock=1';
$url['is_delivery_sameday+exists_stock_1']='is_delivery_sameday=1&exists_stock=1';
$url['article_id']='article_id=161234';
foreach ($url as $key => $value) {
$started = microtime(true);
$req = $base_url;
if ($value != "") $req .= "&" . $value;
$obj = json_decode(file_get_contents($req));
printf("%s, %s件, %s秒<br/>\n", $value, $obj->ArticleSearch->Found, microtime(true)-$started);
}
実行結果
全件, 67417件, 5.6072390079498秒
is_newly=1, 5316件, 0.73922896385193秒
is_salable=1, 13581件, 2.6308019161224秒
is_delivery_sameday=1, 355件, 3.8002920150757秒
stock_status=0, 67417件, 5.666384935379秒
stock_status=1, 15906件, 4.1660718917847秒
stock_status=2, 10733件, 3.0132188796997秒
stock_status=3, 20954件, 3.1429738998413秒
exists_stock=1, 47593件, 4.5479798316956秒
exists_stock=2, 19824件, 3.334951877594秒
is_newly=1&is_salable=1, 2049件, 0.4449667930603秒
is_newly=1&is_salable=1&is_delivery_sameday=1, 2件, 0.1696240901947秒
is_newly=1&is_delivery_sameday=1, 3件, 0.18348097801208秒
is_salable=1&is_delivery_sameday=1, 88件, 2.1910710334778秒
is_newly=1&exists_stock=1, 4637件, 0.61729192733765秒
is_salable=1&exists_stock=1, 10038件, 2.227205991745秒
is_delivery_sameday=1&exists_stock=1, 322件, 5.8006191253662秒
article_id=161234, 1件, 0.16973304748535秒
商品1つだけの検索は問題ないです。
全件を検索するのに5秒、遅いときは10秒以上掛かるときもありました。
全件と言ってもDB側の処理が全件検索であって、取得するデータは10件です。
新着商品(is_newly)の検索は早いですが、ヒット実績あり(is_salable)や
即日配送(is_delivery_sameday)、在庫状況などは1秒以上掛かっていて遅いです。
データベースのチューニングが必要ですね。
今後、“もしもAPI”を利用してリアルタイムデータで商品情報を表示するWebサイトが増えると思います。
データ取得が遅くなるとWebサイトに訪れる人が少なくなるのではと思います。
作り方によっては遅くならない方法も実現できると思います。別の機会に紹介できればと思います。
・(当然ですが)プログラミングが必要
“もしもAPI”を利用したツールが公開されているので、間接的に利用可能です。
・サーバが重い
検索条件によってレスポンス時間がかなり違います。
こんなスクリプトで実行してみました。
$base_url="http://api.moshimo.com/article/search.json?authorization_code=$AUTH_CODE";
$url['all']='';
$url['is_newly']='is_newly=1';
$url['is_salable']='is_salable=1';
$url['is_delivery_sameday']='is_delivery_sameday=1';
$url['stock_status_0']='stock_status=0';
$url['stock_status_1']='stock_status=1';
$url['stock_status_2']='stock_status=2';
$url['stock_status_3']='stock_status=3';
$url['exists_stock_1']='exists_stock=1';
$url['exists_stock_2']='exists_stock=2';
$url['is_newly+is_salable']='is_newly=1&is_salable=1';
$url['is_newly+is_salable+is_delivery_sameday']='is_newly=1&is_salable=1&is_delivery_sameday=1';
$url['is_newly+is_delivery_sameday']='is_newly=1&is_delivery_sameday=1';
$url['is_salable+is_delivery_sameday']='is_salable=1&is_delivery_sameday=1';
$url['is_newly+exists_stock_1']='is_newly=1&exists_stock=1';
$url['is_salable+exists_stock_1']='is_salable=1&exists_stock=1';
$url['is_delivery_sameday+exists_stock_1']='is_delivery_sameday=1&exists_stock=1';
$url['article_id']='article_id=161234';
foreach ($url as $key => $value) {
$started = microtime(true);
$req = $base_url;
if ($value != "") $req .= "&" . $value;
$obj = json_decode(file_get_contents($req));
printf("%s, %s件, %s秒<br/>\n", $value, $obj->ArticleSearch->Found, microtime(true)-$started);
}
実行結果
全件, 67417件, 5.6072390079498秒
is_newly=1, 5316件, 0.73922896385193秒
is_salable=1, 13581件, 2.6308019161224秒
is_delivery_sameday=1, 355件, 3.8002920150757秒
stock_status=0, 67417件, 5.666384935379秒
stock_status=1, 15906件, 4.1660718917847秒
stock_status=2, 10733件, 3.0132188796997秒
stock_status=3, 20954件, 3.1429738998413秒
exists_stock=1, 47593件, 4.5479798316956秒
exists_stock=2, 19824件, 3.334951877594秒
is_newly=1&is_salable=1, 2049件, 0.4449667930603秒
is_newly=1&is_salable=1&is_delivery_sameday=1, 2件, 0.1696240901947秒
is_newly=1&is_delivery_sameday=1, 3件, 0.18348097801208秒
is_salable=1&is_delivery_sameday=1, 88件, 2.1910710334778秒
is_newly=1&exists_stock=1, 4637件, 0.61729192733765秒
is_salable=1&exists_stock=1, 10038件, 2.227205991745秒
is_delivery_sameday=1&exists_stock=1, 322件, 5.8006191253662秒
article_id=161234, 1件, 0.16973304748535秒
商品1つだけの検索は問題ないです。
全件を検索するのに5秒、遅いときは10秒以上掛かるときもありました。
全件と言ってもDB側の処理が全件検索であって、取得するデータは10件です。
新着商品(is_newly)の検索は早いですが、ヒット実績あり(is_salable)や
即日配送(is_delivery_sameday)、在庫状況などは1秒以上掛かっていて遅いです。
データベースのチューニングが必要ですね。
今後、“もしもAPI”を利用してリアルタイムデータで商品情報を表示するWebサイトが増えると思います。
データ取得が遅くなるとWebサイトに訪れる人が少なくなるのではと思います。
作り方によっては遅くならない方法も実現できると思います。別の機会に紹介できればと思います。
moshimo-app.com
では、“もしもAPI”を利用したツールを公開しています。
◆現在公開している機能は ①商品検索 ②在庫チェック ③カテゴリ検索 です。
①詳細な検索条件を指定して商品を検索します。
②商品IDを指定して在庫をチェックします。(複数の商品IDを指定し、まとめて在庫チェックできます)
③カテゴリを検索します。
◆今後、どんどん機能を追加していきたいと思っています。
◆“もしもAPI”を使って独自アプリケーションを作成する方法についてもmoshimo-app.com 、または、このブログで公開したいと思います。
◆現在公開している機能は ①商品検索 ②在庫チェック ③カテゴリ検索 です。
①詳細な検索条件を指定して商品を検索します。
②商品IDを指定して在庫をチェックします。(複数の商品IDを指定し、まとめて在庫チェックできます)
③カテゴリを検索します。
◆今後、どんどん機能を追加していきたいと思っています。
◆“もしもAPI”を使って独自アプリケーションを作成する方法についてもmoshimo-app.com 、または、このブログで公開したいと思います。