バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > ヘッダーに追加したカートボタンに現在のカート内商品数を表示する

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
dipito
投稿日時: 2018/5/30 13:06
対応状況: 解決済
常連
登録日: 2016/9/2
居住地: Aichi
投稿: 41
ヘッダーに追加したカートボタンに現在のカート内商品数を表示する
[EC-CUBE]2.13.5

ヘッダテンプレートに追加したカートボタン(カートへのリンク)部分に
現在カートに入っている商品点数を表示したいと思います。

商品数を取得する処理は出来ていますが、
このような処理はどこに書くべきでしょうか?
全ページ共通であるので、LC_Page_Exでしょうか。

宜しくお願い致します。
matchbou
投稿日時: 2018/5/31 10:09
対応状況: −−−
一人前
登録日: 2018/3/19
居住地:
投稿: 130
Re: ヘッダーに追加したカートボタンに現在のカート内商品数を表示する
取得処理にもよるかもしれないですが、smartyに変数を渡すようであれば、class\pages\LC_Page.phpの方が宜しいのではないでしょうか?
LC_Page_Exでも表示出来るかと思いますが、編集や処理を行うようであれば、class_extendsよりもclass配下の方が宜しいかと思います。


----------------
アイフォーコム株式会社
お問い合わせ URL:https://www.iforcom.jp/ec/
tel:045-412-3010
EC-CUBEの構築・カスタマイズは有償で承ります。ご相談下さい

dipito
投稿日時: 2018/5/31 16:38
対応状況: −−−
常連
登録日: 2016/9/2
居住地: Aichi
投稿: 41
Re: ヘッダーに追加したカートボタンに現在のカート内商品数を表示する
ありがとうございます。
処理を追加してみましたが、
商品が入っていても数量は常に0になっています。

LC_Page.php

public function init(){
:
:
$objCartSession = new SC_CartSession();
$cartKey = $objCartSession->getKey();
$quantity = $objCartSession->getTotalQuantity($cartKey);
$this->quantity = $quantity; //取得した数量をテンプレートに渡す
:
}

cartkeyというセッションの値が取得出来ていないのでしょうか。
matchbou
投稿日時: 2018/5/31 17:57
対応状況: −−−
一人前
登録日: 2018/3/19
居住地:
投稿: 130
Re: ヘッダーに追加したカートボタンに現在のカート内商品数を表示する
$objCartSession->getKey()は購入手続き後に値がセットされるので、その前であれば、
$quantity = $objCartSession->getTotalQuantity(array_keys($objCartSession->cartSession)[0]);

で表示出来るかと思います。


----------------
アイフォーコム株式会社
お問い合わせ URL:https://www.iforcom.jp/ec/
tel:045-412-3010
EC-CUBEの構築・カスタマイズは有償で承ります。ご相談下さい

dipito
投稿日時: 2018/6/1 15:04
対応状況: 解決済
常連
登録日: 2016/9/2
居住地: Aichi
投稿: 41
Re: ヘッダーに追加したカートボタンに現在のカート内商品数を表示する
ご提示頂きましたコードで数量を表示出来ました。
しかし、種別の異なる商品を追加した際、それが反映されない問題があった為
少しだけコードを書きました。(もっと良いやり方があるのかもしれませんが…)


$objCartSession = new SC_CartSession();
$prd_type_count = count($objCartSession->cartSession);
$prd_type_arr = array_keys($objCartSession->cartSession);
if ($prd_type_count == 0) {
    $quantity = 0;
} else {
    for ($i = 0; $i < $prd_type_count; $i++) {
        $quantity += $objCartSession->getTotalQuantity($prd_type_arr[$i]);
    }
}
$this->quantity = $quantity;


ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
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.