できるだけ楽チンにやろうと思うと、既存のフィールドを利用するのが一番です。
今回は、商品ステータスに「お問合せ商品」を追加して、それで条件分岐させる方法を試してみました。
1.管理画面>システム設定>マスターデータ管理 で、mtb_status を表示。新規レコードを追加します。
2.商品ステータスアイコンの設定を行います。mtb_status_image で新規レコードを追加します。
3.他のステータスアイコンに習って、アイコン画像を作成しておいてください。場所は、html/user_data/packages/default/img/icon ディレクトリです。
4.管理画面>商品メニュー から、お問合せにしたい商品の編集画面を開き、商品ステータスで、「お問合せ商品」にチェックマークを入れて登録します。
5.data/Smarty/templates/default/products/list.tpl を以下のように修正します。
166行目付近にコードを追加します。$status の数値は、商品ステータスIDです。
</li> <!--{if $status eq '6'}--><!--{assign var=ask_flg value=1}--><!--{/if}--> <!--{/foreach}-->
200行目付近から始まる、お買い物カゴ部分のコードの前後に以下のコードを追加します。
<!--{if $ask_flg eq '1'}--> <p align="right"><a href="<!--{$smarty.const.ROOT_URLPATH}-->contact/">この商品の購入やお問合せはこちらよりお問合せください。</a></p> <!--{assign var=ask_flg value=''}--> <!--{else}--> <!--▼買い物かご-->
260行目付近に、終了IFを追加します。
<!--{/if}-->
その他、お問合せ商品で非表示にしたい項目は、
<!--{if $ask_flg ne '1'}-->非表示にしたい項目<!--{/if}-->
でいけるんじゃないかと思います。
6.data/Smarty/templates/default/products/detail.tpl を以下のように修正します。
85行目あたりに以下のコードを挿入
</li> <!--{if $status eq '6'}--><!--{assign var=ask_flg value=1}--><!--{/if}--> <!--{/foreach}--> <!--{/if}--> <!--▲商品ステータス-->
194行目あたりに以下のコードを挿入
<!--▼買い物かご--> <!--{if $ask_flg eq '1'}--> <p align="right"><a href="<!--{$smarty.const.ROOT_URLPATH}-->contact/">この商品の購入やお問合せはこちらよりお問合せください。</a></p> <!--{assign var=ask_flg value=''}--> <!--{else}--> <div class="cart_area clearfix">
290行目あたりに以下のコードを挿入
<!--{/if}-->
細かいところはチェックしていないので、これだけでOKという完成されたカスタマイズ例ではありません。でも一応は動作するみたいなので、参考にはなると思います。
お世話になります。
こちらの修正を試していたものです。
非表示にしたい項目
商品一覧から通常価格を非表示としたかったため、price02_defaultもしくはsale_priceと入力すればよろしかったのでしょうか?
どうか宜しくお願い致します。
ご質問ありがとうございます。
商品一覧を非表示としたいとのことですので、
data/Smarty/templates/default/products/detail.tpl の通常価格を表示させている部分を
のようにくくってやればお問合せ商品に設定した商品のみ通常価格が非表示になると思います。
yuzu様
お世話になります。
お返事ありがとうございます。早速試してみます。
yuzu様
早速修正を試みてみました。
お教えいただきました修正内容で、detail&listページを修正したところ理想のものにすることができました。ありがとうございました。