JavaScriptショッピングカート

minicart.zip(zip形式・無料・ダウンロード)

設定・設置方法について
2007.09.17
OfficeGLOS
http://officeglos.com


1:著作権・著作権の表示について

どの様なサイトでも利用していただけますが、著作権は放棄しておりません。
当方提携先が利用する場合を除き、サイト上のどこかに

http://officeglos.com

宛のリンクを貼っておいて下さい。

例)
<a href="http://officeglos.com" target="_blank" title="格安ホームページ作成代行・ホームページ用プログラム">
Powered by OfficeGLOS
</a>

<a href="http://officeglos.com" target="_blank" title="格安ホームページ作成代行・ホームページ用プログラム">
<font size="1">格安ホームページ作成代行</font>
</a>

2:責任範囲について

バグやご要望には随時対応しますが、フリーソフトの為改良完成の時期については確約出来かねます。
販売した商品・サービスによっておきた不利益・紛争は、利用者の責任下において処理してください。
当方は一切責任を負いません。
動作はWindows版IE6、FireFox2、マック版Safari2、FireFox2で確認しています。
改造は自由に行ってください。あまり難しいことはしていない、上から実行の簡単なプログラムです。

3:設置

3−1:ファイル構成

サンプルのファイル構成は以下の様になります。

cart.html : かごの中身ファイル(名称任意)
accurate.html : 通常メール版レジに進むの例(名称任意)
プログラムが動作しないサーバーで、当方サーバーのメールプログラムを利用しない場合に使用します。
sendmail.html : PHP版メールフォームプログラムにおける入力画面(名称任意)
thanks.html : PHP版メールフォームプログラムにおける送信完了画面(名称任意)
index.html : 一覧表示画面のサンプル(名称任意)
item1〜3.html : 商品詳細画面のサンプル(名称・数量は任意・データーファイルに設定すること)
minicart.js : カートプログラム本体。動作設定の必要があります。
送信完了画面以外で読み込んでください。
thanks.js : PHP版メールフォームでメール送信後に、かごの中身を消すプログラム。
送信完了画面において、minicart.jsを読み込む代わりにこれを読み込むように設定してください。
items.html : データーファイル。
minicart.jsの冒頭に設定項目があります。
フォルダcart_thumb以下 : 一覧表示用画像ファイルが入っています。
sendmail.php : PHP版メール送信プログラム本体。設定項目はありません。

各ファイルは下記設定や作成が完了後、FTPソフトにてアップロードしてください。
サーバー上にデーターの保存は行いませんので、パーミッションの設定は必要ありません。
貴方のサイトの文字エンコードがShift_Jisでない場合は、データーファイルとsendmail.phpを除くすべてのファイルのエンコードを貴方のサイトの文字エンコードと同じものにそろえてください。(jsファイルを含む。プログラム内部で全角日本語が使用されています)

3−2:データーファイルの構成

items.htmlがデモ用のデーターファイルです。
形式は、半角カンマ または 全角スペース または 半角スペース または タブで区切られた、UTF−8で保存されたテキストデーターです。
必ずUTF−8で保存してください。(それ以外では全角文字が文字化けします)
なお、マッキントッシュのSafari2の場合、BOM付きUTF−8で保存しないと文字化けします。

BOM付きUTF−8で保存可能なエディタの例:サクラエディタ

データーの並び順は、

タイトル、価格、詳細ページのURL、一覧表示や籠の中身表示用のサムネイルファイル

となります。

同封のサンプルファイルの中身)

アイテム1,1000,item1.html,cart_thumb/image1.jpg
アイテム2,1500,item2.html,cart_thumb/image2.jpg
アイテム3,2000,item3.html,cart_thumb/image3.jpg

3−3:共通項

3−3−1:かごの中身へのリンク

<form action="cart.html">
<input type="submit" value="かごの中身を見る" />
</form>

の様に、htmlファイルを呼び出してください。
お好みでファイル名を変えていただいてもかまいません。

3−3−2:レジに進むへのリンク

サンプルにある、

<form action="accurate.html" onsubmit="return checkCartItems();">
<input type="submit" value="レジに進む" />
</form>
<form action="sendmail.html" onsubmit="return checkCartItems();">
<input type="submit" value="レジに進む・フォーム版" />
</form>

の様に、HTMLを呼び出すと同時に、onsubmit="return checkCartItems();"を付け加えます。
この関数はかごの中身にものが入っているかをチェックするもので、無くても動作はしますが何も注文内容がないメールが送信されることになります。
画像ボタンを使うなら、<input type="image" src="画像ファイル名" alt="レジに進む" onsubmit="return checkCartItems();" />などを使用します。
ファイル名はお好みで変えてください。

