超・かんたん!
ショッピングカート  


  1.はじめに
このプログラムは、商品ページ(HTML)にタグを埋め込むだけですぐにインターネットショップが開店できるショッピングカートです。
商品データベースは使いませんので、商品名、単価、サイズ、カラー などはすべてタグで書き込みます。
HTML ファイルにリンクやフォームを書くことができればOKです。
顧客情報のセキュリティについて
顧客情報の漏洩はネット上を転送中に悪意の第三者によって盗み見られる場合と、ネットに接続した状態のコンピュータから盗み出される場合とがあります。
転送中のセキュリティはSSL(Secure Sockets Layer)を使えば確保することができます。
しかし、Webサーバーに保存されたデータのセキュリティ確保はなかなか難しいことです。
クラッカー達は「ネットワークに繋がったマシンには必ず侵入できる」といっているほどですから、元々だれにでもアクセスを許可しているWebサーバーはなおさらです。
第三者に見せてはいけない情報はサーバーに置かないことが原則ですが、サーバー上で参照したり、更新する必要がある情報は置かざるを得ません。
したがって、この情報のセキュリティをいかにして確保するかが課題になります。
いろいろな方法が考えられますが、プロバイダのホームページスペースやレンタルサーバーの場合には制約があり、とり得る対処法として現実的なものは見つかりません。
そこで、当社の製品には個人情報を暗号化して保存する方式を採用しています。これにより万一、データが盗み取られても顧客情報の内容は保護されます。
  2.動作環境
● Perl5以上が実装されたWWWサーバー
● メール自動送信を行う場合は、SMTPサーバーが利用できるか、sendmailコマンドが使えることが必要です。
● クライアント側は、MicrosoftInternetExplorer4、NetscapeNavigator4 以上のブラウザが必要です。(Mac版では確認しておりません。)
  3.サーバーの準備
FTPでサーバーに接続して、次のディレクトリを作ります。
ディレクトリ、ファイルのアクセス権はこのプログラムに対してのものです。
programdirプログラムファイルを置くディレクトリです。すでに何かCGIプログラムを使っているなら作らなくても同じディレクトリでけっこうです。
ディレクトリ名としてよく cgi-bin が使われますが、サーバーによってはこのディレクトリ名を使ってはいけない場合や、別にCGIプログラム実行用ディレクトリが予約されている場合もあります。
アクセス権は「読み込み実行」を指定します。

shopdirショップの拠点となるディレクトリです。
たとえば shop というディレクトリー名でアクセス権は「読み書き実行」を指定します。

datadir受注データ、設定データなどのファイルを保存するディレクトリです。
たとえば shop 直下に data というディレクトリー名でアクセス権は「読み書き実行」を指定します。
shopdir と兼用でもかまいません。
  4.変数の定義
cart.cgi ファイルをテキストエディタで開いて変数を定義します。
太字の変数はセットアップ後に変更することはできません。
#!/usr/bin/perl先頭行の #!/・・・ はシステムに対して perl の実行パスを指示するものです。
サーバーの環境に合わせてください。
windowsのIIS、PWSサーバーの場合は必要ありません。

$scriptcart.cgi ファイルのインターネットアドレス(URL)を http(s):// からファイル名までを記述します。
ファイル名は cart.cgi でなくほかの名前に変えてもかまいません。また、サーバーのマッピングによっては拡張子を pl、plx、pl5 などにしないと実行できない場合があります。
このファイルの中で http://www.mydomain/cgi/cart.cgi とあるのは、この変数に定義したアドレスに読み替えてください。

$shopdir
$datadir
3.で作ったディレクトリのシステムパスをそれぞれ定義します。
なるべく絶対パスで記述してください。

$shopurl
$dataurl
上記ディレクトリのインターネットアドレス(URL)を http(s):// からそれぞれ記述します。

$timeoffsetサーバー設定時刻と国際標準時との時差を設定します。
$charcodesjis、jis、euc のいずれか、使用する日本語文字コードを指定します。
sjis 以外を指定するときはこのスクリプト一式をその文字コードに変換する必要があります。
  5.ファイルの格納
FTPでサーバーに接続してファイルを転送します。
FTPソフトの自動判別モードは使わないで、*.gif、*.jpg はバイナリモード、そのほかはすべてテキストモードで転送してください。
UNIX系サーバーではファイル名の大文字小文字が区別されます。転送したファイル名に大文字があったらすべて小文字に変更してください。

cart.cgiprogramdir に格納し、アクセス権は「読み込み実行」を指定します。

