月別: 2011年5月

『OpenCart』でお問合せ確認メールの送信先にショップを追加・・・そして。

カスタマイズの内容

OpenCartのお問い合わせフォームから問い合わせが送信されると、デフォルトでは、

1)送信者名はお客様。そして送信者には敬称なしのお客様名が入る
2)送信先は店舗。そして内容の確認メールはお客様には送信されない
3)お問い合わせ内容確認メールのタイトルが変。(「問合せ お客様名<しかも呼び捨て>」ってどうなのよ。。。

ということで、これを下記のようにカスマイズします。

1)送信者名は店舗名。そして送信者にも店舗名が入る
2)送信先は、お客様と店舗の両方宛に内容の同じ確認メールが送信される
3)お問い合わせ内容確認メールのタイトルは、「[店舗名]お問い合わせを受け付けました。」と変更

編集するファイルは2つです。

・/catalog/controller/information/contact.php
・/catalog/language/japanese/information/contact.php

それでは始めます。こっちから。

/catalog/controller/information/contact.php の編集

L19)確認メールの送信先にお問い合わせしたお客様の入力したEメールアドレスも追加。

$mail->setTo($this->config->get('config_email'));

$mail->setTo($this->config->get('config_email').','.$this->request->post['email']);

L20)確認メールの送信元アドレスを店舗のアドレスに変更。

$mail->setFrom($this->request->post['email']);

$mail->setFrom($this->config->get('config_name'));

L21)上記に合わせて送信者を店舗名に変更。

$mail->setSender($this->request->post['name']);

$mail->setSender($this->config->get('config_name'));

L22)確認メールのタイトルを変更。

$mail->setSubject(sprintf($this->language->get('email_subject'), $this->request->post['name']));

$mail->setSubject(sprintf($this->language->get('email_subject'), $this->config->get('config_name')));

/catalog/language/japanese/information/contact.php の編集

L19) 「お問合せ 山田花子」みたいなのから「[店舗名]お問合せを受け付けました」とお客様宛ての体裁になるように変更。

$_['email_subject'] = 'お問合せ %s';

$_['email_subject'] = '[%s] お問合せを受け付けました ';

ついでに、おかしなところも直しておく。(変更後のコードだけ書きます。)
システムコードに設定されている文字数とこの日本語ファイルで記載されている文字数が違いますので、その辺モゴモゴとか。。。
L10)

$_['text_message'] = '

お客さまのメールは店舗に送信されました!

';

L22)

$_['error_name'] = 'お名前は3文字以上32文字以下でお願いします!';

L24)

$_['error_enquiry'] = 'お問合せ内容は10文字以上3000文字以内でお願いします!';

以上です。日本語の編集や確認メールの送信仕様には好みもあるかと思いますが、私は、確認メールは、お客様と店舗の両方に来て欲しかったし、店舗からお客様に向けた受付の確認メール、という体裁にしたかったので、上記のプチカスタムを行いました。

『OpenCart』にSSLを導入する

それで、っと。(何が?とかキビシク突っ込んであげてください;)

SSL入れていきます。

自分で書いてたルート証明とかの情報がちょっと古くなっているので、再検索。
携帯対応ということも考慮にいれて、変わらず、
「Equifax Secure Certificate Authority」ルートの入っているSSL証明を探す。

で上がった候補が、
・QUICKSSLpremium
・rapidSSL
・alphaSSL
この3つのどれか。

どれもリーズナブルだけど、欲しいスペックに不満なし。
でも、できるだけ安いほうがいいから、やっぱり海外で再販業者を探す。
(日本のサイトで申しこめば、タブン結構丁寧な導入解説とかあるはずなので、参照してください。)

http://www.namecheap.com/ssl-certificates/geotrust-ssl-certificates.aspx
↑ここから、rapidSSLを購入することにします。
rapidSSLは、最近ルート証明が「Equifax Secure Certificate Authority」に変わったので、携帯の対応範囲が格段に広がったので、いいんじゃないかなと思う。
私は先にドメインを取ってしまったんだけど、このサイトから、ドメインを取ると1年のSSL証明が2ドルとか3ドルみたいな激安でオプション追加できたりする。バリュー。。。

全体的な流れ

<SSL証明書を買って支払う> → <CSRキーを生成してSSL証明機関へ送る> → <SSL証明機関から発行された証明書とサーバのプライベートキーなど合計4つのキーファイルをサーバにインストールする>

レンタルサーバサービス側でCSRキーを発行する