サンプルのaccurate.htmlはPHPメール送信プログラムを使わず、メーラーを起動する場合の例です。IE6+Outlook Express、FireFox2+Outlook Expressで正常動作を確認していますが、マッキントッシュでは正常動作しません。また、Outlook Express以外のメーラーでの動作は確認しておりません。

sendmail.htmlは、PHP版メール送信プログラムを使用する場合の入力画面です。
フォーム内に設定が必要な項目があります。

3−3−3:詳細を見るへのリンク

自動的に生成する場合を除き、作成した詳細画面のHTMLに普通にリンクして下さい。

3−3−4:かごに入れるボタン

<select id="num{id}">
<option value="1">1</option>
<option value="2">2</option>
   ・
   ・
   ・
</select>個
<input type="button" value="かごに入れる" onclick="addItem('{id}');" />

<select id="num3">
<option value="1">1</option>
<option value="2">2</option>
   ・
   ・
   ・
</select>個
<input type="button" value="かごに入れる" onclick="addItem(3);" />
等と、addItem(番号)を呼び出します。num番号は数量の選択肢ですが、通常のテキスト入力でもかまいません。num番号が存在しない場合は1個がかごに入ります。

3−4:一覧表示画面

同封サンプルファイルの「index.html」が一覧表示画面のサンプルです。
ソース内にある、<div id="ichiran"></div>の中身がアイテムの数だけ繰り返され、下の一覧の様な規則でデーターファイル設定の値が挿入されます。

