いろいろな実装方法があると思いますが、以下のような仕様を想定したいと思います。
・商品詳細ページに、「この商品に関して問い合わせをする」というテキストリンクを設置
・そのテキストリンクをクリックすると、EC-CUBE標準のお問い合わせフォームへ移動。ただし商品IDが引き渡されるようにする。
・お問い合わせフォームに渡された商品IDはお問い合わせメールにも載るようにする。
1.data/Smarty/templates/default/products/detail.tpl の適当な箇所に下の一行を追加。
<a href="/contact/index.php?product_id=<!--{$arrProduct.product_id|u}-->">この商品に関して問い合わせをする</a>
2.data/Smarty/templates/default/contact/index.tpl のお問い合わせテーブル内の適当な箇所に下の一行を追加。
<tr> <th>お問い合わせの商品ID</th> <td> <span class="attention"><!--{$arrErr.product_id}--></span> <input type="text" class="box120" name="product_id" value="<!--{$arrForm.product_id.value|h|default:$smarty.get.product_id|h}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr.product_id|sfGetErrorColor}-->;" /> </td> </tr>
3.data/Smarty/templates/default/contact/confirm.tpl のお問い合わせ内容確認テーブル内の適当な箇所に下の一行を追加。
<tr> <th>お問い合わせの商品ID</th> <td><!--{$arrForm.product_id.value|u}--></td> </tr>
4.data/Smarty/templates/default/mail_templates/contact_mail.tpl の任意の箇所に下の一行を追加。
■お問い合わせの商品ID :<!--{$arrForm.product_id.value}-->
5.data/class/pages/contact/LC_Page_Contact.php の lfInitParamメソッドに以下の一行を追加。
$objFormParam->addParam('商品ID', 'product_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
いつも大変お世話になっております。
商品IDではわかりにくいので、商品コードを表示するにはどうしたらよいでしょうか?
どうぞよろしくお願いします。
返事遅くなり申し訳ございません。
そうですね、仰る通り、商品IDよりは商品コードの方がわかり良いと思います。
ちょっと考えてみます。
ピンバック: [EC-CUBE 2.12.3] 商品詳細ページから商品問い合わせをできるようにする その2 | NAKWEB × EC-CUBE
山田様
サンプルコードを書いてみましたので、ご参考ください。
https://ec-cube.nakweb.com/blog/2129.html