レンタルサーバの管理画面から、SSLのメニューを探し、CSRキーとプライベートキーを発行する。
画面内からコピーペーストできる場合もあるし、メールで送られてくる場合もある・
この手順は、手順自体が、レンタルサーバのサービス業者によって色々。メールで先方に依頼する場合もある。
※取得するSSLのドメインは、サブドメインまで含めて。www.○○○.comという形で。

SSL証明買って、、、CSRの送信

1)SSL証明書買います。

上記、私の購入した先は、英語ですけど難しくはないので、ユーザー登録、注文して決済してください。ユーザ登録したメアドに、確認メールが届く。

SSL証明会社へCSRを送信する

届いたメールの中のSSL Certificates: というタイトルの文を参照しながら、「SSL listing page」というリンクをクリック。
サービスの管理画面に入る。
購入したSSL証明が一覧になっているので、その中から使用するSSLの「Activate Now」リンクをクリック。今回は1つ購入しただけなので迷うことはない;
(※アクティベートして利用を開始した日から1年有効となる)
必要な内容を入力していく。
※webmaster@ドメイン、root@ドメイン、admin@ドメイン、postmaster@ドメインなど管理者用の特定のメールアドレスが必要になるので、先にレンタルサーバの管理画面の方で、メアドを作成しておいて下さい。この場で画面を見て作成しても構いません。

先ほどレンタルサーバ会社で発行したCSR(証明書のリクエストキー)を
「—–BEGIN CERTIFICATE REQUEST—–」から
「—–END CERTIFICATE REQUEST—–」まで全て含めて送信する。

サイトの管理者によるリクエストの承認を行う

完了したら、ここで登録した、先程の、webmaster@ドメイン、root@ドメイン、admin@ドメイン、postmaster@ドメインなど管理者用のメールアドレス宛に、SSL証明書を発行してもよいか問い合わせる承認依頼メールが届く。

その確認メール内の、
(申込者の名前) requests that you come to the URL below to review and approve this certificate request:
***リンク***
このリンク部分をクリックして、確認画面へ行き、内容を確認して、SSL証明のリクエストを承認する。

今度は、申込者のメールアドレスの方に、承認が受け付けられた旨の連絡と、証明書のキー2種類が、CSRと同じテキストの形式で届く。
このSSL照明会社(ジオトラスト)のサービスの場合は、届いたメールの下の方にあるが、メールへのファイル添付で届く場合やSSL証明会社の管理画面からダウンロードしてくる場合もある。

レンタルサーバサービス側で全てのキーを登録する

これで、

レンタルサーバサービス(自サーバ)で発行された
・CSRキー
・プライベートキー

の2つと、

SSL証明会社で発行された
・WEBサーバ証明書
・CAキー

の2つ、合計で4つのキーファイルが揃った。

この4つのキー全てを、WEBサーバに送信すれば、SSLの証明書のインストールは完了。
私の利用しているサービスの場合は、レンタルサーバの管理画面で、4つのキーをそれぞれ登録するフォームがあり、そこへコピペすれば、SSLが使えるようになる。このステップも、4つをテキストファイルにして、レンタルサーバ会社へメールで送る場合やFTPなどで特定の場所へアップロードして、連絡する場合など、色々。

OPENCARTでSSL設定

OPENCARTの管理画面でSSLを有効にする

OPENCARTの管理画面へログイン。
「システム」タブ→「設定」をクリックして、設定メニュー内の、「サーバー」設定タブ内のメニューから、1つ目の、「SSLを使用する」を「はい」にして、保存。

/admin/config.phpを編集

FTPでアクセスし、
/admin/config.php ファイルをダウンロードしてきて編集する。
8行目、9行目の、

define('HTTPS_SERVER', 'http://○○○com/admin/');
define('HTTPS_IMAGE', 'http://○○○com/image/');

