バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
syuwa
投稿日時: 2014/10/11 22:39
対応状況: 開発中
半人前
登録日: 2014/9/7
居住地:
投稿: 22
EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
現在2.11verのテキストをみて、カゴに入れた直後にカート画面へ飛ばないためのカスタマイズを行っているのですが、
そのカスタマイズ自体はLC_Page_Products_Detail.php,
LC_Page_Products_List.php の記述の中にある、
SC_Response_Ex::sendRedirect(CART_URLPATH,$arrQueryString);
、exitを消すことで遷移を行わずにカゴへ商品を入れることに成功したのですが、その画面じょうでは右上のカゴに値段が追加されません。 
カゴの中を見るで購入画面へいけば更新はされるのですが、Listの画面上においても更新させるようにしたいです。
なんとか方法はないでしょうか? 
勉強不足でもうしわけありません。よろしくお願いいたします。
seasoft
投稿日時: 2014/10/11 22:52
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
うろ覚えですが、reload を使った記憶があります。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

syuwa
投稿日時: 2014/10/11 23:30
対応状況: −−−
半人前
登録日: 2014/9/7
居住地:
投稿: 22
Re: EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
お早いお返事ありがとうございます。
SC_Response.php のreload();ですね。
実際にsendRedirectをけし 
SC_Response_Ex::reload(); を追加していたのですが、
「ご指定のページはございません」といったエラーを吐いてしまいます。
reloadされてきたページのアドレスにはproduct_idの情報が入っていなかったため追加の記述が必要なのでしょうか。
seasoft
投稿日時: 2014/10/11 23:57
対応状況: −−−
登録日: 2008/6/4
居住地:
投稿: 7367
Re: EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
はい。

($arrQueryString, true) とかのパラメーターだったような。

ホント、うろ覚えですので、的を外していたらゴメンなさい。


----------------
Seasoft
こちらでの投稿は、アイディア程度に留めさせていただいております。
個別案件の作業は有償で承っております。お気軽にご相談ください。

syuwa
投稿日時: 2014/10/12 0:24
対応状況: −−−
半人前
登録日: 2014/9/7
居住地:
投稿: 22
Re: EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
お返事ありがとうございます。
($arrQueryString,true)をパラメーターとして
挿入し、エラーを回避することができたのですが、

料金の更新はできませんでした。
自分の調べた中ですとreload()の追加が解決策のひとつだったのですが、さらに記述が必要のようですね。。正直当てがないです。。
ご教授よろしくお願いします。
sumida
投稿日時: 2014/10/12 22:46
対応状況: −−−
仙人
登録日: 2013/2/10
居住地: 広島県呉市ときどき瀬戸内海
投稿: 641
Re: EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
横から失礼します。
ソースコードを追いかけてみました。

LC_Page_Products_Detail.phpを例にとると、
関数 doCart

            $objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity'));

で、商品をカートに追加しているようです。

SC_CartSession.php 内の関数 addProduct では、

        for ($i = 0; $i <= $max; $i++) {
            if ($this->cartSession[$productTypeId][$i]['id'] == $product_class_id) {
                $val = $this->cartSession[$productTypeId][$i]['quantity'] + $quantity;
                if (strlen($val) <= INT_LEN) {
                    $this->cartSession[$productTypeId][$i]['quantity'] += $quantity;
                }
                $find = true;
            }
        }
        if (!$find) {
            $this->cartSession[$productTypeId][$max+1]['id'] = $product_class_id;
            $this->cartSession[$productTypeId][$max+1]['quantity'] = $quantity;
            $this->cartSession[$productTypeId][$max+1]['cart_no'] = $this->getNextCartID($productTypeId);
        }

を見ると、id, quantity, cart_no を、設定しています。

しかし、このタイミングでは、価格について何も設定していないので、合計に反映されていないと思います。

カート画面を表示すると、この部分を設定しているため、カート画面表示後は、価格が合計に反映されているものと思います。

したがって、上記 addProductで価格の設定ができれば、新しい金額が反映されるのでは。(新しい数量は、反映されているようですから)

追記:
前述を対策した上で、画面遷移部分をコメントにすれば良いのでは。

    public function doCart()
    {
        $this->arrErr = $this->lfCheckError($this->mode,$this->objFormParam,
                                            $this->tpl_classcat_find1,
                                            $this->tpl_classcat_find2);
        if (count($this->arrErr) == 0) {
            $objCartSess = new SC_CartSession_Ex();
            $product_class_id = $this->objFormParam->getValue('product_class_id');

            $objCartSess->addProduct($product_class_id, $this->objFormParam->getValue('quantity'));

            // 開いているカテゴリーツリーを維持するためのパラメーター
/* ここからコメント
            $arrQueryString = array(
                'product_id' => $this->objFormParam->getValue('product_id'),
            );

            SC_Response_Ex::sendRedirect(CART_URL, $arrQueryString);
            SC_Response_Ex::actionExit();
ここまで コメント */
        }
    }
syuwa
投稿日時: 2014/10/14 1:22
対応状況: −−−
半人前
登録日: 2014/9/7
居住地:
投稿: 22
Re: EC-CUBE ver2.13.2 カゴに入れた直後にカート画面に飛ばないようにする
sumida様、seasoft様

お返事ありがとうございました。
if (!$find) {
$this->cartSession[$productTypeId][$max+1]['id'] = $product_class_id;
$this->cartSession[$productTypeId][$max+1]['quantity'] = $quantity;
$this->cartSession[$productTypeId][$max+1]['cart_no'] = $this->getNextCartID($productTypeId);
}
の下にprice03をcartSessionを加える記述をすることで、カートの値段を反映させることができました。

長い時間悩んでいた点だったので本当に助かりました。お二方、本当にありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1290
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
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.