バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 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
側に手を入れる必要が無いです

プラグインでやる場合も同様です


----------------
EC-CUBE公式エヴァンジェリスト
EC-CUBEインテグレートパートナー (株)スピリット・オブ
移転・拡張・高速化・問題解決
各種カスタマイズ・支援依頼承ります。

[url=h

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,286名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.