このページでは・・・

商品ページの設定方法を説明します。
当然ながらHTMLの知識がないと分からないと思うので、少しは勉強を・・・。

商品ページの設定とは?

このスクリプトは、商品の管理は在庫以外の管理を行わず、利用者自身で作ったHTMLにForm要素をつけるだけで動作するのが最大の特徴です。

つまり、発想しだいで、かなり自由に商品ページを作ることができるわけです。

たとえば、見積もりの必要なオーダーメイド商品などを扱うショップでは、
データベースで管理された汎用カートシステムでは販売が難しいですが、
このスクリプトを使えば、JavaScriptやPHP、Perl/CGIで動的に計算された商品データも簡単にカートへ渡すことができます。

このページのサンプルはXHTMLにて記述します。
HTMLを使う場合は必要に応じて読み替えてください。

仮定条件

以下の説明はこのスクリプトのメインファイルのURLが「http://www.hoge.com/cart/ex/cart.php」であると仮定します。必要に応じて読み替えてください。

まずは<form>タグ

まずはこれがなくては話になりません。

<form action="http://www.hoge.com/cart/ex/cart.php" method="post" name="form" id="form">
</from>

<form>と</form>の間に下記の要素を書いていくことになります。

商品ページ文字コード

商品ページの文字コードを指定します。
<input name="strcode" type="hidden" id="strcode" value="0" />

value=""の値を変更します。
0 => Shift-JIS
1 => EUC-JP
2 => UTF-8
です。ただし、「config/config.php」の「■商品ページの文字コードリスト」を変更している場合は、この順番が変わっている場合があります。

発送方法の指定

「config/config.php」の「■配送方法および配送会社の選択の可否」を「true」に設定し、なおかつ「■配送方法・配送会社の指定を商品側で操作できるようにするか?」を「1」か「2」に設定しているとき、商品の発送可能な方法/業者を指定します。

「config/config.php」の「■配送方法および配送会社の指定」で「宅配便」と「メール便」を設定していると仮定します。

□宅配便のみ選択可能にする場合
<input name="delivepattern" type="hidden" id="delivepattern" value="宅配便" />

※ただし、「■配送方法・配送会社の指定を商品側で操作できるようにするか?」の設定を2にしている場合、購入商品の中にメール便可能商品があれば、メール便での発送も出来る設定になってしまうので注意してください。

□宅配便/メール便選択可能にする場合
<input name="delivepattern" type="hidden" id="delivepattern" value="宅配便::メール便" />
と設定します。3つ以上の場合も「::」で区切ることで指定可能です。

「config/config.php」の「■配送方法および配送会社の選択の可否」を「false」にしている場合、
「config/config.php」の「■配送方法・配送会社の指定を商品側で操作できるようにするか?」を「0」に設定している場合も要素は必須ですので、
<input name="delivepattern" type="hidden" id="delivepattern" value="宅配便" />
とダミーの要素を必ず入れてください。

送料込みの指定

この商品が送料込みかそうでないかを指定します。

□送料別の商品
<input name="skomi" type="hidden" id="skomi" value="0" />

□送料込みの商品
<input name="skomi" type="hidden" id="skomi" value="1" />

最終的な送料計算は「config/config.php」の「■送料込みの処理」の設定により変わりますので注意してください。

在庫管理するか。

在庫管理対象商品かどうかを設定します。

□在庫管理対象商品の場合
<input name="zaiko" type="hidden" id="zaiko" value="on" />
在庫管理対象商品にすると、在庫ファイル格納ディレクトリに在庫ファイルがないとPHPエラーが発生します。必ず、在庫ファイルを設定してから在庫管理対象商品としてください。

□在庫管理対象商品ではない場合
<input name="zaiko" type="hidden" id="zaiko" value="off" />
とします。

商品番号

<input type="hidden" name="itemid" value="0001" />

valueの部分に商品番号を設定します。
半角英数と「-」「_」が使えます。
日本語はダメです。

商品名

<input name="itemname" type="hidden" id="itemname" value="WindawsXP" />

valueの部分に商品名を設定します。
日本語もOKです。長すぎないようにしましょう。

商品価格

<input name="price" type="hidden" id="price" value="10000" />

valueに商品価格を設定します。
半角数字のみです。

見積もり商品やオーダーメイド商品はこの値を動的に生成させればいいのです。

オプション

たとえば、「Mサイズ」「Lサイズ」のような選択肢をつけたい場合

<select name="options[]" id="options[]">
<option value="Mサイズ">Mサイズ</option>
<option value="Lサイズ">Lサイズ</option>
</select>

とします。

また、「Sサイズ」「Mサイズ」「Lサイズ」と選択肢をつけたいが、Sサイズは100円引き、Lサイズは100増しとしたい場合は、

<select name="options[]" id="options[]">
<option value="Mサイズ::-100">Mサイズ</option>
<option value="Mサイズ">Mサイズ</option>
<option value="Lサイズ::100">Lサイズ</option>
</select>

とします。valueに「値::-○○」「値::+○○」とすることでオプション価格をつけることが可能です。
カートの中では「オプション価格:○○円」と表示されます。

「option[]」の要素は数に上限がありません。
サイズの選択肢と 色の選択肢 などを複数の選択肢も設定可能です。

また、もちろん他の要素と同じく、「hidden要素」で設定しても問題ありません。

このオプション設定のみは 必要がない場合は 商品ページに記述してはいけません。

カゴへ入れるボタン

<input name="submit1" type="submit" id="submit1" value="カゴへ" />
「カゴへ」の部分は変えてもOKです。

以上です。

以上ですべての要素がそろいました。
いよいよ開店するのみですかね(^-^)

よく分からない人は、
サンプルページのソースコードを参考にしてください。

アイコンをカゴへいれるボタンとして使いたいのだけど。

まず、カゴへ入れるボタンを削除します。

<input name="imageField" type="image" src="画像へのパス" border="0" />

を置きます。これがボタンとして機能します。
さらに
<input name="submit1" type="hidden" id="submit1" value="1" />
という要素を付け加えることで、動作するようになります。

ご注意事項

1.
ここまでで、勘のいい人は気づいていると思いますが、
HTML中に価格情報などを記述しているので、これを操作することで価格情報などは簡単に改変できてしまいます。
このことがこのスクリプトの最大の欠点です。
決定的な欠点であることは開発者も理解していますが、商品価格の動的生成を重視したほうがメリットとして大きいということで、こういった仕様にしています。
(有)キープランでは、同じように商品ページHTMLに価格を書き込む方式のショッピングカートシステムを何年も利用していますが、現在のところ、改変された内容でご注文を受けた事例はございません。
また、商法においては、悪意だと考えられる取引は店舗側から拒否できると明記されています。

2.<form></form>の中に記述できる商品データは1商品のみです。複数商品の情報を設定すると正しく動作しません。