ショッピングカート
■機能概略
商品ページから商品情報をPOSTで送信してスクリプトを呼び出す、簡単なショッピングカート・スクリプトです。大体の機能は備えています。詳細は以下の通りです。
(1) 「初期設定」で消費税率の設定が出来ます。 (2) 商品選択時に商品別の削除が出来ます。 (3) [タイプ1・2]発注処理終了後、クッキーを全て削除できる送信ボタンを表示します。[タイプ3・4・5]発注処理終了後、自動的にセッションをリセットします。 (4) 一旦ブラウザを閉じてしまった場合も、クッキーは全て削除されます。 (5) [タイプ1・2]クッキーの特性により、データの保存数は20個までです。
[タイプ3・4・5]セッションIDを使っていますので、データの保存数は無制限です。(6) 発注処理はサーバーのsendmailを呼び出して、メール送信します。sendmailデーモンを有効にしていないサーバーでは当然使えません。 (7) 発注処理時の入力チェックが出来ます。必須項目に記入漏れがあるとエラー表示されます。 (8) 確認画面を表示しますので、注文時に最終チェックができます。 (9) 発注後、注文者に「ご注文確認メール」を自動配信できます。この機能は、使用の可否が選択できます。 (10) [タイプ2・3・4・5]では、商品を注文した際に、その商品の在庫数が自動修正されます。 (11) [タイプ2・3・4・5]では、商品を削除した際に、登録した商品画像ファイルも同時に削除できます。 (12) [タイプ2・3・4]では、一つの商品につき、その画像を2枚登録できます。[タイプ5]では、一つの商品につき、その画像を8枚登録できます。 (14) [タイプ3]では、送料課金の可否、送料サービスの基準金額設定、都道府県別送料設定ができます。更に[タイプ4・5]では定形外重量別送料設定も選択可能です。 (15) [タイプ3・4・5]では、商品の発送先が注文者と異なる場合に対応しています。「のし」の要不要も選択できます。 (16) [タイプ3・4・5]では、商品陳列ページとショッピング・カートとの共通項目を、conf.phpファイルで統一設定できるようにしています。商品数に制限がない場合を考えて、商品の在庫数管理の有無を設定できるようにしています。 (17) [タイプ2・3・4・5]商品陳列ページにおいて、管理画面にて商品の並び替え(先頭へ移動)ができます。 (18) [タイプ1・2・3]では、同一商品を買物カゴに入れた場合、注文数は上書修正されます。
[タイプ4・5]では、注文数の増減がカート内で出来ます。(19) [タイプ4・5]には、受注メールの管理機能が付いています。 (20) [タイプ4・5]は、管理画面への移動にBASIC認証を使っています。 (21) [タイプ5]は商品陳列ページが、画像一覧から商品詳細ページに移動する方式に変更しています。 ■設置方法・ファイル構成
[タイプ1]ファイル構成は、スクリプト本体と商品陳列ページ、タイトル画像、トップバック画像の4つです。商品陳列ページからPHPスクリプトを呼び出しますので、設置場所は自由です。注文のフォームタグについては、「サンプルショッピングページ」のHTML内容を参考にして下さい。
ファイル名
属性
説明
komoshop.php 644 スクリプト本体 sampleshop.htm 644 サンプルショッピングページ title.gif 644 タイトル画像 top_back.gif 644 トップバック画像 [タイプ2]ファイル構成は、スクリプト本体と商品陳列ページ、商品データ保存用ファイル、ショップタイトル画像、カートタイトル画像、トップバック画像の6つです。同じ場所に置いて下さい。尚、商品画像保存用のimgフォルダはFTPで別途作成し、その属性を「7*7」に変更して下さい。
ファイル名
属性
説明
komoshop.php 644 スクリプト本体 goods.php 644 商品陳列ページ goods.dat 6*6 商品データ保存用ファイル title.gif 644 ショップタイトル画像 shop_title.gif 644 カートタイトル画像 top_back.gif 644 トップバック画像 [タイプ3]ファイル構成は、スクリプト本体と商品陳列ページ、共通設定保存用ファイル、商品データ保存用ファイル、ショップタイトル画像、カートタイトル画像、トップバック画像の7つです。同じ場所に置いて下さい。尚、商品画像保存用のimgフォルダはFTPで別途作成し、その属性を「7*7」に変更して下さい。
ファイル名
属性
説明
komoshop.php 644 スクリプト本体 goods.php 644 商品陳列ページ conf.php 644 共通設定保存用ファイル goods.dat 6*6 商品データ保存用ファイル title.gif 644 ショップタイトル画像 shop_title.gif 644 カートタイトル画像 top_back.gif 644 トップバック画像 [タイプ4・5]ファイル構成は、スクリプト本体と商品陳列ページ、商品管理ページ、共通設定保存用ファイル、商品データ保存用ファイル、受注メールデータ保存用ファイル、BASIC認証用データ保存用ファイル、ショップタイトル画像、カートタイトル画像、トップバック画像の10です。同じ場所に置いて下さい。尚、商品画像保存用のimgフォルダはFTPで別途作成し、その属性を「7*7」に変更して下さい。
ファイル名
属性
説明
komoshop.php 644 スクリプト本体 goods.php 644 商品陳列ページ kanri.php 644 商品及び受注メール管理ページ conf.php 644 共通設定保存用ファイル goods.dat 6*6 商品データ保存用ファイル order.dat 6*6 受注メールデータ保存用ファイル d_file.dat 644 ユーザー名・パスワード記録ファイル title.gif 644 ショップタイトル画像 shop_title.gif 644 カートタイトル画像 top_back.gif 644 トップバック画像 ■注意点
[タイプ1・2]はクッキー機能を使っているので、記憶できる注文数に20と言う限度があります。いくら商品を追加しても、20を超えると古い順に消去されますのでご注意下さい。
[タイプ3・4・5]はセッションIDを使っていますので、上のような制限はありません。[タイプ4・5]はフリーゆえの機能限定を解除した高機能版?です。処理内容が割と複雑ですので、改造の際はご注意下さい。
■修正履歴
2011/02/07 [タイプ4・5]のkomoshop.phpファイルに、一部不具合がありました。改造の際、間違って注文ログの書き込み処理部分を削除してしまっていました。元に戻しましたので、又ご利用下さい。申し訳ございませんでした。 2011/01/13 従来の[タイプ4]を削除し、スクリプトを少し整理しました。また、新しい[タイプ4・5]カートを、注文数の増減がカート内で出来るものに統一しました。 2011/01/12 従来の[タイプ5]を削除し、スクリプトを少し整理しました。また、[タイプ4]をBASIC認証に改造しました。 2011/01/10 [タイプ6]の商品陳列ページを、画像一覧から商品詳細ページに移動する方式に改造した[タイプ7]を新たに追加しました 2011/01/09 [タイプ5]の管理画面移行をBASIC認証に改造した[タイプ6]を新たに追加しました。 2006/10/26 「商用PHPスクリプト販売コーナー」のショッピングカート・スクリプトをデータベース連携版にアップグレードした為、従来のスクリプトを[タイプ5]としてこちらのコーナーに新たに加えました。どうぞご利用下さい。 2006/06/18 [タイプ2][タイプ3][タイプ4]のショッピングカートにおいて、商品注文時の在庫数調整処理部分に不具合があった為、これを修正しました。発注メールの送信が成功した場合にのみ、商品の在庫数を修正するよう変更しました。 2006/06/10 [タイプ2][タイプ3][タイプ4]のショッピングカートを、管理画面において続けて商品の登録・修正が出来るよう改造しました。初期画面に戻るには新たに追加した「ログアウト」ボタンを押して下さい。 2006/02/26 goods.phpの画像のアップロード処理部分を、画像のアップロード処理関数を使い、より簡潔なものに修正しました。 2006/01/11 [タイプ3]において、送料を計算後表示する際に、頭に「\」記号があるにも関わらず金額の後に「円」が付いていたバグを修正しました。 2006/01/10 従来の[タイプ3]を廃止し、旧タイプ4を[タイプ3]、旧タイプ5を[タイプ4]としました。少し整理しました。又、スーパーグローバル変数対策部分にコードミスがあり、画像が1枚しかアップできないでいました。修正しましたので、又ご利用下さい。 2006/01/09 [タイプ5]のショッピングカートにおいて、「ゆうパック」の都道府県別送料判定と「定形外郵便」の重量別送料判定とを初期設定で選択できるようにしました。 2006/01/08 [タイプ5]のショッピングカートにおいて、以前の重量別の料金設定を削除しました。新しい「ゆうパック」方式を基本にプログラムし直しました。ただ今回はサイズ別の料金設定を見送っています。ご了承下さい。又、代引き手数料の設定も初期設定部分のみで処理が出来るように改造しました。 2006/01/01 [タイプ1][タイプ2][タイプ3][タイプ4]のショッピングカートにおいて、同一商品を買物カゴに入れた場合に、その注文数を上書き修正するように改造しました。今までのように一旦注文商品を削除する手間を省きました。 2005/10/31 [全タイプ]サーバのアップグレードに伴い、メール送信のデーモンが従来のsendmailからpostfixに変更になった為、注文メールに文字化けが発生してしまいました。対策の為、新たに言語指定と内部エンコーディング指定の関数を埋め込んでいます。 2005/09/22 [全タイプ]商品陳列ページの管理画面において、任意の商品を先頭に移動できるよう機能追加しました。 2005/08/10 [タイプ1]以外のショッピングカートの商品管理スクリプトgoods.phpに、商品の在庫数の登録の際、数量制限を盛り込みました。サンプル版にとんでもない大きな在庫数を登録する人がおり、限りなきループ処理の結果、ページがなかなか表示し切れない現象がしばしば起きているからです。ご理解下さい。実際にお使いになる場合は、この部分をコメントアウトして(無効にして)下さって結構です。 2005/07/24 [タイプ5]のショッピングカート「PHP4.2.0以降対応版」において、メール送信の際に商品の別途送付先の値が受け渡しできていなかったバグを修正しました。 2005/05/30 [タイプ5]のショッピングカート「PHP4.2.0以降対応版」において、選んだ商品カテゴリの情報が「次のページ」ボタン等で送られていなかったバグを修正しました。 2005/03/20 [タイプ4]のショッピングカートにおいて、商品の発送先が注文者と異なる場合の処理を盛り込みました。 2005/03/17 [タイプ5]のショッピングカート「PHP4.2.0以降対応版」において、商品データを削除した際に、ログに改行マークが残ってしまうバグを修正しました。 2005/03/15 全てのショッピングカートにおいて、消費税の表示を内税表示に切り替えました。 2005/03/06 [タイプ1]のサンプル・ショッピング掲載の商品内容が古くなっていたので、適当なものに入れ替えました。 2004/12/11 [タイプ5]のショッピングカートにおいて、在庫管理をしない場合にカート内で商品の注文数を増やす事が出来ないバグを修正しました。 2004/11/19 [タイプ5]のショッピングカートにおいて、コード中の変数のVALUEの値にミスがありましたので、これを修正しました。 2004/07/05 [タイプ2][タイプ3][タイプ4]のショッピングカートにおいて、注文メールを送る際に、商品の在庫数の最終チェックができるよう、コードを追加しました。これは[タイプ5]で追加された機能です。 2004/07/04 [タイプ2][タイプ3][タイプ4]商品陳列ページにおいて、商品一覧表示部分の表組みを変更致しました。従来版では画像が2つ並んだ時に、画像と画像の間隔がつまったりあいたりしていた為です。 2004/06/26 送料についても自動計算が出来る[タイプ4]を追加しました。尚、これは[タイプ3]の改造版ですので、注文商品の記憶にはセッションIDを使っています。 2004/06/20 [タイプ2][タイプ3]商品陳列ページにおいて、商品画像を2枚まで登録できるよう修正しました。又、画像の登録方法も今までの上書き方式ではなく、既に画像が登録されている場合は、一旦それを削除してから新たな画像を登録する方式に改めました。 2004/05/17 [タイプ2][タイプ3]商品陳列ページで記事修正の際に、商品画像も更新可能なよう修正しました。又、管理画面に移る際に、パスワードが一致しなくても管理用窓口が消えてしまう不具合を修正しました。 2004/05/16 [全タイプ]同じ商品を重複して注文できないよう、コードを追加・修正しました。 2004/02/10 新たにセッションIDを使った[タイプ3]を追加しました。クッキー使用時のような注文数の制限がありません。商品数が多いサイト運営に、どうぞご利用下さい。 2004/01/25 [タイプ1][タイプ2]発注処理時の必須項目に空白対策を施しました。 2003/09/26 [タイプ1]一旦注文商品が買物カゴに入ってしまっていると、注文数が0の商品を買物カゴに入れようとした際、何も警告が出ないバグを修正しました。
[タイプ2]在庫切れの商品で、注文数が0にも関わらず買物カゴに商品が入ってしまっていたバグを修正しました。2003/09/24 [タイプ1][タイプ2]発注処理後、注文者に「ご注文確認メール」を自動返信する際、書き込まれたメールアドレスが有効なものかどうか判断してから処理を行うように修正しました。 2003/09/14 [タイプ1][タイプ2]発注処理後、注文者に「ご注文確認メール」が自動返信されるよう、スクリプトを修正しました。尚、この自動返信機能は「初期設定」部分で使用するかどうか選択できます。 2003/08/31 [タイプ1][タイプ2]発注メール送信用関数を、従来のmail関数からmb_send_mail関数に変更しました。これでsubjectに日本語を使用しても文字化けしません。 2003/07/21 [タイプ2]商品陳列ページにおいて、商品を削除した際に、登録した商品画像ファイルも同時に削除できるよう修正しました。又、登録商品の記事番号を、アクセスした時の秒数から取得するようコードを修正しました。 2003/05/25 [タイプ2]商品陳列ページにおいて、商品画像表示欄の幅を商品画像の横サイズに固定化しました。これで少しは見やすくなったかも?ついでに商品画像がない場合や、商品説明がない場合も、表組みがすっきりするよう修正しました。更に在庫数表示部分もちょっと修正(^^ゞ 2003/04/06 [タイプ2]商品を注文した際に、商品の在庫数も自動的に減るようにコードを修正しました。又、注文数が「0」の場合はクッキーを受け付けないようにも修正しました。 2003/03/30 [タイプ2]商品陳列ページにおいて、商品画像の表示サイズの調整機能を付けました。又、設定したサイズより大きい場合は、元の画像が見られるようリンクを貼るようにしました。 2003/03/23 [タイプ1・2]ショッピング・カートで商品を登録したり削除したりした時の動きに無駄がありましたので、「exit;」処理を追加して動きをスムーズにしました。 2003/03/13 [タイプ1・2]ショッピング・カートのスクリプト内容を大幅に修正致しました。処理の流れがスムーズに行くよう、条件分岐を修正しています。又、注文時の確認ページ表示を追加致しました。どうぞご活用下さい。 2003/02/01 [タイプ2]商品陳列ページにおいて、注文数の選択を在庫数までの数量に自動設定できるドロップダウンリストに改造しました。又、ショッピングカート本体の方の金額表示部分も、分かりやすいように金額の頭に「\」マークを付けました。 2003/01/26 [タイプ2]商品陳列ページにおいて、商品価格の表示の際に金額が三桁区切りになるよう、number_format( )関数で変数処理をしました。 2003/01/21 [タイプ2]商品画像をブラウザから直接アップできるよう改造致しました。「画像掲示板」のちょっとした応用ですけど・・・。 2003/01/20 [タイプ1・2]PHP4にアップしてから、従来のコード内容ではクッキーの削除に失敗するようになりました。つきましては、クッキー削除の際、時間を過去に指定してクッキーを書き込むようコード内容を修正しております。 2002/07/21 [タイプ1・2]価格表示を見やすいように、number_format()関数を使って三桁区切りにしました。 2002/07/13 [タイプ1・2]商品の変数名と注文者の変数名が同じ「$name」だった為、注文メールの「お名前」の値が受け取れていなかったバグを修正致しました。 2002/02/28 [タイプ2]商品ページ(トップ)をソース表示すると、フォームタグ内にパスワードの値が丸見えになっていましたので、これを修正しました。 2001/10/22 [タイプ2]商品ページからフォームデータで送る文字列データが、既にEUCに変換されたものである為、ショッピングカート側で表示する商品名に文字化けを起こす事が判明しました。その対策として、komoshop.php3でのクッキー書き込み処理時に、商品名をSJISに変換する処理を施しました。