2016年6月4日

秋月で買える電子部品でリスト作成して色々できるサービスを作った

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

大きな地震があったりでバタバタしてたら4月5月と過ぎて6月になっていました...
というわけで2か月ぶりのブログ更新。

タイトル通り、秋月電子通商で扱っている電子パーツでパーツリストを作成、公開、共有、そして秋月の買い物かごに一括して放り込めるWebサービスを作りました。

その名も AkiCart
http://aki.prioris.jp/
(ちょっとダサいネーミングだったかも)

そう、秋月通販をよく使っている人は知っている... 秋月の買い物かごはセッション切れで放置してるとすぐに消えることを...

そこで、このサービスでは秋月で扱っている商品をリストに登録して保存し、リストのページにある「まとめてカートに入れる」ボタンを押すことで、いつでも秋月の買い物かごに商品をまとめて登録できるようにしました。


Twitterでログインすると、ダッシュボードが登場、ここから新しいパーツリストを作成できます。
作成するパーツリストは、アクセスレベルが公開(Public)、限定公開(Unlisted)、非公開(Private)の3種類から選択可能。
公開を選ぶとAkiCartのトップページにリストされる(こともある)ようになり、限定公開を選ぶとリンクを知っている人だけが閲覧可能なリストになり、非公開は文字通り自分しか見れないリストができます。


商品の追加はリストの画面からもできるのですが...
AkiCartの一番の特徴は、超超超便利なブックマークレット。
秋月の商品画面でブックマークレットをクリックすると、一発で作成したリストに追加できます。


ブックマークレットをブラウザに追加しておくと、秋月のページでクリック→個数の変更がない場合はそのままEnterを押すだけでドンドン追加できます。
AkiCartのブックマークを押して登録完了するまで最短2秒くらい。


作ったリストは一括して買い物かごに入れるだけでなく、CSV形式でダウンロードしたり、印刷専用のレイアウトで印刷することもできます。
高専とか大学とかで、事務の人に「これ買ってください」って渡すのも楽チンですね。

〜ここからはちょっとだけ技術的な話〜

今までは、買いたい商品のページをブラウザでブックマークしておいて、買うときに一挙に開いてカートに追加するという作業で購入していました。
流石にこれどうにかならんのか?というのと、何やら秋月の一括通販コード入力画面はリファラをチェックしてないから別サイトからPOSTできるという話を聞きまして...


一括通販コード入力画面からの遷移を見てみると、いつものカート画面(cart.aspx)に対して quick: True を指定して、あとはclass1_xに通販コードのハイフンの左側の英字1文字、goodsにハイフン右側の数字5文字、そしてqtyに数量を入れて、これを繰り返したものをPOSTしてあげればカートに入ることが分かりました。
そしてやはりリファラをチェックしてないので、このページ以外からPOSTしても普通にカートに入ることも確認。
これらを元にして、AkiCartができた...という訳です。
ちなみに、AkiCartの任意のリストページのソースを見ると、まとめてカートに入れるボタンの近くにtype="hidden"でいっぱいinputが転がってますw

バックエンドはEVI(地震火山詳報)でも使っているDjango(Python)です。
ここ数ヶ月触ってなかったので結構忘れてて、調べながらコード書いてたので時間が掛かりました...
6/3のAM2時頃に作り始めて、途中寝たり飯食ったりした時間を抜くと15時間くらいかな...?
バグとかセキュリティ的なアレを発見したら、Twitterでリプライ頂けると非常にありがたいです。

早速要望として、リスト間で商品を移動できるようにしたいとか、リストをブログなどに埋め込めるようにしたい、という意見が出ているので、ぼちぼちアップデートしていきたいと思います。

これとは別件で、そこそこ実用的かつ面白いものづくりのプロジェクトも進んでいるので、また報告できるタイミングになったらブログなどなどに書きたいと思います。

追記 : ブログパーツ(埋め込み用コード)できました。


公開もしくは限定公開のリストであれば、リストページの右サイドバー下に「埋め込みコード」の欄があるので、これをコピーして貼り付ければOK!