Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
28
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

PayPal のアカウントと Odoo で、カード決済のできるショッピングカート付きのコーポレートサイト(しかも多言語!)を 30 分で立ち上げる話し

始めに

Odoo とは?

Odoo 日本語コミュニティによると、Odoo とは世界で最も人気のある オープンソース業務アプリケーションスイート なんだそうです。ERP ってアレとかアレとか色々思いつきますがみんな凄く高いですよね。でもオープンソースな実装があったんですね!個人商店でも ERP が導入できる(してどうするんだというアレもありますが ^^;)時代になったんですね

本家サイトをみると、ユーザーには Auchan(フランスのスーパーです)、Danone(フランスのヨーグルトメーカーです。日本法人もあった気が...)、La POSTE(フランスの郵便局です、ちなみにフランスでもイタリアでもスペインでもポストは黄色)とフランスの会社が多いみたいですが、フランス以外でもジャンバジュースやWWF もつかってるそうです

きっかけ

Odoo は python で実装されているそうです。その辺りも含めていろいろと興味を持ち、下記の本など読むにますます興味が深まり


こちらは Odoo のアプリケーションを開発するためのエッシェンシャルなのですが、そもそも1章を読んでインストールして少し遊んでみて気がついたのですが、人事、財務、サプライチェーンマネジメントだけでなく Web サイトを作る機能もかなり強力 で、eCommerce 機能付きの今時のコーポレートサイトが一瞬でできてしまいそうなパワーを感じます。それだけの為にでも使ってみる価値がありそうです
それに、これを使った結果として大繁盛して個人商店が大企業に成長してしまったとしても、Odoo 本来の ERP の優秀な機能があるので会社経営の心配もありません(杞憂)

本題:カード決済のできるショッピングカート付きのコーポレートサイト(しかも多言語)を30分でたちあげる

こういうのを業者さんにお願いしたらえらい時間とお金がかかりそうです。自力で 30分でできればありがたいです
以下、イタリアのとある街の街路樹の下に生えていた美味しそうなキノコを売るお店を作る、というシナリオで実際にサイトをつくってみます。写真とってたらおばさんが「ボーノ・ボーノ」と笑いながら声かけてくれたので、きっとおいしいんだと思います。

ちなみにこんなキノコです... 本当にたべられるのかなぁ...
2013-10-29 17.32.02 のコピー.jpg

用意するもの

  1. PayPal のビジネスアカウント
    動作確認だけならダミーアカウントでできるので、本運用の予定がない場合は PayPal アカウントの取得は後回しでもいいです。本運用では必要です

  2. Debian のサーバ
    Odoo は Debian と相性がよいそうです。ちなみに Raspberry Pi model B+ 上の Raspbian でも以下の手順でインストール可能(ストレージを1.5GByte 程使います)で、かなり遅いけど動作しました ^^;
    DigitalOcean の月 5$ の Droplet でも快適に動きます。

Odoo のインストール

本を参考に、インストールの手順は以下になります

0.準備

apt-get update && apt-get upgrade
apt-get install sudo

1.Odoo を実行するアカウント(Odoo はセキュリティーへの配慮から
root では起動しません)とフォルダを作成

useradd -m -g sudo -s /bin/bash odoo
su odoo
mkdir ~/odoo-dev
cd ~/odoo-dev

2.git から Odoo をクローンする

sudo apt-get install git
git clone https://github.com/odoo/odoo.git -b 8.0

3.Odoo (と、依存する python モジュール)のインストール

./odoo/odoo.py setup_deps

4.PostgreSQL のインストール

./odoo/odoo.py setup_pg

5.Odoo の起動

~/odoo-dev/odoo/odoo.py

デフォルトでポート 8069 で起動します。

設定

1. モジュールのインストール

最初に起動すると以下の画面になります。いい感じで日本語です

スクリーンショット 2015-08-12 15.36.06.png

データベース名はなんでもいいのです。デフォルト言語もなんでもいいのですが私は一番得意な日本語にしておきました
ここで指定する password が、後で設定に利用する administrator のパスワードになります
Create Database ボタンを押して次に

スクリーンショット 2015-08-12 15.36.54.png

下記のようにローカルモジュールを選択する画面になります。そもそもが ERP なので CRM、Billing、プロジェクト管理、会計・財務、販売管理、倉庫管理とよりどりみどりです。これさえあればだれでも効率的で透明でスピーディーと、あまり日本的でない会社経営ができてしまいそうです。が、今回はこれらはつかいません。機会がありましたらまた別途ご報告させていただければと存じます
右上、赤い三角のビックリマークがでてますが、これは私がシンガポールサイトの digital ocean を使ったために、サーバとクライアントでタイムゾーンがあってないという親切なワーニングです

スクリーンショット 2015-08-12 15.37.57.png

以下のように、タイムゾーンを日本に統一してしまいます

スクリーンショット 2015-08-12 15.38.33.png

で、ずーっと下にスクロールしていくと Website Builder, Blog, Online Event, Forum, eCommerce といった企業ウェブサイトに関係あるモジュールが並んでいますのでこれらを順番にインストールします。依存関係のあるものは自動的にインストールされるので Website Builder を除いた 4つをそれぞれインストールします

スクリーンショット 2015-08-12 15.39.32.png

eCommerce をインストールする際に、依存関係から自動的に会計のモジュールが入ります。会計基準と通貨をきかれるので
スクリーンショット 2015-08-12 15.41.12.png

以下のように日本会計基準と日本円を選択します
スクリーンショット 2015-08-12 15.42.03.png

