バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

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

サイト内検索

質問 > フロント機能 > MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
pi-tan
投稿日時: 2017/3/16 12:38
対応状況: 開発中
新米
登録日: 2017/3/16
居住地:
投稿: 5
MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい
▼テンプレート
[EC-CUBE] 3.0.13(新規インストール)
[レンタルサーバ] お名前.COM VPS
[OS] CentOS6?
[PHP] 5.5.28
[データベース] MySQL 5.6.35
[WEBサーバ] Apache/2.2.31
[ブラウザ] IE11
[導入プラグインの有無] Maker
[カスタマイズの有無]

MYページの購入履歴詳細ページにおいて、「再注文する」ボタンは標準でありますが、購入履歴にある個々の商品のみを再注文できるように「カート入れる」ボタンを追加したいと思います。

Mypage/history.twig の商品明細のあとの部分に以下のコードを追加して「カートに入れる」ボタンを作成しましたが、_token の値が適切でないのかカートに入らず、商品詳細ページが表示されます。
ちなみに、商品詳細ページの _token 値をそのまま記述すればカートに商品が入ります。商品詳細ページに埋め込まれている _token の値を取得するためにはどうすればいいでしょうか?ご教示いただければ幸いです。

以下は mypage/history.twig に追加したコードです。
標準のソースではProductClassをテンプレートには渡していませんが、
product_class_id から class_category_id を参照するためにカスタマイズしております。最終的にはhistory.twigのレンダリングをフックしてプラグインにしたいと思っています。

------------------------------------------------------------
<p id="reorder_button">
<form action="{{ url('product_detail', { id : OrderDetail.Product.id } ) }}" method="post" id="form1" name="form1">
<button type="submit" id="add-cart" class="btn btn-primary btn-block prevention-btn prevention-mask">カートに入れる</button>
<input type="hidden" id="mode" name="mode" value="add_cart" />
<input type="hidden" id="quantity" name="quantity" value="{{ OrderDetail.quantity }}" />
<input type="hidden" id="product_id" name="product_id" value="{{ OrderDetail.Product.id }}" />
<input type="hidden" id="product_class_id" name="product_class_id" value="{{ OrderDetail.ProductClass.id }}" />
{% for ProductClass in ProductClasses %}
{% if ProductClass.id == OrderDetail.ProductClass.id %}
{% if ProductClass.ClassCategory1.id is not empty %}
<input type="hidden" id="classcategory_id1" name="classcategory_id1" value="{{ ProductClass.ClassCategory1.id }}">
{% endif %}
{% if ProductClass.ClassCategory2.id is not empty %}
<input type="hidden" id="classcategory_id2" name="classcategory_id2" value="{{ ProductClass.ClassCategory2.id }}">
{% endif %}
{% endif %}
{% endfor %}
<input type="hidden" id="_token" name="_token" value="{{ csrf_token() }}" />
</form>
</p>

-----------------------------------------------------------

よろしく、お願いします。














[現象] 再現手順や、どのような現象が発生しているかなど、具体的に
468
投稿日時: 2017/3/17 9:09
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 570
Re: MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい
実際にソースを書いて試していないので、あくまで予想ですが、
AddCartTypeクラスからformを作り出してテンプレートに渡す必要があるのでは無いでしょうか?

/src/Eccube/Controller/ProductController.php 105行目付近に商品一覧のテンプレートに渡す$formsという配列を作っている処理がありますので、
同じような記述でformを渡せるのではないかと思います。
(ここの記述を見る限り、コントローラー側では商品一覧画面にカート投入ボタンを設置しようとしてるように見えるのですが、
twigのほうに対応する記述が無いので、きちんとカート投入できるかどうかは分かりません)

もし、良かったら、結果を教えていただけたらと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

pi-tan
投稿日時: 2017/3/18 7:45
対応状況: −−−
新米
登録日: 2017/3/16
居住地:
投稿: 5
Re: MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい
468様

ご回答ありがとうございます。
ご指摘の通りカートに追加するためのフォームデータを作成してテンプレートに
渡してやることでトークンを付けることができました。

-----------------------------------------------------------
// カート用フォームデータ作成
$builder = $this->app['form.factory']->createNamedBuilder('', 'add_cart', null, array(
'product' => $Product,
'allow_extra_fields' => true,
));
$form = $builder->getForm();

// この時点では$formには_tokenは生成されていませんが
// 下記のようにFormViewを作成することで _token が生成されますので
// これをテンプレートに渡します。
$parameters = $event->getParameters();
$parameters['form'] = $form->createView();
$event->setParameters($parameters);

-----------------------------------------------------------

テンプレートでは以下のコードでトークンを埋め込むことができました。

<input type="hidden" id="_token" name="_token" value="{{ form._token.vars.value }}" />

以上です。


468
投稿日時: 2017/3/18 11:43
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 570
Re: MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい
うまく埋め込めたという事で安心しました。
トークン埋め込みの記述まで教えていただき、ありがとうございます。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

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

 



ログイン


EC-CUBEガイドブック

統計情報

総メンバー数は19,515名です
総投稿数は81,788件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1623
4
yuh
1346
5
red
1052
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
782
10
umebius
671
11
tao_s
646
12 sumida 638
13
homan
633
14 karin 609
15 DELIGHT 571
16
468
570
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.