バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 配送業者変更時のお届け時間初期化について

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
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
居住地:
投稿: 1351
Re: 配送業者変更時のお届け時間初期化について
> 現在運用中のECサイトにて、入ってきた注文の配送業者を変更する運用を開始しようと進めております。
> その検討の中でお客様には「その他」(しか選べない)で登録して頂き、そのあとにこちら側で配送業者を変えるということを考えております。

単純に、「管理画面>設定>店舗設定>配送方法設定」から
変更予定の配送種別の名称変更等を行えばよいのではないでしょうか?


----------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
EC-CUBEインテグレートパートナー【ゴールド】ランク
M&I Works
URL: https://miworks.biz/
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

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
居住地: 愛媛県
投稿: 1682
Re: 配送業者変更時のお届け時間初期化について
お届け時間は配送業者ごとの設定になりますので、配送業者を変更したときに紐づくお届け時間に変更する必要があります。
javascript でも PHP でも実装可能と思います。

(例)
配送業者A 1午前 2午後
配送業者B 3午前 4午後

配送業者をAからBに変更したときに、お届け時間を1から3に変更する


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

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
居住地: 愛媛県
投稿: 1682
Re: 配送業者変更時のお届け時間初期化について
コードレビュアーではないので、実際に試してみてください。
うまくいかなければなるたけ自力で調査してもらって、どうしてもわからなければこちらで質問してください。
また、自己解決された場合は同じ問題に会われた方のために解決方法を記載してもらえると幸いです。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は90,168名です
総投稿数は110,324件です

投稿数ランキング

1
seasoft
7369
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1682
8
red
1571
9
mcontact
1351
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.