尚、それぞれのモジュールのインストール後は、そのモジュールのが関係する Web サイト(例えば Shop とか Forumsとか)の編集画面に遷移しますので、右上の Administrator メニューで My Account を選択してログインし、設定メニューに戻ってインストールを続けます

スクリーンショット 2015-08-12 15.45.15.png

5つ全部インストールされましたので、設定メニューのとなりの Website メニューをクリックします
今回は説明を省略しますが、Shop の他にイベント通知、ユーザーフォーラム、ニュース、コンタクトと企業サイトに必要になりそうなものが揃っています
スクリーンショット 2015-08-12 15.45.48.png

2. Web ページの設定

こんな感じで英語なので、右下の add a language リンクをクリックして
スクリーンショット 2015-08-12 15.46.23.png

言語を追加します
いろんな言語に対応してるので、将来多国籍企業に成長しても問題なしです
スクリーンショット 2015-08-12 15.46.43.png

とりあえず日本語
スクリーンショット 2015-08-12 15.46.55.png

こんな感じで日本語リンクが追加されました
スクリーンショット 2015-08-12 15.47.55.png

サイトがさびしいのでバナーを追加します。右上の Edit ボタンを押すと編集モードになるので、Insert Blocks から Banner をサイトにドラッグ&ドロップします
スクリーンショット 2015-08-12 15.48.12.png

こんな感じでバナーが追加されるので、タイトルを変更します
スクリーンショット 2015-08-12 15.48.27.png

変更したら Save ボタンで保存。
スクリーンショット 2015-08-12 15.49.43.png

日本語ページは日本語リンクをクリックして開いたページで Edit ボタンをクリック。下記のように「白い所は英語の原文なので、黄色いところに訳文をいれてね」という notification が開くので OK を押して
スクリーンショット 2015-08-12 15.50.07.png

訳文を入れていきます
スクリーンショット 2015-08-12 15.50.35.png

ちょっと手抜きですが、日本語ページもできました
スクリーンショット 2015-08-12 15.50.53.png

3. 商品の登録

Shop リンクをクリックしてもまだ商品が登録されてないのでカラです
スクリーンショット 2015-08-12 15.51.06.png

再度、Administrator に戻り
スクリーンショット 2015-08-12 15.51.17.png

販売メニューで商品を作成します
スクリーンショット 2015-08-12 15.52.51.png

ポップが出ている通り、description は内部情報専用なので、お客様が心配するような事を書いても大丈夫です
スクリーンショット 2015-08-12 15.55.27.png

商品が追加されましたが色が薄いです。実は、登録したままだとまだ商品が publish されていません。明示的に publish して、初めて商品が公開されます
スクリーンショット 2015-08-12 15.56.34.png

商品を選択して publish にすると
スクリーンショット 2015-08-12 15.59.56.png

今度は奇麗に表示されます
スクリーンショット 2015-08-12 16.00.48.png

4. PayPal モジュールの追加

PayPal 決済のために PayPal モジュールをインストールします
PayPal で検索して
スクリーンショット 2015-08-12 15.57.28.png

インストールします
スクリーンショット 2015-08-12 15.57.48.png

PayPal のマーチャントIDの設定

このままでも Online Shopping の動作確認は可能で、
商品をカートに入れて
スクリーンショット 2015-08-12 16.00.58.png

決済に進むと
スクリーンショット 2015-08-12 16.02.48.png

ダミーですよという画面になります
スクリーンショット 2015-08-12 16.03.06.png

再度、admin でログインして
スクリーンショット 2015-08-12 16.03.33.png

設定メニューで Payment Acquires から Paypal を選択します
Paypal Emil ID と Paypal Merchant ID がダミーになっているので、こちらに正しい値を設定して
スクリーンショット 2015-08-12 16.04.23.png

Environment を Test から Production に変更して
スクリーンショット 2015-08-12 16.28.25.png

再度、カートを清算すると今度はこのように、PayPalでの本番決済となり、PayPal かクレジットカードを選択して決済を受けることが可能になります
スクリーンショット 2015-08-12 16.29.27.png

その他、雑多

ポート 80 番での運用

1024番より小さいポートを利用するのには root の権限が必要なのですが、Odoo はセキュリティへの配慮から root では起動しません。そこで、Odoo のコミュニティでは以下のように 8069番 を 80 番に forward する事が推奨されているようです

/etc/rc.local
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8069

感想

とにかく簡単にサクサクとサイトができていく感じでちょっと感動しました

futur works

Odoo Application Development.

Threats of Validity

作業しながら取得した画面キャプチャのタイムスタンプをみていたら、ditigal ocean の droplet を作り始めたのが 15:00 頃で、最期の PayPal 決済の画面がでてるのが 16:30 頃なので、タイトルの ”30分で” の表記の Internal Validity が心配になるところではありますが、実際は途中で余計な事(洗濯物の取り入れとか)をしながらなの作業だったので、賞味 30分はホントだと思いますが、追試 WelCome です

参考 URL

  1. Odoo Development Essentials: インストール手順はこちらを参考にしました。amazon.com で五つ星の評価ですね
  2. change to port 80 instead of 8069: ポート80番で運用する方法についてのコミュニティフォーラムでの議論です
  3. 本家サイト
  4. 日本語コミュニティ
  5. AWSのインスタンス高過ぎワロタ。探せば安くて美味いところはあります: digital ocean や ovh といった安い VPS の紹介
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
28
Help us understand the problem. What are the problem?