質問 > 管理機能 > 配送業者変更時のお届け時間初期化について |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
guragura |
投稿日時: 2023/9/13 14:48
対応状況: 確認中
|
半人前 登録日: 2022/12/5 居住地: 投稿: 16 |
配送業者変更時のお届け時間初期化について [EC-CUBE] 4.1.2
[レンタルサーバ] Zenlogic [OS] CentOS 8 [PHP] 7.4.30 [データベース] MySQL 5.7 [WEBサーバ] Apache 2.4 [ブラウザ] chrome 117.0.5938.48 [導入プラグインの有無] 有 ・PGマルチペイメントサービス決済プラグイン 1.0.14 ・Securitychecker4 4.1.1 ・いつも reCAPTCHA 1.4 ・ゲスト購入無効化プラグイン 1.0 [カスタマイズの有無] 無 [現象] お世話になっております。 現在運用中のECサイトにて、入ってきた注文の配送業者を変更する運用を開始しようと進めております。 その検討の中でお客様には「その他」(しか選べない)で登録して頂き、そのあとにこちら側で配送業者を変えるということを考えております。 管理画面から対象注文の配送業者を変更するとお届け時間(ユーザーが指定した時間)がデフォルト(指定なし)に変わってしまいます。 これを変えないようにする場合どう修正するべきかご教示頂けますでしょうか。 ※ どの配送業者も同じ時間にする方向で考えています。 素人考えで思いついたのが、以下の箇所をコメントアウトすることでした。 この修正も問題ないか見て頂けますと幸いです。 ・対象ファイル ~\Eccube\Resource\template\admin\Order\shipping.twig 以下の箇所をコメントアウト var times = {{ shippingDeliveryTimes|raw }}; $("select[id$='_Delivery']").on('change', function() { var deliveryId = $(this).val(); var $shippingDeliveryTime = $(this).parents('.card-body').find("select[id$='_DeliveryTime']"); $shippingDeliveryTime.find('option').remove(); $shippingDeliveryTime.append($('<option></option>').val('').text('{{ 'admin.common.select__unspecified'|trans }}')); if (typeof(times[deliveryId]) !== 'undefined') { for (var timeId in times[deliveryId]) { timeValue = times[deliveryId][timeId]; $shippingDeliveryTime.append($('<option></option>') .val(timeId) .text(timeValue)); } } }); |
mcontact |
投稿日時: 2023/9/13 15:52
対応状況: −−−
|
神 登録日: 2022/1/22 居住地: 投稿: 1535 |
Re: 配送業者変更時のお届け時間初期化について > 現在運用中のECサイトにて、入ってきた注文の配送業者を変更する運用を開始しようと進めております。
> その検討の中でお客様には「その他」(しか選べない)で登録して頂き、そのあとにこちら側で配送業者を変えるということを考えております。 単純に、「管理画面>設定>店舗設定>配送方法設定」から 変更予定の配送種別の名称変更等を行えばよいのではないでしょうか?
|
guragura |
投稿日時: 2023/9/13 16:00
対応状況: 確認中
|
半人前 登録日: 2022/12/5 居住地: 投稿: 16 |
Re: 配送業者変更時のお届け時間初期化について ご返信ありがとうございます。
私の言葉が足りませんでした。申し訳ございません。 >単純に、「管理画面>設定>店舗設定>配送方法設定」から >変更予定の配送種別の名称変更等を行えばよいのではないでしょうか? お客様が注文を入力する際は「その他」とし、 出荷案内を出す際にこちら側で配送業者を変更してしまうことを考えております。 ※ 注文入力時の配送方法は「その他」だけ表示し、非表示状態で配送業者1、配送業者2を作っておき、管理画面上から変更する。 これを実施した場合、例)その他、お届け時間:13:00→配送業者1、お届け時間:指定なし に現状変わってしまう という内容の相談になります。 お手数ですが、よろしくお願い致します。 ##2023/09/13 16:17 追記 お客様が設定したお届け場所、日付、時間により配送業者をこちら側で判断する必要がでてきたため、一度こちらで変える必要が出てきました。 |
h_tanaka |
投稿日時: 2023/9/14 9:49
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: 配送業者変更時のお届け時間初期化について お届け時間は配送業者ごとの設定になりますので、配送業者を変更したときに紐づくお届け時間に変更する必要があります。
javascript でも PHP でも実装可能と思います。 (例) 配送業者A 1午前 2午後 配送業者B 3午前 4午後 配送業者をAからBに変更したときに、お届け時間を1から3に変更する
|
guragura |
投稿日時: 2023/9/19 9:49
対応状況: 確認中
|
半人前 登録日: 2022/12/5 居住地: 投稿: 16 |
Re: 配送業者変更時のお届け時間初期化について ☆のような修正でよいでしょうか。整え方も分からず見づらく、
素人質問で申し訳ございません。 ① Eccube\Resource\template\admin\Order\edit.twig 前 var times = {{ shippingDeliveryTimes|raw }}; $("select[id$='_Delivery']").on('change', function() { var deliveryId = $(this).val(); var $shippingDeliveryTime = $(this).parents('.card-body').find("select[id$='_DeliveryTime']"); $shippingDeliveryTime.find('option').remove(); $shippingDeliveryTime.append($('<option></option>').val('').text(trans('admin.common.select__unspecified'))); if (typeof(times[deliveryId]) !== 'undefined') { for (var timeId in times[deliveryId]) { timeValue = times[deliveryId][timeId]; $shippingDeliveryTime.append($('<option></option>') .val(timeId) .text(timeValue)); } } }); 後 var times = {{ shippingDeliveryTimes|raw }}; $("select[id$='_Delivery']").on('change', function() { var deliveryId = $(this).val(); var $shippingDeliveryTime = $(this).parents('.card-body').find("select[id$='_DeliveryTime']"); ☆ const wkDeliveryTime = $(this).parents('.card-body').find("select[id$='_DeliveryTime']"); ☆ const selectIdx = wkDeliveryTime[0].selectedIndex; $shippingDeliveryTime.find('option').remove(); $shippingDeliveryTime.append($('<option></option>').val('').text('{{ 'admin.common.select__unspecified'|trans }}')); if (typeof(times[deliveryId]) !== 'undefined') { for (var timeId in times[deliveryId]) { timeValue = times[deliveryId][timeId]; $shippingDeliveryTime.append($('<option></option>') .val(timeId) .text(timeValue)); } } ☆ if (selectIdx <= wkDeliveryTime[0].options.length -1){ ☆ wkDeliveryTime[0].options[selectIdx].selected = true; ☆ } }); Eccube\Resource\template\admin\Order\shipping.twig 前 // 配送業者選択時にお届け時間を設定 var times = {{ shippingDeliveryTimes|raw }}; $('#order_Shipping_Delivery').change(function() { var deliveryId = $(this).val(); var $shippingDeliveryTime = $('#order_Shipping_DeliveryTime'); $shippingDeliveryTime.find('option').remove(); $shippingDeliveryTime.append($('<option></option>').val('').text('指定なし')); if (typeof(times[deliveryId]) !== 'undefined') { for (var timeId in times[deliveryId]) { timeValue = times[deliveryId][timeId]; $shippingDeliveryTime.append($('<option></option>') .val(timeId) .text(timeValue)); } } }); 後 var times = {{ shippingDeliveryTimes|raw }}; $('#order_Shipping_Delivery').change(function() { ☆ var element = document.getElementById( "order_Shipping_DeliveryTime" ) ; ☆ const selectIdx = element.selectedIndex; var deliveryId = $(this).val(); var $shippingDeliveryTime = $('#order_Shipping_DeliveryTime'); $shippingDeliveryTime.find('option').remove(); $shippingDeliveryTime.append($('<option></option>').val('').text('{{ 'admin.common.select__unspecified'|trans }}')); if (typeof(times[deliveryId]) !== 'undefined') { for (var timeId in times[deliveryId]) { timeValue = times[deliveryId][timeId]; $shippingDeliveryTime.append($('<option></option>') .val(timeId) .text(timeValue)); } } ☆ if (selectIdx <= element.options.length -1){ ☆ element.options[selectIdx].selected = true; ☆ } }); |
h_tanaka |
投稿日時: 2023/9/19 12:54
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 愛媛県 投稿: 1850 |
Re: 配送業者変更時のお届け時間初期化について コードレビュアーではないので、実際に試してみてください。
うまくいかなければなるたけ自力で調査してもらって、どうしてもわからなければこちらで質問してください。 また、自己解決された場合は同じ問題に会われた方のために解決方法を記載してもらえると幸いです。
|
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |