質問 > フロント機能 > カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします |
フロント機能
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
ricarica |
投稿日時: 2018/9/8 0:15
対応状況: 解決済
|
常連 登録日: 2011/8/22 居住地: 投稿: 48 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします yuh様
ありがとうございます。 大変感謝しております。 以下内容において解決しました。 以下11行目から13行目までを削除することで、shipping_id shipping_itemの格納がなくなりました。 **************************** function setShipmentItemTemp2($shipping_id2, $product_class_id, $quantity) { // 配列が長くなるので, リファレンスを使用する $arrItems =& $_SESSION['shipping2'][$shipping_id2]['shipment_item'][$product_class_id]; $arrItems['shipping_id2'] = $shipping_id2; $arrItems['product_class_id'] = $product_class_id; $arrItems['quantity'] = $quantity; $objProduct = new SC_Product_Ex(); // カート情報から読みこめば済むと思うが、一旦保留。むしろ、カート情報も含め、セッション情報を縮小すべきかもしれない。 /* $objCartSession = new SC_CartSession_Ex(); $cartKey = $objCartSession->getKey(); // 詳細情報を取得 $cartItems = $objCartSession->getCartList($cartKey); if (empty($arrItems['productsClass'])) { $product =& $objProduct->getDetailAndProductsClass($product_class_id); $arrItems['productsClass'] = $product; } $arrItems['price'] = $arrItems['productsClass']['price02']; $inctax = SC_Helper_DB_Ex::sfCalcIncTax($arrItems['price']); $arrItems['total_inctax'] = $inctax * $arrItems['quantity']; */ } ************************ いろいろとご相談に乗って頂き大変感謝しております。 php等の知識なしに加え、質問の内容等、わかりにくいところが多く大変恐縮ですが、今後ともよろしくお願い申し上げます。 この度は、誠にありがとうございました。 追伸:ホント神です。 |
ricarica |
投稿日時: 2018/9/7 20:10
対応状況: −−−
|
常連 登録日: 2011/8/22 居住地: 投稿: 48 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします yuh さん
<!--{$smarty.session|@var_dump}--> で確認してみてください ありがとうございます。 以下その内容で出てきたものです。 *********************************** array(17) { ["cart"]=> array(1) { [1]=> array(3) { [1]=> array(7) { ["id"]=> string(2) "10" ["quantity"]=> string(1) "1" ["cart_no"]=> int(1) ["productsClass"]=> array(15) { ["product_id"]=> string(1) "2" ["stock"]=> string(2) "72" ["stock_unlimited"]=> string(1) "0" ["sale_limit"]=> string(1) "5" ["price02"]=> string(4) "1650" ["point_rate"]=> string(2) "10" ["product_code"]=> string(7) "nabe-01" ["product_class_id"]=> string(2) "10" ["classcategory_name1"]=> NULL ["class_name1"]=> NULL ["classcategory_name2"]=> NULL ["class_name2"]=> NULL ["name"]=> string(9) "おなべ" ["main_list_image"]=> string(11) "nabe130.jpg" ["main_image"]=> string(11) "nabe260.jpg" } ["price"]=> string(4) "1650" ["point_rate"]=> string(2) "10" ["total_inctax"]=> float(1733) } ["cancel_purchase"]=> bool(false) [0]=> array(4) { ["price"]=> string(0) "" ["quantity"]=> string(0) "" ["point_rate"]=> string(0) "" ["id"]=> array(1) { [0]=> string(0) "" } } } } ["prev_url"]=> string(27) "/eccube-2.12.6d/html/cart/?" ["transactionid"]=> string(40) "7a7cc1f8a72330a37603e6b34f591d81fd31bd7d" ["customer"]=> array(38) { ["customer_id"]=> string(1) "3" ["name01"]=> string(4) "test" ["name02"]=> string(4) "norm" ["kana01"]=> string(9) "テスト" ["kana02"]=> string(12) "ノーマル" ["zip01"]=> string(3) "000" ["zip02"]=> string(4) "0000" ["pref"]=> string(1) "1" ["addr01"]=> string(8) "00000000" ["addr02"]=> string(8) "00000000" ["email"]=> string(21) "test@test.test" ["email_mobile"]=> NULL ["tel01"]=> string(4) "0000" ["tel02"]=> string(4) "0000" ["tel03"]=> string(3) "000" ["fax01"]=> NULL ["fax02"]=> NULL ["fax03"]=> NULL ["sex"]=> string(1) "1" ["job"]=> NULL ["birth"]=> NULL ["password"]=> string(64) "9574e0c54df99f1980d57cf8ffe54cc317ac02100f8542948acf2db690aedfa4" ["reminder"]=> string(1) "1" ["reminder_answer"]=> string(64) "9574e0c54df99f1980d57cf8ffe54cc317ac02100f8542948acf2db690aedfa4" ["salt"]=> string(10) "prataphiat" ["secret_key"]=> string(22) "r5b90d1d7aff03n9gN5vmU" ["first_buy_date"]=> string(19) "2018-09-06 19:07:57" ["last_buy_date"]=> string(19) "2018-09-07 18:16:08" ["buy_times"]=> string(2) "15" ["buy_total"]=> string(5) "45441" ["point"]=> string(1) "0" ["note"]=> NULL ["status"]=> string(1) "2" ["create_date"]=> string(19) "2018-09-06 16:05:59" ["update_date"]=> string(19) "2018-09-06 16:05:59" ["del_flg"]=> string(1) "0" ["mobile_phone_id"]=> NULL ["mailmaga_flg"]=> string(1) "3" } ["site"]=> array(5) { ["pre_regist_success"]=> bool(true) ["regist_success"]=> bool(false) ["pre_page"]=> string(41) "/eccube-2.12.6d/html/shopping/payment.php" ["now_page"]=> string(41) "/eccube-2.12.6d/html/shopping/confirm.php" ["uniqid"]=> string(21) "5b9256e4c3a28qbtCn7LE" } ["cart_prev_url"]=> string(112) "http://localhost/eccube-2.12.6d/html/shopping/confirm.php?transactionid=7a7cc1f8a72330a37603e6b34f591d81fd31bd7d" ["cartKey"]=> string(1) "1" ["cert"]=> string(8) "7WDhcBTF" ["member_id"]=> string(1) "2" ["login_id"]=> string(4) "root" ["authority"]=> string(1) "0" ["login_name"]=> string(9) "管理者" ["uniqid"]=> string(21) "5b916f95e3023x4Snvcfb" ["last_login"]=> string(19) "2018-09-06 16:02:03" ["savecart_5b9256e4c3a28qbtCn7LE"]=> array(3) { [1]=> array(7) { ["id"]=> string(2) "10" ["quantity"]=> string(1) "1" ["cart_no"]=> int(1) ["productsClass"]=> array(15) { ["product_id"]=> string(1) "2" ["stock"]=> string(2) "72" ["stock_unlimited"]=> string(1) "0" ["sale_limit"]=> string(1) "5" ["price02"]=> string(4) "1650" ["point_rate"]=> string(2) "10" ["product_code"]=> string(7) "nabe-01" ["product_class_id"]=> string(2) "10" ["classcategory_name1"]=> NULL ["class_name1"]=> NULL ["classcategory_name2"]=> NULL ["class_name2"]=> NULL ["name"]=> string(9) "おなべ" ["main_list_image"]=> string(11) "nabe130.jpg" ["main_image"]=> string(11) "nabe260.jpg" } ["price"]=> string(4) "1650" ["point_rate"]=> string(2) "10" ["total_inctax"]=> float(1733) } ["cancel_purchase"]=> bool(false) [0]=> array(4) { ["price"]=> string(0) "" ["quantity"]=> string(0) "" ["point_rate"]=> string(0) "" ["id"]=> array(1) { [0]=> string(0) "" } } } ["shipping"]=> array(1) { [4]=> array(18) { ["shipping_name01"]=> string(12) "テッスト" ["shipping_name02"]=> string(18) "メイテッスト" ["shipping_kana01"]=> string(15) "テツトサン" ["shipping_kana02"]=> string(21) "メイテストサン" ["shipping_zip01"]=> string(3) "333" ["shipping_zip02"]=> string(4) "3333" ["shipping_pref"]=> string(2) "46" ["shipping_addr01"]=> string(3) "333" ["shipping_addr02"]=> string(3) "333" ["shipping_tel01"]=> string(3) "333" ["shipping_tel02"]=> string(3) "333" ["shipping_tel03"]=> string(4) "3333" ["shipping_id"]=> string(1) "4" ["shipment_item"]=> array(1) { [10]=> array(6) { ["shipping_id"]=> string(1) "4" ["product_class_id"]=> string(2) "10" ["quantity"]=> string(1) "1" ["productsClass"]=> array(83) { ["product_id"]=> string(1) "2" ["stock"]=> string(2) "72" ["stock_unlimited"]=> string(1) "0" ["sale_limit"]=> string(1) "5" ["price01"]=> string(4) "1700" ["price02"]=> string(4) "1650" ["point_rate"]=> string(2) "10" ["product_code"]=> string(7) "nabe-01" ["product_class_id"]=> string(2) "10" ["del_flg"]=> string(1) "0" ["product_type_id"]=> string(1) "1" ["down_filename"]=> NULL ["down_realfilename"]=> NULL ["classcategory_name1"]=> NULL ["rank1"]=> string(1) "0" ["class_name1"]=> NULL ["class_id1"]=> NULL ["classcategory_id1"]=> string(1) "0" ["classcategory_id2"]=> string(1) "0" ["classcategory_name2"]=> NULL ["rank2"]=> string(1) "0" ["class_name2"]=> NULL ["class_id2"]=> NULL ["name"]=> string(9) "おなべ" ["maker_id"]=> NULL ["status"]=> string(1) "1" ["comment1"]=> NULL ["comment2"]=> NULL ["comment3"]=> string(17) "鍋,なべ,ナベ" ["comment4"]=> NULL ["comment5"]=> NULL ["comment6"]=> NULL ["note"]=> NULL ["main_list_comment"]=> string(30) "一人用からあります。" ["main_list_image"]=> string(11) "nabe130.jpg" ["main_comment"]=> string(42) "たまには鍋でもどうでしょう。" ["main_image"]=> string(11) "nabe260.jpg" ["main_large_image"]=> string(11) "nabe500.jpg" ["sub_title1"]=> NULL ["sub_comment1"]=> NULL ["sub_image1"]=> NULL ["sub_large_image1"]=> NULL ["sub_title2"]=> NULL ["sub_comment2"]=> NULL ["sub_image2"]=> NULL ["sub_large_image2"]=> NULL ["sub_title3"]=> NULL ["sub_comment3"]=> NULL ["sub_image3"]=> NULL ["sub_large_image3"]=> NULL ["sub_title4"]=> NULL ["sub_comment4"]=> NULL ["sub_image4"]=> NULL ["sub_large_image4"]=> NULL ["sub_title5"]=> NULL ["sub_comment5"]=> NULL ["sub_image5"]=> NULL ["sub_large_image5"]=> NULL ["sub_title6"]=> NULL ["sub_comment6"]=> NULL ["sub_image6"]=> NULL ["sub_large_image6"]=> NULL ["creator_id"]=> string(1) "2" ["create_date"]=> string(19) "2018-09-01 22:17:55" ["update_date"]=> string(19) "2018-09-01 22:17:55" ["deliv_date_id"]=> string(1) "3" ["product_code_min"]=> string(7) "nabe-01" ["product_code_max"]=> string(7) "nabe-01" ["price01_min"]=> string(4) "1700" ["price01_max"]=> string(4) "1700" ["price02_min"]=> string(4) "1650" ["price02_max"]=> string(4) "1650" ["stock_min"]=> string(2) "72" ["stock_max"]=> string(2) "72" ["stock_unlimited_min"]=> string(1) "0" ["stock_unlimited_max"]=> string(1) "0" ["deliv_fee"]=> NULL ["class_count"]=> string(1) "1" ["maker_name"]=> NULL ["price01_min_inctax"]=> float(1785) ["price01_max_inctax"]=> float(1785) ["price02_min_inctax"]=> float(1733) ["price02_max_inctax"]=> float(1733) } ["price"]=> string(4) "1650" ["total_inctax"]=> float(1733) } } ["deliv_id"]=> string(1) "1" ["time_id"]=> string(0) "" ["shipping_time"]=> NULL ["shipping_date"]=> string(0) "" } } ["shipping2"]=> array(1) { [4]=> array(13) { ["shipping2_name0155"]=> string(13) "テッスト6" ["shipping2_name0255"]=> string(19) "メイテッスト6" ["shipping2_kana0155"]=> string(15) "テツトロク" ["shipping2_kana0255"]=> string(21) "メイテストロク" ["shipping2_zip0155"]=> string(3) "666" ["shipping2_zip0255"]=> string(4) "6666" ["shipping2_pref"]=> string(2) "46" ["shipping2_addr0155"]=> string(3) "666" ["shipping2_addr0255"]=> string(4) "6666" ["shipping2_tel0155"]=> string(3) "666" ["shipping2_tel0255"]=> string(3) "666" ["shipping2_tel0355"]=> string(4) "6666" ["shipping_id2"]=> string(1) "4" } } } ****************************** 現在、dtb_shipping のshipping_id (値)と 今回作成した、dtb_shipping2 のshipping_id2の(値)が異なる場合 つまり、deliv.phpで選択した(配送先情報1のshipping_id(値))とdeliv2.php(配送先情報2のshipping_id2(値))が異なると payment.phpにおいて、 お届け時間の指定 欄に(配送先情報1)の下に日時の選択欄 空欄(恐らく配送先情報2)の下に日時の選択欄 が出てきています。 複数配送判定されているとは思うのですが、判定材料が何かとどこで格納されたのかがわからない状態です。 お手数をおかけしますが、なにとぞよろしくお願い申し上げます。 |
yuh |
投稿日時: 2018/9/7 15:42
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします
|
ricarica |
投稿日時: 2018/9/7 4:21
対応状況: −−−
|
常連 登録日: 2011/8/22 居住地: 投稿: 48 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします yuh さん
早速のご返答ありがとうございます。 >confirm.phpに渡った時に$_SESSIONの値ってどのようになってますか? 確認の仕方が不安なのですが、comfirm.tplに <p class="f"><!--{$_SESSION|@var_dump}--> </p>を記述して確認したところ、【NULL】がかえってます。 |
yuh |
投稿日時: 2018/9/7 0:03
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします confirm.phpに渡った時に$_SESSIONの値ってどのようになってますか?
|
ricarica |
投稿日時: 2018/9/6 23:23
対応状況: −−−
|
常連 登録日: 2011/8/22 居住地: 投稿: 48 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします yuhさん
ご回答、アドバイスありがとうございます。 deliv2.phpの処理で共通処理を使っている部分もありますが、 $objPurchase->saveShippingTempをコピーして $objPurchase->saveShippingTemp2として 内部を以下のようにしているのですが、 ***************** function saveShippingTemp2($arrSrc, $shipping_id = 0) { // 配送商品は引き継がない unset($arrSrc['shipment_item']); if (!isset($_SESSION['shipping2'][$shipping_id])) { $_SESSION['shipping2'][$shipping_id] = array(); } $_SESSION['shipping2'][$shipping_id] = array_merge($_SESSION['shipping2'][$shipping_id], $arrSrc); $_SESSION['shipping2'][$shipping_id]['shipping_id'] = $shipping_id; } ********************** ($_SESSION['shipping2'][$shipping_id], では無くて、 ($_SESSION['shipping'][$shipping_id2],の方向にしないといけないということでしょうか? ちなみに、目的は、顧客の購入行動における配送先情報【選択情報1】と同じように、顧客の購入行動における別の【選択情報2】の取得及び保存により、顧客の購入行動における詳細な情報保存が可能になる為。 端的に言うと、ひとつのアカウントで、顧客企業様のどの部署の誰(その他情報含む&事前登録・情報追加も含む)【選択情報2】等が、配送先情報【選択情報1】に対し、購入行動をとったか。ということをWEB情報として、保存、したいのです。 もちろん、今回の方法以外にも、別のアカウントをアカウントを作れば済みますし、payment.phpのメモ欄に記述しても、済む話であることは、わかっているのですが、どうしても、deliv2という方法で、追加したいのです。 |
yuh |
投稿日時: 2018/9/6 13:37
対応状況: −−−
|
神 登録日: 2013/1/9 居住地: 大阪 投稿: 1819 |
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします 何が目的でその処理をやりたいのかがわかりませんが、
deliv2.phpの処理で共通処理を使って処理を書いてるのであれば、当然deliv.phpで保存した内容を上書きするようになります。 $objPurchase->saveShippingTemp部分をdeliv2用に変更すればいいかと思いますが、他にもそのデータを保存するようにしたり色々しなければだめだとは思います。
|
ricarica |
投稿日時: 2018/9/5 18:48
対応状況: −−−
|
常連 登録日: 2011/8/22 居住地: 投稿: 48 |
カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします ▼テンプレート
[EC-CUBE]2.12.6 インストール [レンタルサーバ] XAMPP OS] windows 7 XAMPP for Windows 5.6.30 [ブラウザ] internet explorer11 ご質問:① 2.12.6についてお伺いします。 目的:商品購入の一連の流れに、配送先(LC_Page_Shopping_Deliv)を もうひとつ増したいと思っています。 現在 LC_Page_Shopping_DelivをコピーしてLC_Page_Shopping_Deliv2<以下配送先指定2とする> をつくり、CART.php → deliv2.php → deliv.php → payment.php → comfirm.php → complete.php の途中で躓いております。 ご質問1: ①CART.php → deliv.php → payment.php → comfirm.php → complete.php だと正常に動きます。(当たり前ですが・・) 次に、 ②CART.php → deliv2.php → payment.php → comfirm.php → complete.php これも正常に動きます confirm.phpの確認画面でも、deliv2.phpの選択住所(配送先2)は、確認可能(逆にdeliv.phpを飛ばしている為、配送先1の内容は、空欄表示) (データベースにもdtb_shipping2を作成、other_deliv_idは、other_deliv_id22に変更) complete後のdtb_shipping2の記述も問題なし。ただし、deliv.phpを飛ばしている為、dtb_shipping には、NULLしか入力されず。 ③ CART.php → deliv2.php → deliv.php → payment.php → comfirm.php → complete.php confirm.phpでは、deliv.phpの選択住所のみが表示、その後 complete後のdtb_shippingの記述も問題なし。ただし、dtb_shipping2 には、NULLしか入力されず。 ④ CART.php → deliv.php → deliv2.php → payment.php → comfirm.php → complete.php confirm.phpでは、deliv2.phpの選択住所のみが表示、その後 complete後のdtb_shipping2の記述も問題なし。ただし、dtb_shipping には、NULLしか入力されず。 ここまでをふまえて、deliv2.phpの後の deliv.php で $arrShippingが上書きされているのではと考えました。 が、次に、どうしたらよいかわからないので、どうか教えていただけないでしょうか。 $arrShippingにdeliv2.phpの値を消さずに、deliv.phpの値をセットする方法をご教授願います。 何卒、お願い申し上げます。 ********************************************************** ちなみに、comfirm.php において、$arrShipping2をつくり【配送先指定2】を表示させることは、一応可能になりましたが、 complete後、、dtb_shipping2には、NULL値のみ、また、dtb_order_tempに作った、配送先住所等の項目は、NULL(comfirm.phpの時点でもNULL) 以下 LC_Page_Shopping_Deliv2.php内記述の 'shipping2'を 'shipping'にしないとcomfirm.phpに表示が出来ない症状がでております。 ************************* /** * お届け先2チェックの値に応じて, お届け先2情報を保存する. * * 会員住所2がチェックされている場合は, 会員情報からお届け先を取得する. * その他のお届け先2がチェックされている場合は, その他のお届け先2からお届け先を取得する. * お届け先2チェックの値が不正な場合は false を返す. * * @param integer $other_deliv_id22 * @param string $uniqid 受注一時テーブルのユニークID * @param SC_Helper_Purchase $objPurchase SC_Helper_Purchase インスタンス * @param SC_Customer $objCustomer SC_Customer インスタンス * @return boolean お届け先2チェックの値が妥当な場合 true */ function registerDeliv2($other_deliv_id22, $uniqid, &$objPurchase, &$objCustomer, $objAddress2) { GC_Utils_Ex::gfDebugLog('register deliv. deliv_check=' . $deliv_check); $arrValues = array(); // 会員登録住所がチェックされている場合 if ($other_deliv_id22 == 0) { $objPurchase->copyFromCustomer2($arrValues, $objCustomer, 'shipping2'); } // 別のお届け先がチェックされている場合 else { $arrOtherDeliv2 = $objAddress2->getAddress($other_deliv_id22); if (!$arrOtherDeliv2) { return false; } $objPurchase->copyFromOrder2($arrValues, $arrOtherDeliv2, 'shipping2', ''); } $objPurchase->saveShippingTemp2($arrValues, $other_deliv_id22); $objPurchase->saveOrderTemp2($uniqid, $arrValues, $objCustomer); return true; } 長々とすみません。 どうぞよろしくお願いします。 |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |