プログラミングを上達するための秘訣は「何かをつくる」ということだと思っていて、
せっかくなら世間から求められているものをつくりたいなと思い、とある案件を物色しました。
今回のお題はこちら。
商品の発送を管理する新たなシステムを構築を希望しています。
現在はgoogle社の「スプレッドシート」および「フォーム」を利用して、オーダー管理・発送管理を行なっています。
ユーザーはフォームから発送してほしい商品情報や発送先住所を入力します。
そのデータをスプレッドシートに反映され、運営側は商品の仕分けや発送を行い、各ユーザーは自身のスプレッドシートに反映された内容で到着予定日などを確認する、というものです。
現在当社が使用している仕組みではデータ量の逼迫や動作の安定性などに問題があるため新たにシステムを作ることとなりました。
スプレッドシートというのはオンラインのエクセルみたいなもので、
多人数で同時編集できることが強みではあるものの、
- 管理するアイテム数が増えるほど表示が遅くなったり、
- 入力ミスやデータ消去のリスク
などもありえるので。
物流の受注・発送管理システムをどうやったらつくれるか、さっと考えてみました。
受注・発送管理システム テーブル構成
最初に考えるのは、どんなデータが必要かという事。
今回のケースではざっくりと、下記のようなテーブル構成でいいのかなと思いました。
購入者情報
- ID
- 氏名
- 郵便番号
- 住所
- 電話番号
- 参加年月日
- 更新年月日
- 退会済(表示非表示用)
- 購入回数?
- 購入商品(外部キー 1対n)
気になった事
- 会員機能などがあるとすると会員を退会するケースがありえるかも
- 購入した商品一覧などを表示する可能性もありえる
- 購入回数に応じて、優良顧客などを分ける可能性もありえる
といったところでしょうか。
続いて管理側・商品側。
商品
- ID
- 商品名
- 価格
- 消費税?
- 送料?
- 購入者No(外部キー 1-1)
- ステータス(販売中・発送準備中・発送済み)
- 商品販売日
- 登録年月日
- 更新年月日
- 表示非表示フラグ
気になった事
- 消費税の扱い(日本と米国で表示を変える必要あるかも?)
- 送料(お店や商品によってバラバラな可能性あり)
- ステータス(販売済みかそうでないかは把握したい)
- 表示非表示フラグ(ステータスでカバーできるかもだけど一応・・)
といったところでしょうか。
続いて受注・発送管理システムの機能の想定を。
受注・発送管理システム 想定機能
ユーザー側
- ログイン機能(新規登録機能?)
- 登録情報編集機能
- 商品情報(状況)
管理側
- ログイン機能
- 商品登録・編集機能
といったところでしょうか。
- 商品を1つずつ登録するか
- 商品名×数量 にするか
でだいぶ変わるので、そこはご縁があったら認識合わせしたいなと思います。
受注・発送管理システム 想定機能
規模や費用によって、
- どのサーバーを使うのか (レンタルサーバーかAWSか)
- どのデータベースを使うのか(レンタルサーバーならmysql)
- どの言語を使うのか (PHP/Rubyなど)
などの検討が必要になりますが、
今回の規模であれば、
- サーバーはXサーバーなどのレンタルサーバー
- データベースはmysql
- 言語はPHP (フレームワークとしてLaravel)
でいいのかなと思います。
フレームワーク『Laravel』を使うのは、
- 時短
- 認証周りの安全性
- セキュリティ確保
の点で、一からつくるより圧倒的にコスパがいいため。
とにかく早く、しかもハイクオリティなサービスとして、フレームワークは最善の手かなと思います。
受注・発送管理システムの作り方 まとめ
個人プロダクトをどんどんつくっていこうと決めたので、
今後はトレーニングも兼ねて、こういった想定、シミュレーションをどんどんやっていこうと思います。
レンタルサーバーでも使える便利フレームワーク『Laravel』をもっと活用して、
『問題解決のためのプログラミング』をもっと広めていけたらと思います。
アオキのツイッターアカウント。
この記事へのコメントはありません。