cart.pll
orderf.pll
cart.inf
*.pl
cart.cgi と同じところに格納し、アクセス権は「読み込み」を指定します。

*.gif
*.jpg
$shopdir に定義したディレクトリに格納し、アクセス権は「読み込み」を指定します。
ファイル名の先頭が x のファイルは動作確認用サンプルファイルです。要らなくなったら削除してください。

商品ページなどの HTMLファイルは shopdir に限らずどこに格納してもかまいません。
  6.setoup コマンドの実行
サーバーにファイルを格納したらパソコンのブラウザを立ち上げ、オンラインにして setup を実行します。
$script に定義したアドレスに ?c:setup を付けてリクエストします。
たとえば、http://www.mydomain/cgi/cart.cgi?c:setup と入力して Enter を押します。

セットアップが完了すると、注文フォーム(input.frm)、確認ページ(check.frm)、完了ページ(thanks.html) が $datadir に作られていますから、あなたのショップに合わせて編集してください。
input.frm、check.frm は普通のHTMLと同じ(tableのみ)ですが、ホームページ作成ソフトで編集すると余分なタグが書き込まれたり、勝手なところで改行されたりしますから注意してください。
セットアップで「Internal Server Error」になったら、cgiファイルの先頭行の perlの実行パスが正しくないか、ファイルが正しく転送されていないか、ディレクトリ、ファイルのアクセス権(パーミッション)の指定が間違っているかのどれかです。よく確めてファイルの転送からやりなおしてください。
それでも「Internal Server Error」になるときは、
  http://www.mydomain/cgi/cart.cgi?test と入力して Enter を押します。
これもエラーになる場合は、プロバイダ、サーバーの説明をもう一度よく確めてください。
  7.設定
セットアップが完了したらショップ開店のための設定をします。設定をしないとカートに商品を入れることができません。
$script に定義したアドレスに ?c:kanri を付けてリクエストします。
たとえば、ブラウザのアドレスバーに、http://www.mydomain/cgi/cart.cgi?c:kanri と入力して Enter を押します。
このページに入る ID は admin、パスワードは 12345 と仮設定してあります。これでログインしてから、ご自身の ID、パスワードに変更してください。パスワードは暗号化されますから忘れるとシステムの管理ができなくなり、この場合は再セットアップする以外に対処法はありませんからご注意ください。

処理する項目を選択してください。
    受注データ
    基本設定
    注文フォーム項目登録
    送料・代引手数料設定
    メール文設定
    ID・パスワード変更
    ログアウト

    受注データ
    受注データを参照します。
    基本設定
    ・ショップ名(必須)
    ・ショップのメインページ(必須)
    ・管理者のメールアドレス(必須)
    ・管理者に受注報告メールを自動送信するかどうか
    ・注文主に受注確認メールを自動送信するかどうか
    ・SMTPサーバー/sendmailのパス(メールを自動送信する場合に必須です。)
    ・受注データの保存件数
    ・カート表示の横幅サイズ、カラー     などを設定します。
    注文フォーム項目登録
    注文フォームの「項目名」とその「コントロール名(変数名)」を登録します。
    注文フォームと確認ページの「項目名」とその「コントロール名」は同じでなければなりません。そして、これを変更したときは管理ページの「注文フォーム項目登録」で登録し直す必要があります。
    送料・代引手数料設定
    送料・代引手数料の課金条件を設定します。
    このカートでは商品個別、地区別、重量別、などの送料設定はできません。
    メール文設定
    注文主に受注確認メールを自動送信する場合に、そのひな型文を設定します。
    ID・パスワード変更
    管理画面にログインする ID、パスワードを変更します。
    ログアウト
    管理画面から出るときにはここをクリックします。
  8.商品ページ
$shopdir に商品ページのサンプル(index.html、menu.html、catalog1.html、catalog2.html)、詳細ページのサンプル(xx001〜xx005.html) が作られていますから、これらのファイルでカートの動作確認をしてください。そして、このファイルのソースを見てタグの書き方を知ってください。
商品ページに埋め込むタグは「商品名」、「単価」、必要に応じて、サイズ・色・数量の「選択」などの商品に関するタグと、「カートに入れる」、「カートの中を見る」の命令タグです。
タグは次のように、リンクタグ<a>と、フォームタグ<form> で書く方法があります。
「カートに入れる」をクリックしたときに通常は商品ページに戻りますが、コントロール名 "listv"、その値を "1" としてタグを記述するとカート画面を表示します。

カートの中を見る<a href="$script?c:check">カートの中を見る</a>

