IT女子のお気に入りフォルダ

管理人の備忘録と実践を兼ねた(出来るだけ)役に立つ情報を配信するブログです。

[EC-CUBE2.13]ご注文の流れフォームに任意の入力項目を追加する

注文フォームで任意の入力項目を増やす方法のメモです。
今回は、商品詳細ページで入力項目を設けるのではなく、ご注文の流れの中で入力項目を増やします。商品毎ではなく注文毎になります。
例えば、熨斗とかメッセージカードとか(のしだけなら無料プラグインがあるようですが)。

手順

  1. テーブルに追加項目のカラムを追加
  2. LC_Page_Shopping_Paymentの拡張クラスを変更
  3. 入力画面と確認画面に項目を追加
  4. 受注完了メールに追加

テーブルに追加項目のカラムを追加

以下のテーブルにカラムを追加します。
・dbd_order
・dbd_order_temp

LC_Page_Shopping_Paymentの拡張クラスを変更

data/class/pages/shopping/LC_Page_Shopping_Payment.phpの「lfInitParam」
を参考にしながら、
data/class_extends/page_extends/shopping/LC_Page_Shopping_Payment_Ex.php
に以下のように「lfInitParam」を追加し、
$objFormParam->addParam()に項目を増やします。

<変更ファイル>
data/class_extends/page_extends/shopping/LC_Page_Shopping_Payment_Ex.php

public function lfInitParam(&$objFormParam, $deliv_only, &$arrShipping)
{
	parent::lfInitParam($objFormParam, $deliv_only, $arrShipping);

	//追加項目
	$objFormParam->addParam('追加項目名', 'custom_name', STEXT_LEN, 'KVa', array('EXIST_CHECK', 'NO_SPTAB', 'SPTAB_CHECK', 'MAX_LENGTH_CHECK'));

	$objFormParam->setParam($arrShipping);
	$objFormParam->convParam();
}

入力チェックの内容は追加する項目に合わせてカスタマイズしてください。

入力画面と確認画面に項目を追加

ご注文の流れフォームに項目を追加します。

<変更ファイル> ※PC版の場合
入力画面:data/Smarty/templates/default/shopping/payment.tpl
確認画面:data/Smarty/templates/default/shopping/comfirm.tpl

※スマホ、モバイルも同じ要領です。

受注完了メールに追加

注文後に自動配信されるメールにも追加項目が表示されるようにします。

<変更ファイル>
mail_templates/order_mail.tpl

管理画面の受注管理でも追加項目を増やしておくと親切だと思います。
その方法はまた別の機会に。