バージョン選択

フォーラム

メニュー

オンライン状況

45 人のユーザが現在オンラインです。 (33 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 45
もっと...

サイト内検索

質問 > フロント機能 > 20才未満への購入制限

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
olive
投稿日時: 2008/9/3 19:46
対応状況: −−−
新米
登録日: 2008/9/3
居住地:
投稿: 7
20才未満への購入制限
初めての投稿となります。
失礼などありましたらご指摘ください。皆さま宜しくお願いします。

私が制作したEC-CUBEサイトにおいて、酒の販売を予定しているのですが、酒類販売時などにおいては、20才未満への購入制限機能が必要になるケースがあります。
そこで、購入時に年齢認証を行い、20才未満でかつ商品カテゴリが「お酒」という条件を満たした場合にアラートを表示させ、購入出来ない様にしたいのですが、どなたかアドバイスを頂ける方はいらっしゃいませんでしょうか?

私が調べた限りでは、顧客情報や会員登録の入力時に生年月日を必須項目にする事は簡単に出来る様なので、この生年月日から現在の年齢を自動判別させて、購入時に20才未満は制限が掛かる機能が欲しいです。

どうか宜しくお願い致します。

EC-CUBE:Version2.1.2
SERVER:ラピッドサイトRV-811
PHP:5.2.6
MySQL :5.0.51a
seasoft
投稿日時: 2008/9/3 20:10
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 20才未満への購入制限
引用:

私が調べた限りでは、顧客情報や会員登録の入力時に生年月日を必須項目にする事は簡単に出来る様なので、

まず、その実装を試みると良いと思います。EC-CUBE のコーディングのクセなどが見通せるようになってくると思います。

設計的には「どこでアラートするか」というのがポイントになりそうです。必須チェックと同じ並びでチェックするなら、比較的容易に実装できそうな気がします。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

olive
投稿日時: 2008/9/4 23:10
対応状況: −−−
新米
登録日: 2008/9/3
居住地:
投稿: 7
Re: 20才未満への購入制限
>>seasoft様

ご意見ありがとうございます。
お返事が遅くなり申し訳ありません。

アドバイスを頂きました
引用:
必須チェックと同じ並びでチェックするなら、比較的容易に実装できそうな気がします。

という点ですが、私が想定している流れとしては、購入時に年齢と商品の判別チェックを行うというものになります。

お客様が生年月日を入力するタイミング(会員登録など)と、実際に制限対象になる商品を購入されるタイミングはバラバラになると思われますし、複数商品を購入される場合に商品Aは問題ないが、お酒はお売りできないというケースも考慮されます。

色々なシーンを踏まえると、カート内の商品を「購入するという行動に移したタイミング」(購入手続きに移った後の処理段階でかつ年齢が判別出来るタイミング)になった時点でのアラート表示を行い、「20才未満の方へ酒類の販売は致しかねますので・・・・・」的なアラート表示を行い、カート画面へ移動させるなどの処理がよろしいかと考えています。
出来れば個人情報入力の2度手間を省くために、ここはセッション維持が出来ればベストでしょうが、この辺の可否の判断は自分には分かりません。

実は本件を含め、業者への外注を検討しているのですが、よく考えてみるとオープンソースである事や素晴らしいフォーラムが開設されているEC-CUBEの魅力を振り返ってみると、「まずは自分でトライしてみるべきでは?」という疑問を抱き、今回投稿させて頂きました。

もし素人にお付き合い頂ける方がいらっしゃいましたら、是非アドバイスの程宜しくお願い致します。

seasoft様、貴重なご意見ありがとうございました。
また何かご指摘などありましたら、宜しくお願いします。
seasoft
投稿日時: 2008/9/4 23:37
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: 20才未満への購入制限
そうですね。そのあたりの仕様をきっちり固めると、自分で組むにしても外注するにしても、スムーズに進むと思います。

「購入するという行動に移したタイミング」となると、お届け先の指定に乗り入れするのが簡単そうな気はします。

[戻る] ボタンなども付いていますし、楽ができそうです。

処理ファイルは
/data/class/pages/shopping/LC_Page_Shopping_Deliv.php
になります。

おそらく、このファイルでは、カート内商品や顧客情報などの情報が不足すると思いますので、そのあたりは周辺の情報を持っているページの処理を参考にすることになると思います。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

hakaselab
投稿日時: 2008/9/5 10:57
対応状況: −−−
半人前
登録日: 2008/9/4
居住地: 広島
投稿: 28
Re: 20才未満への購入制限
はじめまして。高橋@株式会社システムフレンドです。

購入制限について、これとは違いますが、実装させていただいた経験があるので、何かのお役にたてればと思い、ちょっとレスします:D

その時の実装は三ステップで行いました。

1. 禁止顧客対象の項目を必須項目とする
2. 会員ユーザ以外の購入禁止(処理の簡素化のため)
3. カート処理中にて、禁止顧客対象項目に該当するかをチェックし、そうならエラーを表示

3.についての、話がおそらく盛り上がって(?)いるようなので、簡易な実装例をば

最終的には年齢制限にひっかかった場合は、エラー画面が表示され、「戻る」を押すとカートのトップに移行するという流れになります。

まず、他の実装手順とあわせるため、下記のファイルに対して以下の関数を定義します。
実装は相当手抜きです……。

対象 : data/class_extends/util_extends/SC_Utils_Ex.php
関数 :

    function sfCheckBuyPurchaser(&$objSiteSess, &$objCustomer) {
        // 購入制限:年齢制限
        $age = (int)((date('Ymd') - date('Ymd', strtotime($objCustomer->getValue('birth')))) / 10000);
        
        if($age < 20) {
            SC_Utils_Ex::sfDispSiteError(FREE_ERROR_MSG, $objSiteSess, false, "※購入禁止");
        }
    }


次に届け先指定の一部にこの関数を呼び出すコードを追加します。
他の例も参考にすると、 data/class/pages/shopping/ 以下にはすべてチェックするコードを仕込んだほうがいいかもしれません。

対象 : data/class/pages/shopping/LC_Page_Shopping_Deliv.php
対象 :

Index: data/class/pages/shopping/LC_Page_Shopping_Deliv.php
===================================================================
--- data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(revision 17592)
+++ data/class/pages/shopping/LC_Page_Shopping_Deliv.php	(working copy)
@@ -90,7 +90,8 @@
         // ユーザユニークIDの取得と購入状態の正当性をチェック
         $uniqid = SC_Utils_Ex::sfCheckNormalAccess($objSiteSess, $objCartSess);
         $this->tpl_uniqid = $uniqid;
-
+        SC_Utils_Ex::sfCheckBuyPurchaser($objSiteSess, $objCustomer);
+        
         if (!isset($_POST['mode'])) $_POST['mode'] = "";
 
         // ログインチェック


以上で、おそらく最初に述べていたような動きになるのではないかと思います。

今回の実装例はあくまでサンプルですので、実際には商品ごとに年齢制限の項目を追加して、チェックしたり、またその制限にかかったなら、その商品を削除したり。
非会員ユーザも購入可能とするなら、注文一時テーブルの誕生日項目のチェックなども必要なってくるのではないかと思います。

とりいそぎですが、なにかの参考になれば幸いです。では。


----------------
-------------------------------
株式会社システムフレンド
高橋純一

EC-CUBE工房
http://ec-cube.systemfriend.co.jp/
-------------------------------

olive
投稿日時: 2008/9/6 1:08
対応状況: −−−
新米
登録日: 2008/9/3
居住地:
投稿: 7
Re: 20才未満への購入制限
>>seasoft様
>>高橋様

大変分かりやすくご教授頂き、ありがとうございます。
また、現在他の案件なども進めておりますのでお返事が遅くなりがちですが、申し訳ありません。

私の構想として考えていたのは、
まず個人情報入力時の生年月日入力を必須項目にするという点を前提にして
1.カートに制限対象となる商品が含まれていないかの判別
2.入力された生年月日と現在の日付をもとに20才以上であるかの判別
3.いずれも満たす場合はアラート表示&カートトップへリダイレクトさせ、お客様が該当の商品をカートから削除して手続きしない限り上記の繰り返しとなる
という流れが大まかなものです。

高橋様のアドバイスが同様のものですし、初心者の自分にとっては「まずは年齢割り出し」という基礎的なプログラミングが第一歩だと考えていたところだったので、ソース実例や対象ファイルのご指示など、かなりピンポイントで課題に取り組めそうだったので、助かります!

まぁ、壁が色々と出てくる覚悟はしていますが、私も皆さんの様に早く他人にアドバイス出来る様なWEB屋になろうと思いますので(といっても、専門はディレクション業務なんですが・・・)、これからも宜しくお願いします。

アドバイスをもとに、地道にトライしてみようと思います。
また何かありましたら是非宜しくお願い致します。

あ、補足ですが外注の想定ありとお伝えしましたが、もしそのケースが必要になればご相談をするかもしれません。
その際は、seasoft様、高橋様をはじめ、ご協力頂けそうな皆様宜しくお願いします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,146名です
総投稿数は110,046件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1650
8
red
1570
9
mcontact
1299
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.