<form method="POST" action="$script">
<input type="submit" name="c:check" value="カートの中を見る">
</form>

カートに入れる<a href="$script?c:buy&hinmei=品名&size=サイズ&color=色">カートに入れる</a>




<form method="POST" action="$script">
<input type="hidden" name="hinmei" value="品名">
<select name="size">
<option value="">サイズ
<option value="S">S
<option value="M">M
<option value="L">L</option></select>
<select name="color">
<option value="">色
<option value="赤">赤
<option value="緑">緑
<option value="青">青</option></select>
<select name="su">
<option value="">数
<option value="1">1
<option value="2">2
<option value="3">3</option></select>
<input type="submit" name="c:buy" value="カートに入れる">
</form>
  9.ライセンス と サポート

ライセンスについて

このプログラムの使用にはライセンスが必要です。初めて入手したときから10日間は評価のためにご試用いただけますが、この期間を超えて使用する場合はライセンスをご購入ください。
なお、下の「ライセンス契約書」をよくお読みください。ライセンスをお求めの方はこの契約条項に同意いただいたものといたします。
年間ライセンス 1site 1shopにつき 8,000円(税別)です。
複数年ライセンスは 6,000円/年(税別)です。
ライセンスは CGI PRO SHOP でお求めください。

サポートについて
まず、CGI Forum をご覧ください。ヒントになる記事があります。「お知らせ」、「FAQs」もご覧ください。
このプログラムのセットアップに関してお困りのことがありましたら CGI Forum にご質問ください。
ライセンス契約の範囲内において、ご自分でお使いになるものに限りプログラムのコードを変更することは許容しますが、変更についてのご質問には応じかねます。

個別の無料サポートはライセンス購入後1ヵ月間です。お困りのことがありましたら下記にご連絡ください。
ただし、プログラム、テンプレートの改造・作成などのサポートは有料です。
 support@bellcall.co.jp
その後は会員制サポート、スポットサポートをご利用ください。



■ライセンス契約書(これは法的な文書です。)
プログラムは以下の契約条項によってお客様に使用を許諾するものであり、販売されるものではありません。
1.お客様は、1ライセンスにつき、特定の1台のコンピュータにこのプログラムを1つセットアップして使用することができます。
2.お客様は、セットアップのためにこのプログラムのコピーを1部作成することができます。
3.お客様は、前記のセットアップのためのコピーに限りこれに改変を加えることができます。また、そのバックアップコピーを1部作成することができます。
4.お客様は、前2項のほかにこのプログラムの全部または一部の複製物を作成することはできません。
5.お客様は第三者に、対価の有無を問わず、このプログラムおよびその複製物またはこれらに改変を加えたものの占有を移転し、もしくは使用権を譲渡・貸与することはできません。
6.このプログラムおよびこのプログラムの複製物についての権原および著作権は当社が有するものです。また、このプログラムで使用するライブラリについての権原および無体財産権も同様に適用される法令の規定によって保護されています。
お客様は、このプログラムおよびその複製物に添付されている著作権表示を取り除いたり改変することはできません。
7.このプログラムは、何等の保証もない現状のままで提供されるものです。お客様によるこのプログラムの使用についてのリスクはお客様が負うもので当社は責任を負いません。当社は、このプログラムが特定目的に対する適合性、および権利侵害の不存在その他について明示であると黙示であるとを問わず、一切保証をするものではありません。
8.当社は、このプログラムの使用または使用不能から生じる一切の直接的、間接的損害(逸失利益、事業の中断、事業情報の喪失またはその他の金銭的損失を含みますがこれらに限定されません)に関して一切責任を負いません。たとえ当社がこのような損害発生の可能性を知り得た場合でも同様です。
9.ライセンス契約が失効したときは、お客様は直ちに、このプログラムおよびその複製物またはこれらに改変を加えたもののすべてを破棄しなければなりません。
愛知県名古屋市西区名駅2-23-14    
有限会社テレコムコーポレイション    

cgi-conv.pl、smtp.pl 以外のライブラリーは次の方々の著作物です。それぞれの規定にしたがって取り扱ってください。
・jcode.pl・fold.pl は歌代和正さん=ftp://ftp.iij.ad.jp/pub/IIJ/dist/utashiro/perl/
・base64.pl はA.P.Barrettさん=ftp://ftp.funet.fi/pub/languages/perl/CPAN/scripts/mailstuff/
・mimew.pl は生田昇さん=http://www.cc.rim.or.jp/~ikuta/mime_pls/
http://www.bellcall.co.jp/
ver1.00.00 ©2002 Telecom Corporation