質問 > フロント機能 > 3ステップ購入機能の実装方法について一緒に考えてください |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tato |
投稿日時: 2014/5/23 16:43
対応状況: −−−
|
新米 登録日: 2014/5/23 居住地: 投稿: 3 |
3ステップ購入機能の実装方法について一緒に考えてください はじめまして
現在、以下の様なフローで3ステップで購入完了まで進めるプラグインの開発を作成しております。 ?外部サイト(ランディングページなど)にて顧客情報を入力する ?ECCUBEの購入確認画面を表示する(shopping/confirm.php) ?注文確定ボタンクリックで注文を確定させる 上記のようなことをプラグインにて実現したくプラグインフックポイント(Page_Shopping_Confirm_action_before)にて GETの引数によるswitch分岐を行い、shopping/confirm.php?mode=apiが呼ばれた場合に$objSiteSess->setUniqId();で新しくorder_temp_idを作成してdtb_order_tempに?で入力された顧客情報や規定値としてpaymentIDなどの情報を書き込むという処理を行いましたが、もちろんカートセッションやdtb_order_tempのsessionカラムに書き込む値の処理を行っていないのでカート確認画面にリダイレクトされてしまいます。 *不正なページ移動が表示されないように強引ですがPage_Shopping_Confirm_action_beforeにて最初に若干セッションをいじっています。 この件について、どうか皆様のお知恵を拝借できませんでしょうか? どうかよろしくお願い致します。 Page_Shopping_Confirm_action_beforeでの処理 switch ($_GET[mode]) { case 'api': $objSiteSess = new SC_SiteSession_Ex(); $objCartSess = new SC_CartSession_Ex(); $objQuery =& SC_Query_Ex::getSingletonInstance(); unset($_SESSION); //print_r($_SERVER); $_SESSION['site']['pre_page']=$_SERVER[SCRIPT_NAME]; $_SESSION['site']['now_page']=$_SERVER[SCRIPT_NAME]; $objSiteSess->setUniqId(); $sqlval[order_temp_id] = $_SESSION[site][uniqid]; $sqlval[customer_id] = $_POST[xxxxx]; $sqlval[order_name01] = $_POST[xxxxx]; $sqlval[order_name02] = $_POST[xxxxx]; $sqlval[order_kana01] = $_POST[xxxxx]; $sqlval[order_kana02] = $_POST[xxxxx]; $sqlval[order_email] = $_POST[xxxxx]; $sqlval[order_tel01] = $_POST[xxxxx]; $sqlval[order_tel02] = $_POST[xxxxx]; $sqlval[order_tel03] = $_POST[xxxxx]; $sqlval[order_zip01] = $_POST[xxxxx]; $sqlval[order_zip02] = $_POST[xxxxx]; $sqlval[order_country_id] = '392'; $sqlval[order_pref] = '27'; $sqlval[order_addr01] = 'AAA'; $sqlval[order_addr02] = 'AAA'; $sqlval[order_sex] = '1'; $sqlval[deliv_id] = '1'; $sqlval[payment_id] = '3'; $objQuery->insert('dtb_order_temp', $sqlval); break; default: break; |
AMUAMU |
投稿日時: 2014/5/27 16:58
対応状況: −−−
|
神 登録日: 2009/5/2 居住地: 東京都 投稿: 2712 |
Re: 3ステップ購入機能の実装方法について一緒に考えてください ちょっと難しくしている気がします。またセキュリティ上も問題がありそうです。
私がカスタマイズするとしたら下記のようにすると思います。 ?外部サイト(ランディングページなど)にて顧客情報を入力する ※POST先はそのページ自身にして、正常に処理出来た場合のみ移動させたいページにリダイレクトさせる形がセキュリティ上も処理上も良いでしょう。 ?1の入力処理では本来行うべき入力チェックやデータ格納など個別ステップの処理をまとめて行う(自動で行う)。 dtb_order_tempに直接入れるのではなく、本来のSC系のクラスを使ってデータ格納するのが良いと思います。 ?ページ遷移が正しい状態であることをセッションに記録。 ?購入確定画面に移動させる この仕組みの場合、 LC_Page_Shopping_Confirm 側に手を入れる必要が無いです プラグインでやる場合も同様です
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |