EC-CUBE

メモ。

  • 商品によってカート経由の販売をしてはいけないものがある。
  • しかし、商品一覧には掲載したいし、在庫表示(品切れか否か)を表示しておきたい。
  • カート経由できないものはまずお問い合わせいただく(メールでお問い合わせもらったら販売出来るのにカートでは売っちゃダメって難儀な世界だね。ブランドを維持するためかー。

というわけでAカートボタンを表示、Bカートボタンの非表示及び問い合わせフォームへのリンクボタン表示の2パターンを商品入力の際に判断させる。

→特定ステータスのオンオフを判別して分岐させる

ステータスの初期数は5。これはまあデータベースをさわれば増減可能っぽい。今回は増減は必要ないのでスルー。

表示のみ触る(後述

とりあえずID1を問い合わせ商品、2を通常販売商品、3以降は適当にアイコン表示系に。

なのでこの度指定するのは1と2。

<!--{if count($arrProduct.product_flag) > 0}-->
<!--{section name=flg loop=$arrProduct.product_flag|count_characters}-->
<!--{if $arrProduct.product_flag[flg] == "1"}-->
<!--★1を選択してる時は問い合わせボタンしか表示させないよぉー!★-->
<!--{if $smarty.section.flg.iteration == "1"}-->
<form method="post" action="<!--{$smarty.const.SITE_URL}-->contact/">
<input type="hidden" name="products_name" value="<!--{$arrProduct.name|escape}-->" />
<input type="submit" name="" value="この商品について問い合わせる" />
</form>
<!--{/if}-->
<!--★2を選択している時はカートとかまあデフォ一式を表示させるよぉー!★-->
<!--{if $smarty.section.flg.iteration == "2"}-->
<form name="form1" id="form1" method="post" action="<!--{$smarty.server.REQUEST_URI|escape}-->">
<input type="hidden" name="mode" value="cart" />
<input type="hidden" name="product_id" value="<!--{$tpl_product_id}-->" />
<!--{if $tpl_stock_find}-->
<dl>
<dd>
<select name="classcategory_id_mixed">
<!--{html_options options=$arrClassCat1_2}-->
</select>
</dd>
</dl>
<!--{/if }-->
<dl>
<dt>個&nbsp;&nbsp;数</dt>
<dd><input type="text" name="quantity" class="box54" value="<!--{$arrForm.quantity.value|default:1}-->" maxlength="<!--{$smarty.const.INT_LEN}-->" style="<!--{$arrErr.quantity|sfGetErrorColor}-->" />
<!--{if $arrErr.quantity != ""}--><br />
<span class="attention"><!--{$arrErr.quantity}--></span>
<!--{/if}-->
</dd>
</dl>
<!--{if $tpl_stock_find}-->
<p class="btn">
<!--★カゴに入れる★-->
<a href="javascript:void(document.form1.submit())" onmouseover="chgImg('<!--{$TPL_DIR}-->img/products/b_cartin_on.gif','cart');" onmouseout="chgImg('<!--{$TPL_DIR}-->img/products/b_cartin.gif','cart');">
<img src="<!--{$TPL_DIR}-->img/products/b_cartin.gif" width="115" height="25" alt="カゴに入れる" name="cart" id="cart" />
</a>
</p>
<!--{else}-->
<div class="attention">申し訳ございませんが、只今品切れ中です。</div>
<!--{/if}-->
</form>
<!--{/if}-->
<!--{/if}-->
<!--{/section}-->
<!--{/if}-->

参考http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=2261&forum=10

あとフォームに飛ばした時に商品名をひっぱってくるようにしておく。

data/Smarty/templates/contact/index.tplの162行目(くらい)からのtextareaのstyleに

<!--{$smarty.post.products_name|escape}-->

を追加する。これはもしかしたら別枠を設けたほうがいいかも~なんだけどフォームは通常問合せのものと共通なので。商品問い合わせ専用フォームとか用意出来たらいいんだけどね、予算がね。

そいでそいで、ステータス表示部分をいじっておく。順番を覚えておけば問題ないんだけどスマートじゃねーので。

管理画面の基本情報設定>マスタデータ管理からmtb_statusの値を修正。お問い合わせ商品・通常販売・NEW・SALE・予約受付の5種にした。アイコンはまあ後で。最初2個はいらんが。

というわけで一応目的は達成。

デメリット、というかスマートじゃなくてダサいなあしょんぼり、みたいな部分。

  • 商品登録の際に必須ではない商品ステータスをチェックしてもらわなければいけない。1か2、どちらかにチェックしてもらわないと問い合わせフォームへのボタンどころかカートボタンも出ねえ。
  • 問い合わせ商品の品切れ表示の際、商品マスタを触ってもらわないといけない。ああ、でもそもそも問合せでしか売らないんだからどうあがいても自動で処理は出来んか…

とりあえず出来たからいっか。ボタンつーっくろっと。

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL