EC-CUBEでデフォルトではモバイルサイトとスマートフォンサイトには商品レビュー機能がないので
簡単にレビュー機能を実装できたやり方をメモ

詳しい変更点は後述しますが、
ざっとメモするとデフォルトの商品詳細ページには

    <!--この商品に対するお客様の声-->
    <div id="customervoice_area">
        <h2><img src="<!--{$TPL_URLPATH}-->img/title/tit_product_voice.jpg" alt="この商品に対するお客様の声" /></h2>

        <div class="review_bloc clearfix">
            <p>この商品に対するご感想をぜひお寄せください。</p>
            <div class="review_btn">
                <!--{if count($arrReview) < $smarty.const.REVIEW_REGIST_MAX}-->
                    <!--★新規コメントを書き込む★-->
                    <a href="./review.php"
                        onclick="win02('./review.php?product_id=<!--{$arrProduct.product_id}-->','review','600','640'); return false;"
                        onmouseover="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_comment_on.jpg','review');"
                        onmouseout="chgImg('<!--{$TPL_URLPATH}-->img/button/btn_comment.jpg','review');" target="_blank">
                        <img src="<!--{$TPL_URLPATH}-->img/button/btn_comment.jpg" alt="新規コメントを書き込む" name="review" id="review" /></a>
                <!--{/if}-->
            </div>
        </div>

        <!--{if count($arrReview) > 0}-->
            <ul>
                <!--{section name=cnt loop=$arrReview}-->
                    <li>
                        <p class="voicetitle"><!--{$arrReview[cnt].title|h}--></p>
                        <p class="voicedate"><!--{$arrReview[cnt].create_date|sfDispDBDate:false}--> 投稿者:<!--{if $arrReview[cnt].reviewer_url}--><a href="<!--{$arrReview[cnt].reviewer_url}-->" target="_blank"><!--{$arrReview[cnt].reviewer_name|h}--></a><!--{else}--><!--{$arrReview[cnt].reviewer_name|h}--><!--{/if}--> おすすめレベル:<span class="recommend_level"><!--{assign var=level value=$arrReview[cnt].recommend_level}--><!--{$arrRECOMMEND[$level]|h}--></span></p>
                        <p class="voicecomment"><!--{$arrReview[cnt].comment|h|nl2br}--></p>
                    </li>
                <!--{/section}-->
            </ul>
        <!--{/if}-->
    </div>
    <!--お客様の声ここまで-->

のような記述があると思いますが、
基本的にはこの部分のソースをそれぞれモバイル用とスマートフォン用に最適化させ
あとは
/ec/data/Smarty/templates/default/products/
の中の

  • review.tpl
  • review_complete.tpl
  • review_confirm.tpl

という3つのファイルもそれぞれモバイル用とスマートフォン用に作ってアップさせればOKです

スマートフォン用カスタマイズ

スマートフォン用に関してはjavascriptもCSSもほぼ適用されるので
ほぼ上記のPC用ソースをそのままスマートフォン用の商品詳細ページの
レビューを表示させたい箇所に貼り付け、

  • review.tpl
  • review_complete.tpl
  • review_confirm.tpl

の3つのファイルもサーバーからダウンロードしそのまま
/ec/data/Smarty/templates/sphone/products/
の中にアップロードすれば完成です。
あとは細かい部分などは表示を確認しながらCSSなどで編集すればOK!
・・・たぶん

モバイルサイト用カスタマイズ

モバイルサイト用はjavascriptやCSSが効かない部分があるので少し修正が必要になります。
まず、上記のPC用ソースを

<!--この商品に対するお客様の声-->
<br>
■お客様の声<br>
<hr>
<!--{if count($arrReview) == 0}-->
<center>
まだコメントはありません。
</center>
<!--{else}-->
<!--{section name=cnt loop=$arrReview max=5}-->
投稿日:<!--{$arrReview[cnt].create_date|sfDispDBDate:false}--><br>
投稿者:<!--{if $arrReview[cnt].reviewer_url}--><a href="<!--{$arrReview[cnt].reviewer_url}-->" target="_blank"><!--{$arrReview[cnt].reviewer_name|escape}--></a><!--{else}--><!--{$arrReview[cnt].reviewer_name|escape}--><!--{/if}--><br>
おすすめレベル:<!--{assign var=level value=$arrReview[cnt].recommend_level}--><!--{$arrRECOMMEND[$level]|escape}--><br>
タイトル:<!--{$arrReview[cnt].title|escape}--><br>
内容:<!--{$arrReview[cnt].comment|escape|nl2br}--><br>
<hr>
<!--{/section}-->
<!--{/if}-->

<!--{if count($arrReview) < $smarty.const.REVIEW_REGIST_MAX}-->
<a href="./review.php?product_id=<!--{$arrProduct.product_id}-->">
新規コメントを書き込む
</a>
<br>
投稿内容を確認してから、表示されます。
<!--{/if}-->
<!--お客様の声ここまで-->

のように余計なタグを除いてモバイル用に修正します。
ここで重要なのが

<a href="./review.php?product_id=<!--{$arrProduct.product_id}-->">
新規コメントを書き込む
</a>

という部分で、必ずリンク先を
./review.php?product_id=<!–{$arrProduct.product_id}–>
に変更してください。

あとはスマートフォン用と同じように

  • review.tpl
  • review_complete.tpl
  • review_confirm.tpl

の3つのファイルを
/ec/data/Smarty/templates/mobile/products/
の中にアップロードすれば一応OKなのですが、

モバイル用とスマートフォン用両方に言えることですが

  • review.tpl
  • review_complete.tpl
  • review_confirm.tpl

のファイルをそのままアップすると

            <li><input type="image" onclick=" mode.value='return';" onmouseover="chgImgImageSubmit('<!--{$TPL_URLPATH}-->img/button/btn_back_on.jpg',this)" onmouseout="chgImgImageSubmit('<!--{$TPL_URLPATH}-->img/button/btn_back.jpg',this)" src="<!--{$TPL_URLPATH}-->img/button/btn_back.jpg" alt="戻る"    name="back" id="back" /></li>
            <li><input type="image" onmouseover="chgImgImageSubmit('<!--{$TPL_URLPATH}-->img/button/btn_complete_on.jpg',this)" onmouseout="chgImgImageSubmit('<!--{$TPL_URLPATH}-->img/button/btn_complete.jpg',this)" src="<!--{$TPL_URLPATH}-->img/button/btn_complete.jpg" alt="送信" name="send" id="send" /></li>

などの部分では
画像のパスが変わってしまって画像が表示されませんので、
画像のパスを変更するか、
スマートフォンなら
/ec/user_data/packages/sphone/img/button/の中に同じ名前の画像をアップロード
モバイルなら
/ec/user_data/packages/mobile/img/の中にbuttonフォルダを作ってその中に同じ名前の画像をアップロード
すれば画像が表示されます。
もちろんテンプレートを好きなように直接いじってもOK

※モバイルのreview_complete.tplに関しては
「閉じる」ボタンが効かないのでその部分のソースを削除するなどしたほうが良いと思います。

以上でレビュー機能の追加はおわりです。

ほかにもっと良いやり方があるのかもしれませんが・・・