{title} 商品名
{price} 金額表示フォーマットされた価格(1,500等)
{url} 詳細画面へのURL(サンプルでは非使用)
{id} 内部処理用の商品番号(データーファイルでの並び順。先頭は1

一覧表示用の画像は、<img src="" id="image{id}" alt="{title}" />等としておいて下さい。

詳細を見るへのリンクは、<input type="button" value="詳細を見る" onclick="getURL('{id}');" />等としておいてください。
<a hred="{url}">詳細を見る</a>はIE6では動作しますが、FireFoxでは動作しません。

3−5:詳細画面

サンプルの様にはめ込みも出来ます。

例)商品番号が2の場合(データーファイル上の位置が上から2行目の場合)
{title2} 商品名
{price2} 金額表示フォーマットされた価格(1,500等)
{url2} 詳細画面へのURL(サンプルでは非使用)
{id} 内部処理用の商品番号(データーファイルでの並び順。先頭は1

一覧用画像を使用する場合は、<img src="" id="image{id}" alt="{title}" />等としておいて下さい。(item1.html
ただし、下記の様に、一覧やかごの中身を同時表示する場合はidが重なる為自動挿入は出来ません。通常の画像貼り付けで使用してください。

たとえば商品詳細の下に、一覧も追加する場合は、3−4の一覧表示と同じように、<div id="ichiran"></div>で囲まれた部分を作っておきます。(item2.html)
かごの中身を追加する場合は3−6の様に<div id="cart"></div>で囲まれた部分を作っておきます。(item3.html)

3−6:かごの中身

同封サンプルファイルの「cart.html」がかごの中身画面のサンプルです。
ソース内にある、<div id="cart"></div>の中身がアイテムの数だけ繰り返され、下の一覧の様な規則でデーターファイル設定の値が挿入されます。

{title} 商品名
{price} 金額表示フォーマットされた価格(1,500等)
{url} 詳細画面へのURL(サンプルでは非使用)
{id} 内部処理用の商品番号(データーファイルでの並び順。先頭は1
{num} かごに入っている数量

一覧表示用の画像は、<img src="" id="image{id}" alt="{title}" />等としておいて下さい。

詳細を見るへのリンクは、<input type="button" value="詳細を見る" onclick="getURL('{id}');" />等としておいてください。
<a hred="{url}">詳細を見る</a>はIE6では動作しますが、FireFoxでは動作しません。

数量変更ボタンは、

<select id="num{id}">
<option value="1">1</option>
<option value="2">2</option>
   ・
   ・
   ・
</select>個
<input type="button" value="数量変更" onclick="modItem('{id}');" />

等としておいてください。

削除ボタンは2種類があります。

(このアイテムを削除)
<input type="button" value="削除する" onclick="delItem('{id}');" />

(全削除)
<input type="button" value="すべてを削除する" onclick="delAllItem();" />

3−7:メールソフトによるメール送信

accurate.htmlがサンプルです。

<form action="mailto:glos@officeglos.com">
<input type="hidden" name="subject" id="subject" value="商品注文" />
<input type="hidden" name="body" id="dody" value="{message}" />
<input type="submit" value="注文を送信する" />
</form>

の様に、nameがsubjectである入力欄とnameがbodyである入力欄を用意し、前者にはメールのタイトル、後者には{message}を値として入れてメールアドレスをactionに設定しておきます。
対応できているメーラーであれば、タイトル、本分に情報が挿入された状態でメール作成画面が起動しますが、対応していないメールソフトでは文字化けします。

3−8:PHPプログラムによるメール送信

sendmail.htmlがサンプルです。
サーバーでPHPが動作する場合か、OfficeGLOSの2サーバーのうちいずれかを使用してメールをフォーム送信する場合に使用します。

このファイル内に設定項目があり、また、minicart.jsの中にも設定項目があります。
minicart.js内部の設定は3−9で説明します。

このファイル内における設定項目

formタグ
action : 貴方のサーバーでPHPが動作し、sendmail.phpをアップロードした場合は、貴方のサーバー上でのsendmail.phpの所在。
当方サーバーにデーターを転送し、送信を代行する場合は、以下のうちのいずれか
1:http://officeglos.com/minicart/sendmail.php
2:http://rentalcart.net/minicart/sendmail.php
method : postで固定。getまたは未指定では送信に失敗します。
id : 任意のもの。未指定の場合動作しません。
onsubmit : checkMailData(this.id);で固定。
メールデーターの入力チェックを呼び出す命令です。
隠し属性群 :
encode : 貴方のホームページの文字コード。
存在しない場合動作しません。
Shift_JIS、EUC-JP、UTF-8、ISO-2022-JPが指定できます。
itemdata : {message}で固定。
存在しない場合お買い上げ商品の一覧が送信されません。
from : 貴方がメールを受け取るメールアドレス
mailTitle : 送信されるメールのタイトル
reload : 送信完了画面へのhttp://から始まる完全なアドレス。
titles[] : 複数を指定します。メールフォームで記入されたデーターの、メール上での項目名。フォーマットはvalue属性内に、
フォーム上のname属性の値:メール上の項目名
例)
name:お名前
記入欄をサンプルより増やしたり、name属性の値を変更した場合は、必ずtitles[]の隠し属性も追加してください。
header : メールのヘッダー。改行が一部ブラウザの仕様で表記どおりになりません。
送信テストして確認してください。
強制的に改行を入れる場合は{CRLF}と記入してください。
footer : メールのフッター。
強制的に改行を入れる場合は{CRLF}と記入してください。
messageBody : 送信情報がこのフォーマットで繰り返し、ヘッダーとフッターの間に挿入されます。
titles[]で指定した項目名が{dataTitle}と、送信されたデーターが{dataValue}と置換されます。

3−9:minicart.jsの設定

カートプログラム本体です。
プログラム冒頭に動作設定項目があります。

3−9−1:dataFileName='ファイル名';

データーファイル名を指定します。サンプルではitems.html。

3−9−2:noimage="ファイル名";

一覧やかごの中身用の画像が存在しない場合に、代わりに表示する画像ファイルの名前。
サンプルではspacer.gif(1ピクセルの透明なGIF)

3−9−3:入力チェックの指定類

7種類の入力チェック方法があります。
すべての方法で、

checkRequire[0]="name:お名前";
checkRequire[1]="ken:都道府県";
checkRequire[2]="address:住所";
   ・
   ・
   ・
checkAlphabet[0]="name:お名前";
checkAlphabet[1]="ken:都道府県";
checkAlphabet[2]="address:住所";
   ・
   ・
   ・

と、0から始まる番号をつけながら、フォームのname属性:エラー表示時の項目名として設定してください。設定しない入力はチェックされません。

checkRequire : 必須入力項目を指定します。
checkEmail : メールアドレスとして正しい表記かをチェックすべき項目を指定します。
checkZipcode : ***-****となっているかをチェックすべき項目を指定します。
checkWebsite : http://***またはftp://***となっているかをチェックすべき項目を指定します。
checkTell : **-**-****となっているかをチェックすべき項目を指定します。
checkInteger : 整数であるかをチェックすべき項目を指定します。
checkAlphabet : 単語構成文字(アルファベット、アンダーバー)であるかをチェックすべき項目を指定します。

Powered by OfficeGLOS