EC-CUBE 商品問い合せ画面を実装する

■商品問い合せを実装する

商品詳細ページから対象商品について問合せをする機能を実装する

商品詳細ページに問合せボタンを設置

    <form method="post" action="<!--{$smarty.const.HTTPS_URL}-->contact/<!--{$smarty.const.DIR_INDEX_PATH}-->">
      <input type="hidden" name="<!--{$smarty.const.TRANSACTION_ID_NAME}-->" value="<!--{$transactionid}-->">
      <input type="hidden" name="name" value="<!--{$arrProduct.name}-->">
      <input type="hidden" name="product_code" value="<!--{$arrProduct.product_code_min}-->">
      <button type="submit">この商品についての問合せはコチラ</button>
    </form>

商品詳細ページから問合せページによる画面遷移の場合は商品名と商品コードを表示させる

  <table summary="お問い合わせ">
    <!--{if $arrContactCommodity && $arrContactCommodity != ''}-->
    <tr>
      <th>お問合せ商品</th>
      <td>
        <!--{$arrContactCommodity.name}-->&nbsp;&nbsp;(コード:<!--{$arrContactCommodity.product_code}-->)
        <input type="hidden" name="name" value="<!--{$arrContactCommodity.name}-->">
        <input type="hidden" name="product_code" value="<!--{$arrContactCommodity.product_code}-->">
      </td>
    </tr>
    <!--{/if}-->

問合せ確認ページに商品名と商品コードを表示する

<table summary="お問い合わせ内容確認">
    <col width="30%">
    <col width="70%">
      <!--{if $arrForm.name.value && $arrForm.name.value != ''}-->
      <tr>
        <th>お問合せ商品</th>
        <td><!--{$arrForm.name.value|h}-->&nbsp;&nbsp;(コード:<!--{$arrForm.product_code.value|h}-->)</td>
      </tr>
      <!--{/if}-->

メールのテンプレートに商品名と商品コードを追記する

<!--{if $arrForm.name.value && $arrForm.name.value != ''}-->
■商品名 :<!--{$arrForm.name.value}--> (コード:<!--{$arrForm.product_code.value}-->)
<!--{/if}-->

問合せクラスにてPOSTデータの処理

  /**
   * Page のアクション.
   *
   * @return void
   */
  public function action()
  {
    // 商品詳細ページの問合せボタンから遷移した場合
    if(isset($_POST['name']) && $_POST['name'] != '')
    {
      // POSTデータを保持する
      $this->arrContactCommodity = $_POST;
    }
    
    parent::action();
  }

  /**
   * お問い合わせ入力時のパラメーター情報の初期化を行う.
   *
   * @param  SC_FormParam $objFormParam SC_FormParam インスタンス
   * @return void
   */
  public function lfInitParam(&$objFormParam)
  {
    $objFormParam->addParam("商品名", "name", MTEXT_LEN, 'KVa', array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
    $objFormParam->addParam("商品コード", "product_code", MTEXT_LEN, 'KVa', array("SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
    
    parent::lfInitParam(&$objFormParam);
  }

■商品詳細ページ
ec_cube_046

■問合せページ(商品詳細ページからの遷移)
ec_cube_047

■問合せ確認ページ
ec_cube_048

■問合せメール
ec_cube_048

Comments are closed.