バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 【2.13.5】商品詳細ページでカート内の合計数量を取得したい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2018/5/25 3:36
対応状況: 解決済
【2.13.5】商品詳細ページでカート内の合計数量を取得したい
一度に注文できる商品合計数に上限を設け、商品詳細ページのカートボタン付近に「あと○個カートに追加できます」と表示をしたいと考えております。

詳細ページでカートに入っている商品の合計数量を取得できれば、あとはif文で実現できると思うのですが、
SC_CartSession.phpを参考にLC_Page_Products_Detail.phpへ



// カート内商品数量の合計
public function getTotalQuantity($productTypeId)
{
    $total = 0;
    $max = $this->getMax($productTypeId);
    for ($i = 0; $i <= $max; $i++) {
        $total+= $this->cartSession[$productTypeId][$i]['quantity'];
    }
    return $total;
}


と追記したのですが、当然思った結果は得られず、ここからどのように修正をすればいいかもわからない状況です。

商品詳細ページでカートの合計数量を取得するにはどうすれば宜しいでしょうか?
宜しくお願い致します。




[EC-CUBE] 2.13.5
[レンタルサーバ] Zenlogic
[PHP] 5.6
[データベース] PostgreSQL
[WEBサーバ] Apache
matchbou
投稿日時: 2018/5/25 11:14
対応状況: −−−
一人前
登録日: 2018/3/19
居住地:
投稿: 130
Re: 【2.13.5】商品詳細ページでカート内の合計数量を取得したい
カートのセッションから合計を計算するのはいかかでしょうか?

getTotalQuantity関数内でもaction関数内でもいいのですが、以下のコードでカート内に商品がある場合、カート内の全データが表示されます。
if (!isset($_SESSION[$cartKey])) {
     $_SESSION[$cartKey] = array();
}
$cartSession =& $_SESSION[$cartKey];

※$cartKeyはSC_CartSession.phpでセットされている文字列を取得して頂き、var_dump等で$cartSessionを見てみるとデータの内容が分かるかと思います。

後はforeachやfor文を使って合計を出していけば表示出来るかと思います。


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

yuh
投稿日時: 2018/5/25 13:50
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1818
Re: 【2.13.5】商品詳細ページでカート内の合計数量を取得したい
カート内商品数量の合計
SC_CartSessionにgetTotalQuantity($productTypeId)というメソッドがあるので、それを使ってみてください。


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


http://ec-lab.net/

ゲスト
投稿日時: 2018/5/25 19:01
対応状況: −−−
Re: 【2.13.5】商品詳細ページでカート内の合計数量を取得したい
matchbou様、ありがとうございます。

LC_Page_Products_Detail_Ex.phpに

    // カート内商品数量の合計
    public function getTotalQuantity($productTypeId)
    {
        if (!isset($_SESSION[$cartKey])) {
             $_SESSION[$cartKey] = array();
        }
        $cartSession =& $_SESSION[$cartKey];        
        
        $total = 0;
        $max = $this->getMax($productTypeId);
        for ($i = 0; $i <= $max; $i++) {
            $total+= $this->cartSession[$productTypeId][$i]['quantity'];
        }
        return $total;
    }   


を追記し、
detail.tplに

<!--{$cartSession|@debug_print_var}-->


を追記してページにアクセスしてみたところ、結果は「null」でございました。

これはカートの情報を正しく取得できていないという事でしょうか?
ゲスト
投稿日時: 2018/5/25 19:04
対応状況: −−−
Re: 【2.13.5】商品詳細ページでカート内の合計数量を取得したい
yuh様、ありがとうございます。

SC_CartSession.phpのgetTotalQuantity($productTypeId)をLC_Page_Products_Detail.phpへ貼り付けましたが、そこから先をどのようにすればいいかわからない状態です。
宜しくお願い致します。
ゲスト
投稿日時: 2018/5/26 13:13
対応状況: 解決済
Re: 【2.13.5】商品詳細ページでカート内の合計数量を取得したい
いろいろ試行錯誤した結果、自己解決することができました。
ご協力いただきました方、ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

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.