バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > 支払方法画面に遷移されません

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
namanama
投稿日時: 2014/8/26 14:34
対応状況: −−−
新米
登録日: 2014/8/26
居住地:
投稿: 6
支払方法画面に遷移されません
お世話になります。
現在 ECCUBE 2.13.2 で開発を行っています。

http://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=12087&forum=2&post_id=55604#forumpost55604
上記を参考にURLを知っている方のみ商品を買えるという状況にしたいです。

カートの追加まではでき、その後も「お届け先の指定画面」へと行けたのですが、「支払選択画面」へページ遷移をしようとすると「現在のカート画面」へ戻されてしまいます。

通常の公開商品は問題ないのですが、自分で追加したものはこの現象の対象となってしまいます。

お手数をおかけしますが、ご教授頂けると助かります。
yuh
投稿日時: 2014/8/26 14:44
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 支払方法画面に遷移されません
支払方法のページでカートページへ戻る場合が複数ありますので、まずはどの項目が原因でカートページへ戻っているかを確認する必要があります。
LC_Page_Shopping_Payment.php の中に

     SC_Response_Ex::sendRedirect(CART_URL);
     SC_Response_Ex::actionExit();

と書かれている部分があるので、一つずつコメントアウトするなりでどの部分に引っかかっているかをチェックをやってみてください。

namanama
投稿日時: 2014/8/26 15:10
対応状況: −−−
新米
登録日: 2014/8/26
居住地:
投稿: 6
Re: 支払方法画面に遷移されません
早速のご返信ありがとうございます。
ページ遷移なのですが、どうもpayment.phpに移った瞬間戻されているようです。

というのも、 LC_Page_Shopping_Payment.php の中身を全て消しても戻されてしまいます。
(ただし、syntaxエラーは認識されるようで、その場合は止まります)
payment.tpl の javascript もコメントアウトしてみたのですが、同様です。

LC_Page_Shopping_Deliv.php の


$objPurchase->setShipmentItemTempForSole($objCartSess, $shipping_id);
$objSiteSess->setRegistFlag();
SC_Response_Ex::sendRedirect(SHOPPING_PAYMENT_URLPATH);
SC_Response_Ex::actionExit();

までは動いているのを確認しています。

よろしくお願いします。
yuh
投稿日時: 2014/8/26 15:19
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 支払方法画面に遷移されません

    public function action()
    {
echo "test";
exit();

とかでもカートにリダイレクトされますか?
yuh
投稿日時: 2014/8/26 15:25
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 支払方法画面に遷移されません
元のURLみると
SC_CartSession.phpのcheckProducts辺りとかの処理が抜けてる気がします。
それが原因でカートにリダイレクトされてるような気はしますが・・・。
namanama
投稿日時: 2014/8/26 15:48
対応状況: −−−
新米
登録日: 2014/8/26
居住地:
投稿: 6
Re: 支払方法画面に遷移されません
action を変えてみたのですが、ダメでした。

checkProducts はこんな感じです。


    public function checkProducts($productTypeId)
    {
        $objProduct = new SC_Product_Ex();
        $objDelivery = new SC_Helper_Delivery_Ex();
        $arrDeliv = $objDelivery->getList($productTypeId);
        $tpl_message = '';

        // カート内の情報を取得
        $arrItems = $this->getCartList($productTypeId);
        foreach ($arrItems as &$arrItem) {
            $product =& $arrItem['productsClass'];
            /*
             * 表示/非表示商品のチェック
             */
            if (SC_Utils_Ex::isBlank($product) || $product['status'] != 1 && $product['status'] != 3) {
                $this->delProduct($arrItem['cart_no'], $productTypeId);
                $tpl_message .= "※ 現時点で販売していない商品が含まれておりました。該当商品をカートから削除しました。\n";
            } else {
                /*
                 * 配送業者のチェック
                 */
                if (SC_Utils_Ex::isBlank($arrDeliv)) {
                    $tpl_message .= '※「' . $product['name'] . '」はまだ配送の準備ができておりません。';
                    $tpl_message .= '恐れ入りますがお問い合わせページよりお問い合わせください。' . "\n";
                    $this->delProduct($arrItem['cart_no'], $productTypeId);
                }

                /*
                 * 販売制限数, 在庫数のチェック
                 */
                $limit = $objProduct->getBuyLimit($product);
                if (!is_null($limit) && $arrItem['quantity'] > $limit) {
                    if ($limit > 0) {
                        $this->setProductValue($arrItem['id'], 'quantity', $limit, $productTypeId);
                        $total_inctax = $limit * SC_Helper_TaxRule_Ex::sfCalcIncTax($arrItem['price'],
                            $product['product_id'],
                            $arrItem['id'][0]);
                        $this->setProductValue($arrItem['id'], 'total_inctax', $total_inctax, $productTypeId);
                        $tpl_message .= '※「' . $product['name'] . '」は販売制限(または在庫が不足)しております。';
                        $tpl_message .= "一度に数量{$limit}を超える購入はできません。\n";
                    } else {
                        $this->delProduct($arrItem['cart_no'], $productTypeId);
                        $tpl_message .= '※「' . $product['name'] . "」は売り切れました。\n";
                        continue;
                    }
                }
            }
        }

        return $tpl_message;
    }

カートに引き戻される際にエラーメッセージが表示されていないので、何がトリガーになっているのが、さっぱりです…。
kuro_r
投稿日時: 2014/8/26 17:26
対応状況: −−−
常連
登録日: 2014/8/7
居住地:
投稿: 32
Re: 支払方法画面に遷移されません
namanama 様

手元に該当バージョンのソースがないので、正確ではないかもしれませんが、
dtb_order_tempに受注情報がうまく入っていないのではないですか?

受注情報(temp)が入っていないとカート画面に戻すようになっていませんか?

一度、LC_Page_Shopping_Payment.phpのaction()部分をチェックしてみてはいかがでしょう?
namanama
投稿日時: 2014/8/26 18:29
対応状況: −−−
新米
登録日: 2014/8/26
居住地:
投稿: 6
Re: 支払方法画面に遷移されません
kuro_r 様

ご返答ありがとうございます。

dtb_order_temp を確認してみたところ、一応該当のデータは生成されていたようです。
住所も記入されたいたのでそれまでのものは特に問題ないように思えます。

LC_Page_Shopping_Payment.phpのaction()部分ですが、上記のとおり、

    public function action()
    {
echo "test";
exit();

としてみたり、空白にしても戻されるのですが、どのあたりをチェックすればよろしいのでしょうか?

知識が乏しく申し訳ございません。
お手数をおかけしますがよろしくお願いします。
kuro_r
投稿日時: 2014/8/26 21:31
対応状況: −−−
常連
登録日: 2014/8/7
居住地:
投稿: 32
Re: 支払方法画面に遷移されません
namanama 様

LC_Page_Shopping_Payment_Ex.phpでaction()をオーバーライドしていたりしませんか?

その場合は、LC_Page_Shopping_Payment_Ex.phpのaction()部分を加工する必要があります。
LC_Page_Shopping_Payment.phpのaction()ではなく、LC_Page_Shopping_Payment_Ex.phpのaction()が動作するからです。

すでに試されていたらすみません。

yuh
投稿日時: 2014/8/27 1:39
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1819
Re: 支払方法画面に遷移されません
プラグインとか入ってたりします?

一応こちらの環境で同じように構築したところ、正常に支払い方法までは進みますね。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,944名です
総投稿数は110,018件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1296
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.