バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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;
}

長々とすみません。
どうぞよろしくお願いします。


yuh
投稿日時: 2018/9/6 13:37
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1512
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします
何が目的でその処理をやりたいのかがわかりませんが、
deliv2.phpの処理で共通処理を使って処理を書いてるのであれば、当然deliv.phpで保存した内容を上書きするようになります。

$objPurchase->saveShippingTemp部分をdeliv2用に変更すればいいかと思いますが、他にもそのデータを保存するようにしたり色々しなければだめだとは思います。


----------------
ec-cube2系の速度UPしてみました。(商品数:100万件)
https://speedtest2.ec-lab.net/products/list.php?category_id=15
ec-cube2系最速!(自称)

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/7 0:03
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1512
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします
confirm.phpに渡った時に$_SESSIONの値ってどのようになってますか?


----------------
ec-cube2系の速度UPしてみました。(商品数:100万件)
https://speedtest2.ec-lab.net/products/list.php?category_id=15
ec-cube2系最速!(自称)

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 15:42
対応状況: −−−
登録日: 2013/1/9
居住地: 大阪
投稿: 1512
Re: カートから購入完了までのLC_Page_Shopping_Delivについてお伺いします
<!--{$smarty.session|@var_dump}-->

で確認してみてください


----------------
ec-cube2系の速度UPしてみました。(商品数:100万件)
https://speedtest2.ec-lab.net/products/list.php?category_id=15
ec-cube2系最速!(自称)

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)の下に日時の選択欄 が出てきています。

複数配送判定されているとは思うのですが、判定材料が何かとどこで格納されたのかがわからない状態です。

お手数をおかけしますが、なにとぞよろしくお願い申し上げます。





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等の知識なしに加え、質問の内容等、わかりにくいところが多く大変恐縮ですが、今後ともよろしくお願い申し上げます。

この度は、誠にありがとうございました。

追伸:ホント神です。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は32,115名です
総投稿数は87,532件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1774
4
yuh
1512
5
468
1224
6
red
1178
7
umebius
1007
8
fukap
907
9
shutta
827
10
tsuji
815
11 ramrun 789
12 karin 656
13
tao_s
651
14 sumida 641
15
homan
633
16 DELIGHT 571
17
h_tanaka
566
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.