EC-CUBE3のデフォルト状態では、ステータスを「発送済み」にした時点の日付が発送日として登録されて、その後変更することができません。
発送日ベースで売上実績を集計したい場合もあるので、発送日を変更できるようにコード修正を行う方法を紹介します。
2つのファイルを修正します。
※EC-CUBEのコアコードを修正しますので、修正前には必ずファイルのバックアップを取っておいてください。
EC-CUBEをバージョンアップをすると今回のカスタマイズコードは消えてしまいますので、ご注意ください。
編集するファイル 1つ目
src/Eccube/Form/Type/Admin/OrderType.php
※パスはEC-CUBE3のインストールフォルダからのパス
カスタマイズコード
OrderType.phpのフォーム生成に「commit_date」を追加します。
実際に追加したのは、下のコードの7行目の「->add(‘commit_date’~」以下の部分。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | ->add('Shippings', 'collection', array( 'type' => 'shipping', 'allow_add' => true, 'allow_delete' => true, 'prototype' => true, )) ->add('commit_date', 'date', array( 'label' => '日付', 'required' => false, 'input' => 'datetime', 'widget' => 'single_text', 'format' => 'yyyy-MM-dd', 'empty_value' => array('year' => '----', 'month' => '--', 'day' => '--'), )); |
編集するファイル 2つ目
src/Eccube/Resource/template/admin/Order/edit.twig
※パスはEC-CUBE3のインストールフォルダからのパス
カスタマイズコード
edit.twigの241行目の発送日を表示している部分を以下のように修正。
※修正ついでに、時間の入力は手間なので、日付のみで登録・表示されるようにしています。
1 2 3 4 5 6 7 | <p id="number_info_box__commit_date"><svg class="cb cb-clock"> <use xlink:href="#cb-clock" /></svg>発送日:{{ Order.commit_date ? Order.commit_date|date("Y/m/d") : '' }}</p> {% if Order.commit_date is not empty %} <p id="input_commit_date"> {{ form_widget(form.commit_date, {'attr': {'class': 'input_cal'}}) }} {{ form_errors(form.commit_date) }} </p> {% endif %} |
紹介時のEC-CUBEのバージョン
EC-CUBE 3.0.18
EC-CUBE3 キャッシュのクリア
twigファイルを修正したあとは、必ずキャッシュをクリアしてください。
キャッシュクリアの方法は、管理画面の「コンテンツ管理」>「キャッシュ管理」で、twigにチェックを入れて「キャッシュ削除」ボタンを押します。