質問 > フロント機能 > 非会員でお届け先を指定した場合、お届け先1とお届け先2が表示される |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kohama |
投稿日時: 2015/8/28 16:30
対応状況: −−−
|
新米 登録日: 2015/8/24 居住地: 投稿: 3 |
非会員でお届け先を指定した場合、お届け先1とお届け先2が表示される お世話になります。
まったくのど素人です。長文で申し訳ございません。 どうか助けてください。 [EC-CUBEバージョン]2.13.2 [レンタルサーバ]ロリポップ [OS]windows7 [PHPバージョン]PHP 5.3.15 [DBバージョン]MySQL 5.6.23 [現象]受注管理→編集→対応状況変更→この内容で登録するボタンで内容を登録すると お届け先1(全て空データ)、お届け先2(指定されたデータ)の状態で保存される バージョンが違っていますが、過去スレッドで同じような件で修正されておりましたが 変更のあったファイルをチェックしましたが、修正された状態のファイルになっており 知識も無いため困りはてております。 会員登録をしないで購入し、お届け先を注文者と別にする場合の・・・・ http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=10962&forum=10 [手順] 1.非会員でお届け先を指定して注文する ※銀行振込、時間指定もしています 2.受注画面で編集のリンクをクリックして受注編集画面を表示させる ※この時点では、注文者情報のお届け先1にのみ登録された状態 3.対応状況のプルダウンから入金済を選択する 4.「この内容で登録する」ボタンをクリックして登録する [現象] お届け先情報のお届け先1とお届け先2が登録される ※お届け先1は全ての項目が空データまたはデフォルト お届け先2はお届け先商品情報と全ての項目が受注時のお届け先の内容 [補足] 手順2.時、データベースの dtb_shippingは一つしか登録されていません。 手順4.を行うとdtb_shippingに「shipping_id」0(null値のもの),1の2つ登録されます。 [補足2] 手順1.のお届け先の指定以外の各指定も何にしても変わらないと思います。(クレジット払いでの確認をしておりません) 手順3.の動作は何を変更しても現象は変わらないので、省いてもいいかもしれません。 編集画面から「検索画面に戻る」ボタンをクリックして受注一覧を表示させた場合は、 現象のようにはなりません。 [補足3] 会員からの受注の場合は上記現象は起こりません。 [当環境] カスタマイズしています。 ・order_statusの項目を追加し、デフォルト名も変更 id name rank 1 新規受付 :0 2 入金待ち :1 3 キャンセル:14 4 B/O :4 5 発送済 :9 6 入金済 :2 7 オーソリNG:12 8 入荷待ち :3 9 加工 :5 10 出荷済 :6 11 発送準備中:7 12 未処理 :10 13 保留 :13 14 処理済 :11 15 発送待ち :8 ・複数のお届け先の機能はfalse ・edit.tpl <!--▼お届け先情報ここから--> <a class="btn-normal" href="java script:;" onclick="fnMultiple();">複数のお届け先を指定する</a> の部分を削除 <!--▼お届け先情報ここから--> の項目に <tr> <th>お届け日時希望</th> <td> <!--{assign var=key value="shipping_delivdes"}--> <span class="attention"><!--{$arrErr[$key][$shipping_index]}--></span> <input type="text" name="<!--{$key}-->[0]" value="<!--{$arrForm[$key].value[0]|h}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="60" class="box60" /> </td> </tr> と <tr> <th>お問い合わせ伝票番号</th> <td> <!--{assign var=key value="shipping_num"}--> <span class="attention"><!--{$arrErr[$key][$shipping_index]}--></span> <input type="text" name="<!--{$key}-->[0]" value="<!--{$arrForm[$key].value[0]|h}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="60" class="box60" /> </td> </tr> を追加 ・status.tpl edit.tplで変更した部分に関わる部分と、編集のリンクとメールのリンクを対応状況変更に表示されるリスト項目に追加 <td class="center"><a href="?" onclick="eccube.changeAction('<!--{$smarty.const.ADMIN_ORDER_EDIT_URLPATH}-->'); eccube.setModeAndSubmit('pre_edit', 'order_id', '<!--{$arrStatus[cnt].order_id}-->'); return false;"><span class="icon_edit">編集</span></a></td> <td class="center"><a href="?" onclick="eccube.changeAction('<!--{$smarty.const.ADMIN_ORDER_MAIL_URLPATH}-->'); eccube.setModeAndSubmit('pre_edit', 'order_id', '<!--{$arrStatus[cnt].order_id}-->'); return false;"><span class="icon_mail">メール</span></a></td> ・プラグインは「テンプレートおきにめすまま2.0.1」と「イオンクレジットサービス イオンレジ決済プラグイン2.0」の 2つを導入しております。 [希望動作] お届け先指定があった場合、お届け先1に登録されてほしい。 この先複数お届けの機能は使うことはないので、それに関することが動作を含めて表示してほしくない。 カスタマイズについては、動作を著しく変えるようなことはしていないと思うのですが、 見よう見まねで変更したので、何か間違ったことをしているかもしれません。 どうかよろしくお願いします。 |
tsuji |
投稿日時: 2015/9/2 10:18
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 非会員でお届け先を指定した場合、お届け先1とお届け先2が表示される kohama 様
関係性は低いかもしれませんが、念のために質問させてください。 プラグインやモジュールは何か入れておられますか? EC-CUBEのデフォでは同様の問題が起きないので、 まず、エラーが起きたページのプログラムを比較して タイプミス等がないかを確かめてみてください。 現象を見てみると、はっきりとしたことはわかりませんが、 表示時に何らかの形でshipping_idが0のデータを1にして 表示しているようにも思えます。 そのあたりも調べてみるとよいと思います。
|
kohama |
投稿日時: 2015/9/3 14:42
対応状況: −−−
|
新米 登録日: 2015/8/24 居住地: 投稿: 3 |
Re: 非会員でお届け先を指定した場合、お届け先1とお届け先2が表示される tsuji様
ご返信本当にありがとうございます。 知識がなく、勘違いなことをしているかもしれません。 プラグイン、モジュールは「テンプレートおきにめすまま2.0.1」と「イオンクレジットサービス イオンレジ決済プラグイン2.0」の 2つのみ導入しております。 現象が起こるのは /data/Smarty/templates/admin/order/edit.tpl 編集画面でオーダーステータスを変更して「この内容で登録する」ボタンをクリックした時で、 ステータス画面からチェックボックスにチェックを入れてオーダーステータスを 変更した場合には現象はおこりません。 なので、edit.tplでの記述が間違っていると考えたらいいのでしょうか? 他にedit.tplに関わるPHPファイルなども確認した方がいいのでしょうか? edit.tplで、デフォルトと違う部分は、 ?デフォルトでの最下部の <div class="btn-area"> <ul> <!--{if count($arrSearchHidden) > 0}--> <li><a class="btn-action" href="java script:;" onclick="eccube.changeAction('<!--{$smarty.const.ADMIN_ORDER_URLPATH}-->'); eccube.setModeAndSubmit('search','',''); return false;"><span class="btn-prev">検索画面に戻る</span></a></li> <!--{/if}--> <li><a class="btn-action" href="java script:;" onclick="return fnFormConfirm(); return false;"><span class="btn-next">この内容で登録する</span></a></li> </ul> </div> を画面上下に表示したく、 <div id="order" class="contents-main">と <!--▼お客様情報ここから--> <table class="form"> の間にそっくりそのままコピーして挿入している。 ?javascriptで複数登録が邪魔をしているのかと思い // function fnMultiple() { // eccube.openWindow('<!--{$smarty.const.ROOT_URLPATH}--><!--{$smarty.const.ADMIN_DIR}-->order/multiple.php', 'multiple', '600', '500', {menubar:'no'}); // document.form1.anchor_key.value = "shipping"; // document.form1.mode.value = "multiple"; // document.form1.submit(); // return false; // } 無効になっているか不安なのですが「//」を入力 ?編集画面からメールを送信可能にするために <!--▼お客様情報ここから--> <table class="form"> <!--{if $tpl_mode != 'add'}--> <tr> <th>帳票出力</th> <td><a class="btn-normal" href="java script:;" onclick="eccube.openWindow('pdf.php?order_id=<!--{$arrForm.order_id.value|h}-->','pdf_input','615','650'); return false;">帳票出力</a> <a class="btn-normal" href="java script:;" onclick="eccube.changeAction('<!--{$smarty.const.ADMIN_ORDER_MAIL_URLPATH}-->'); eccube.setModeAndSubmit('pre_edit', 'order_id', '<!--{$arrForm.order_id.value|h}-->'); return false;">メール</a></td> </tr> <!--{/if}--> 帳票のボタンの隣に <a class="btn-normal" href="java script:;" onclick="eccube.changeAction('<!--{$smarty.const.ADMIN_ORDER_MAIL_URLPATH}-->'); eccube.setModeAndSubmit('pre_edit', 'order_id', '<!--{$arrForm.order_id.value|h}-->'); return false;">メール</a></td> を挿入し、メールボタンを表示 ?受注商品情報の表示順を変えるために <!--{if $smarty.const.USE_POINT !== false}--> <tr> <th colspan="5" class="column right">使用ポイント</th> <td class="right"> <!--{assign var=key value="use_point"}--> <span class="attention"><!--{$arrErr[$key]}--></span> <input type="text" name="<!--{$key}-->" value="<!--{$arrForm[$key].value|default:0|h}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="5" class="box6" /> pt </td> </tr> <tr> <th colspan="5" class="column right">お支払い合計</th> <td class="right"> <span class="attention"><!--{$arrErr.payment_total}--></span> <!--{$arrForm.payment_total.value|default:0|number_format}--> 円 </td> </tr> と使用ポイントとお支払合計の部分をそのまま入れ替え ?お客さまからの日時の指定がされている場合、文字で「最短」「時間指定」など 入力可能にし、送付のお知らせメールで反映させるために データベースdtb_shippingに 「shipping_delivdes(種別:text, 照合順序:utf8_general_ci,ヌル(NULL):いいえ,デフォルト値:なし)」を追加して 住所とお届け日の間に <tr> <th>お届け日時希望</th> <td> <!--{assign var=key value="shipping_delivdes"}--> <span class="attention"><!--{$arrErr[$key][$shipping_index]}--></span> <input type="text" name="<!--{$key}-->[0]" value="<!--{$arrForm[$key].value[0]|h}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="60" class="box60" /> </td> </tr> 上記を挿入 ?配達電表番号を入力し、送付のお知らせメールに反映させるために データベースdtb_shippingの 「shipping_num(種別:text, 照合順序:utf8_general_ci,ヌル(NULL):はい,デフォルト値:NULL)」を そのまま活用して 編集画面のお届け先情報の最後に <tr> <th>お問い合わせ伝票番号</th> <td> <!--{assign var=key value="shipping_num"}--> <span class="attention"><!--{$arrErr[$key][$shipping_index]}--></span> <input type="text" name="<!--{$key}-->[0]" value="<!--{$arrForm[$key].value[0]|h}-->" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key]|sfGetErrorColor}-->" size="60" class="box60" /> </td> </tr> を追加 上記6か所を変更・追加したのですが、変更内容もデフォルトのコピーで 読み込みしたいデーターを変えたくらいで、スペルチェックもしましたが 違った部分もないと思います。 ??に関しては、見よう見まねでやったので、影響があるかもしれません。 他のファイルなども影響していると考えた方がいいということでしょうか。 お手数をおかけしますが、ご教示お願いしたします。 |
tsuji |
投稿日時: 2015/9/4 10:54
対応状況: −−−
|
仙人 登録日: 2013/11/19 居住地: 投稿: 958 |
Re: 非会員でお届け先を指定した場合、お届け先1とお届け先2が表示される kohama 様
> 編集画面でオーダーステータスを変更して「この内容で登録する」ボタンをクリックした時で、 > ステータス画面からチェックボックスにチェックを入れてオーダーステータスを > 変更した場合には現象はおこりません。 > なので、edit.tplでの記述が間違っていると考えたらいいのでしょうか? > 他にedit.tplに関わるPHPファイルなども確認した方がいいのでしょうか? 編集画面のPHPファイルにカスタマイズしておられるのであれば、 確認したほうがよいかもしれません。 テンプレートで気づいた点ですが、 引用:
↑の[0]の部分ですが、この場合、常にshipping_idが0のものを更新 するようになると思いますので、[0]は[<!--{$shipping_index}-->]に 変更したほうがよいと思います。 (shipping_delivdesも同様です)
|
kohama |
投稿日時: 2015/9/4 16:15
対応状況: −−−
|
新米 登録日: 2015/8/24 居住地: 投稿: 3 |
Re: 非会員でお届け先を指定した場合、お届け先1とお届け先2が表示される tsuji様
早速のご返信ありがとうございます。 引用:
上記の箇所を <tr> <th>お届け日時希望</th> <td> <!--{assign var=key value="shipping_delivdes"}--> <span class="attention"><!--{$arrErr[$key][$shipping_index]}--></span> <input type="text" name="<!--{$key}-->[<!--{$shipping_index}-->]" value="<!--{$arrShipping[$key]|h}-->" size="60" class="box60" maxlength="<!--{$arrForm[$key].length}-->" style="<!--{$arrErr[$key][$shipping_index]|sfGetErrorColor}-->" /> </td> </tr> <tr> <th>お届け時間</th> <td> <!--{assign var=key value="time_id"}--> <span class="attention"><!--{$arrErr[$key][$shipping_index]}--></span> <select name="<!--{$key}-->[<!--{$shipping_index}-->]" style="<!--{$arrErr[$key][$shipping_index]|sfGetErrorColor}-->"> <option value="">指定無し</option> <!--{html_options options=$arrDelivTime selected=$arrShipping[$key]}--> </select> </td> </tr> に変更しました。 『この場合、常にshipping_idが0のものを更新』のアドバイスでもしかしたらここが原因なのかと思い、 edit.tplを修正後再度、注文を入れ現象が起こらないか手順を再現したところ、 無事に現象は起こらず、編集画面から入力した内容は保存され、 お客様に送信するメールにも反映されていました。 やはり、訳もわからず見よう見まねで追加したので、 この2項目を登録するのに、shipping_idが0のもの(注文者の受注内容)が 上書きされていたことに気付かず、焦るばかりでした。 凡ミスのようなことで大変お騒がせし申し訳ございません。 と共に感謝の気持ちでいっぱいです。 半分挫折しておりましたが、もうひと踏ん張り頑張ろうと思います。 本当にありがとうございます。 edit.tplに関わるPHPファイルも確認後、もう一度動作確認を完了後 解決済にさせていただきたいと思います。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |