EC-CUBE を利用していると「ここに項目を増やしたい」ということがよくあります。
今回は、受注情報に発送伝票Noを入れられるカラムを追加する例をご紹介します。
伝票番号が入力できるようになれば、伝票番号入りの「発送しましたメール」を出すのが楽になりますよね!
最終的には、CSVファイルで読み込むことが目標です。
EC-CUBE2.13系は複数のお届け先に対応しているので、伝票番号はお届け先ごとに入れる必要があります。
つまり送り状番号は、dtb_order テーブルではなく、dtb_shipping テーブルに保存します。
1.データベースにアクセスする
データベースが MySQL なので、phpMyAdmin などを使って、dtb_shipping テーブルに、カラムを追加します。
通常、phpMyAdmin は、レンタルサーバーのコントロールパネルなどから入れます。
ごくたまにですが、phpMyAdmin はインストールしていないので、自分でインストールしてね、というレンタルサーバーもあるので注意です。
今回は伝票番号を入れるので、deliv_number という名前にしました。
2.テンプレートを修正する
data/Smarty/templates/admin/order 内の edit.tpl を開きます。
607行目あたりにお届け先情報のテーブルがあるので、743行目あたりのテーブルの最後に行を追加します。
行数はバージョンによって違うかもしれないので、目安ということで。
1 2 3 4 5 6 7 8 |
<tr> <th>ヤマト伝票番号</th> <td> <!--{assign var=key1 value="deliv_number"}--> <span class="attention"><!--{$arrErr[$key1][$shipping_index]}--></span> <input type="text" name="<!--{$key1}-->[<!--{$shipping_index}-->]" value="<!--{$arrShipping[$key1]|h}-->" maxlength="<!--{$arrForm[$key1].length}-->" style="<!--{$arrErr[$key1][$shipping_index]|sfGetErrorColor}-->" size="30" class="box30" /> </td> </tr> |
3.プログラムを修正する
このままだと、数字を入力しても保存されないので、プログラムも変更します。
data/class/pages/admin/order 内の LC_Page_Admin_Order_Edit.php を開きます。
※本当は、data/class_extends/page_extends/admin/order/LC_Page_Admin_Order_Edit_Ex.php に該当部分を丸ごとコピーすべきですが、EC-CUBE3 も出たことですし。もうバージョンアップする予定もないので。
修正する箇所は2か所です。$arrShippingKeys に、「’deliv_number’」を追加します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
public $arrShippingKeys = array( 'shipping_id', 'shipping_name01', 'shipping_name02', 'shipping_kana01', 'shipping_kana02', 'shipping_company_name', 'shipping_tel01', 'shipping_tel02', 'shipping_tel03', 'shipping_fax01', 'shipping_fax02', 'shipping_fax03', 'shipping_pref', 'shipping_country_id', 'shipping_zipcode', 'shipping_zip01', 'shipping_zip02', 'shipping_addr01', 'shipping_addr02', 'shipping_date_year', 'shipping_date_month', 'shipping_date_day', 'time_id', 'deliv_number', ); |
次に、lfInitParam で、$objFormParam に、addParam します。
447行目あたり。
1 2 3 4 5 6 7 8 9 |
$objFormParam->addParam('お届け日(月)', 'shipping_date_month', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('お届け日(日)', 'shipping_date_day', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('お届け日', 'shipping_date', STEXT_LEN, 'KVa', array('SPTAB_CHECK', 'MAX_LENGTH_CHECK')); $objFormParam->addParam('ヤマト伝票番号', 'deliv_number'); $objFormParam->addParam('商品規格ID', 'shipment_product_class_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK')); $objFormParam->addParam('商品コード', 'shipment_product_code'); $objFormParam->addParam('商品名', 'shipment_product_name'); $objFormParam->addParam('規格名1', 'shipment_classcategory_name1'); |
これで完成。
あとは、管理画面で番号を入れてみて、保存されることを確認します。
長野県駒ヶ根市在住。ネットショップ構築とネットショップ運営サポートをしています。このサイトでは、ユーザーさん向けに役立つIT情報や、技術情報のメモを公開しています。詳しいプロフィール