バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
居住地:
投稿: 3217
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
居住地:
投稿: 3217
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公式 Amazon Payプラグイン

統計情報

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

投稿数ランキング

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.