define(‘HTTPS_SERVER’, ‘https://○○○com/admin/’);
define(‘HTTPS_IMAGE’, ‘https://○○○com/image/’);

に変更して、アップロードしなおす。

OPENCARTの管理画面にHTTPS://でアクセス、ログインし直してみて、表示できているか確認。
フロント画面から、買い物してみて、カート画面に移った時に自動的に、HTTPS://のSSL接続になっているか確認。

この時に、SSL証明エラーが出ている場合は、正しく証明書がインストールされていません。
画面が接続エラーで表示できない場合は、サーバがSSL対応に変更されていないということです。

以上です。

『OpenCart』にSSLを導入する、、、前にSSLについてもごもご言っとく。

ネットショップに必要なSSL。クレジットカードとかフォームに入力した個人情報とかを安全に暗号化して送る、あのシステムですね。
SSLについては、前にも書いたことあるけれど、年月も経ってるので、取り敢えず、OPENCARTへの導入方法とちょい説くらい書いときます。

SSLは、基本的には、普通にWEBサービスをやってるサーバであれば、導入できます。
というのは、これは暗号化技術なので、例えウチのヘボサーバであっても、SSLの設定をすれば、暗号化された情報の送受信が可能だからです。

で、巷で、SSL、SSL買わなきゃ、とワイワイ言うのは、要は、「SSLの証明書」を買うということ。
簡単に言うと、自分のサイトで、SSL暗号化技術が使用されており安心ですよ、ということを、第三機関から、証明してもらう、ということなんですね。

で、どういう事をするかというと。

自分のWEBサイトを公開しているサーバ内に、SSL技術を設定して、(証明機関への)リクエストキーを発行する

リクエスト機関では、SSL暗号化が出来ているかをチェックして、承認キーを発行してくれる

承認を受けたキーを自分のサーバに証明書として入れて、○○機関からチェックと承認を受けましたよ、という証明のマークなどをもらう

こんな感じ。

で、有名なベリサインとか高価なSSL証明は、サーバにSSL技術が導入されているかだけじゃなく、そのWEBサイトを運営している会社や個人が実在している信頼できるところかとか、そういう事まで含めてチェックして証明書を出していたり、SSLの中でも高度な暗号化セキュリティにまで対応してたり、はたまた、もし暗号化されているはずの情報がどこかのハッカーなんかによって漏れてしまった時に、その顧客と会社の損失を保険として保証してくれる金額が大きかったり、というようなところで、サービスや金額に差があるわけです。

ざっくり言うと、SSL自体はどこも基本技術は同じで、それに付いてくる付加サービスや承認の手間などで、証明書を発行する価格が違う、ということですね。

なので、プロとしては、信頼度や色んなリスクのことを考えて、お客様にご提案させていただくのは、まずは、ベリサインです、はい。ブランドですから。業界スタンダードですから。他とはやっぱり違います。

えー、じゃあ、安いのでいいじゃん!

とか、思った、アナタ。。。

正しい!(ある意味)

ただし、ちょっと面倒な話だけど、SSLの証明は、一般ユーザ(つまり買い物してくれるお客さん)のパソコンのブラウザに、今度は、その証明を発行する機関をチェックするキーファイルが予めインストールされていて、そのキーと照合して、ちゃんとしたところが証明したSSLの証明書かどうかチェックする仕様になっています。
だって、怪しい機関が勝手に証明したって意味ないですからね。
SSL証明そのももは、自分で発行することもできますからね。(いわゆるオレオレ証明っていうやつです;)

そこで、ベリサインやブランドのある証明機関であれば、SSL証明のチェックキーが、多くの種類のブラウザや携帯電話端末などにプリインストールされているけど、有名でないところや小さい安いところは、対応される端末やソフトが少なくて、WEBページを開いたときに、安全性の証明のないページです!みたいな警告がでて、あっさり接続表示できなかったり、してしまいます。
見たことありますよね?そういうセキュリティの警告画面。あれ、ビビリますよね???

なんで、節約はいいですが、ケチケチせずに、対応範囲の広い証明を持っているSSL証明書を選んで購入しましょう~♪

選択のポイントは、
・SSL証明の大元になる「ルート証明」というものが、対応しているソフトや端末が多い
・そのなかでも、特に2~5年前くらいまでの人気機種の携帯や現在の最新機種、スマートフォンなどに対応している
というようなところです。
この辺もベリサインであれば、およそクリアしています。
後セコムなんかも結構対応範囲広いですね。

あとは、予算と、自分が対応させたい範囲(一般的なPCブラウザだけでいいのか、AUは必要かドコモは必要か、ソフトバンクは必要か、どれくらいの機種まで必要かなど)に照らし合わせて、採用するものを選択、これでOKです。

んじゃあ、とりあえず、今回は、独自のSSL証明書を、OPENCARTで作ったショップのドメインに対して導入するので、メジャーな携帯端末とスマートフォンに対応してくれて、比較的リーズナブルで、というようなところで、探して。
購入してインストールしていきます。
会社によって、設定画面とか手順がちょっとずつ違うけど、およそやることは一緒なんで、良かったら、参考にしてくださいね。

じゃあ、次のエントリーで。(あ、後、昔のエントリーにももう少し詳しくSSLについて書いてます)