バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

質問 > フロント機能 > 商品注文時のページ差し込み・フォーム追加について

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sakaki
投稿日時: 2017/9/12 10:43
対応状況: 解決済
新米
登録日: 2017/9/12
居住地:
投稿: 3
商品注文時のページ差し込み・フォーム追加について
▼テンプレート
[EC-CUBE] 3.0.15
[サーバ] Apache2.4 ローカル
[OS] Windows10
[PHP] 5.5.38
[データベース] mysql 5.1.41

初投稿です.
現在ECサイトの構築及びプラグインの開発を学習しています.
今自分が実装しようとしているのは,「商品購入時に追加でお客様からフォームを入力してもらう」という機能です.
たとえば財布購入時に刻印の有無,入れるならその名前,といった具合です.
この処理を行うに当たって,フォームの追加場所は
front.shopping.index.initialize
と考えましたがこのフックポイントはcompleteがなく値を取得できません.
そこで
front.shopping.confirm.initialize,complete
を用いて新規ページ(Shopping/confirm.twig)を差し込みそこにフォームを追加することで対応できるのではと考えました.
Shoppingcontroller.phpのinitializeフックポイント直後に

$form = $builder->getForm();
$form->handleRequest($request);
return $app->render('Shopping/confirm.twig', array(
'form' => $form->createView(),
));

このように書くことでページを差し込むことは実現できましたが,このページからPOSTしたときにどうやって通常の処理に戻ればよいのかがわかりません.
他のやり方でも構いませんので,ぜひご教授ください.
468
投稿日時: 2017/9/12 14:50
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 796
Re: 商品注文時のページ差し込み・フォーム追加について
新しいページを追加されたところは、
FRONT_SHOPPING_CONFIRM_INITIALIZEのフックポイントの直後ですか?
という事は、まだ注文は完了していない状態かと思いますが、
認識は合っていますか?

新しく追加されたページでsubmitした場合、
希望としては、購入処理を実行して、注文完了ページを表示したいという事でしょうか?
(通常の処理とはこの事でしょうか?)

購入処理が実装されている/shopping/confirmへsubmitさせるのが良いのではないでしょうか?

そのままだと、追加されたページが常に表示されるかと思いますので、
その処理をスキップする判定を入れる事と追加されたフォームの入力値を保存する処理のカスタマイズを
function confirm()に追加すれば良いかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

sakaki
投稿日時: 2017/9/12 15:52
対応状況: −−−
新米
登録日: 2017/9/12
居住地:
投稿: 3
Re: 商品注文時のページ差し込み・フォーム追加について
返信ありがとうございます.
諸々の認識はその解釈で合っています.

ShoppingController.php内は

FRONT_SHOPPING_CONFIRM_INITIALIZE

追加した部分

それ以降

となっているとして,Confirm.twigでPOSTしたらそのデータを保持したまま(あるいはどこかに保存して)☆の部分にジャンプするようにしたいです.

どのようなコードを書けばよいでしょうか
468
投稿日時: 2017/9/13 19:28
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 796
Re: 商品注文時のページ差し込み・フォーム追加について
formクラスへの項目の追加などは問題無く実現出来ている感じでしょうか?
(Confirm.twigで入力させたい項目など)

もし、項目の追加が出来ているのであれば、
hidden項目を1つ追加して、その項目がリクエストに含まれていれば、
追加した部分の処理をスキップさせれば良いのではないでしょうか?

ただ、ソースを見てみると、
formの値は、FRONT_SHOPPING_CONFIRM_INITIALIZEの後に整形されているように見受けられますので、
例外的に、$request->request->get('****');等で取り出して判定するかですね。
formを利用した場合のPOST値をリクエストから直接取り出す方法は、実際に試していないので調べていただく必要があると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

sakaki
投稿日時: 2017/9/15 17:38
対応状況: −−−
新米
登録日: 2017/9/12
居住地:
投稿: 3
Re: 商品注文時のページ差し込み・フォーム追加について
自己解決いたしました.
お手数おかけしました,ありがとうございました.
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は20,539名です
総投稿数は83,571件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1662
4
yuh
1430
5
red
1076
6
fukap
907
7
shutta
827
8
468
796
9 ramrun 789
10
tsuji
784
11
umebius
721
12
tao_s
651
13 karin 641
14 sumida 638
15
homan
633
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

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

Copyright© LOCKON CO.,LTD. All Rights Reserved.