質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

Q&A

解決済

1回答

2025閲覧

ec-cube2.12.6 のカスタマイズによる規格の追加について

zvub1123

総合スコア230

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

EC-CUBE

EC-CUBEは、主に日本国内で開発されているECコンテンツ管理システムです。ロックオン社のECKitを元にしてオープンソース化され、商品管理・受注管理・顧客管理・売上集計などECに特化した様々な機能を備えています。

0グッド

0クリップ

投稿2018/04/24 07:48

編集2018/05/07 06:17

前提:
EC-Cube 2.12.6 にて商品に延長保証の項目を追加しております。
(PHP: 5.3.3, MySQL:5.1.73)

追加する項目(延長保証)については商品規格の一つとして扱いたいと考えております。

それに伴い、商品一覧ページ(list.tpl)および商品詳細ページ(detail.tpl)にて
ラジオボタンを表示し、「選択可能な延長保証年数」を確認できるようにしたいです。

例)
dtb_product_class

商品ID商品ID名前ステータス規格カテゴリID1
11namestatusX

dtb_classcategory

規格カテゴリID規格名規格ID
63年X
75年X
86年X

また、商品の金額に応じて同じ保証でも値段が変わる場合や
保証料金が商品の金額に左右されず一律となる場合もあるため、
新たに以下のようなテーブルを追加しています。

例)
dtb_warranty

商品ID規格カテゴリID保証料金保証料率(%)
165
171,500

商品一覧ページ及び商品詳細ページでは、ラジオボタンにより延長保証の項目を表示し、
ラベルとして保証料金を(場合によっては計算して)表示したいと思っております。

上記を踏まえ、以下のようにテンプレート側を変更しました。

①list.tpl

smarty

1<!--▼規格1--> 2 <h2>延長保証</h2> 3 <dt><!--{$tpl_class_name1[$id]|h}--></dt> 4 <dd> 5 <!--{foreach from=$arrProductClass item="kikaku"}--> 6 <!--{html_radios options=$kikaku.classcategory_id1 selected=$arrProduct.classcategory_id1}--> 7 <!--{if $arrErr.classcategory_id1 != ""}--> 8 <p class="attention"><!--{$tpl_class_name1[$id]}-->を入力して下さい。</p> 9 <!--{/if}--> 10 <!--{/foreach}--> 11 </dd> 12<!--▲規格1-->

②detail.tpl

smarty

1<!--▼規格1--> 2 <h2>延長保証</h2> 3 <!--{foreach from=$arrProductsClass item="kikaku1" key="key"}--> 4 <label/><input type="radio" name="classcategory_id1" value="<!--{$kikaku1.classcategory_id1}-->" /><!--{$kikaku1.classcategory_name1}--></label> 5 <!--{$kikaku1.price02}-->6 <!--{/foreach}--> 7<!--▲規格1-->

しかし、下図のように現状ではラジオボタンが表示されない状態となっております。

イメージ説明

上記問題の解決にご協力いただけないでしょうか。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/04/24 15:22

規格商品の機能はないんだっけ?
guest

回答1

0

自己解決

商品一覧画面(list.tpl)には延長保証の情報は表示せず、商品詳細画面(detail.tpl)にのみ表示させる方法で対応しました。

具体的には、商品企画の有無の判定<!--{if $tpl_stock_find}-->の直前に下のソースを追加した形になります。

html

1 <!--{assign var=productWarranty value=$arrProductWarranty}--> 2 <!--{if $warrantyFlag == true}--> 3 <h3>延長保証 : </h3> 4 <!--{foreach from=$arrWarrantyDetails key=warrantyKey item=warrantyPrice}--> 5 <input type="radio" id="<!--{$warrantyKey}-->" name="warranty_name" value="<!--{$warrantyKey}-->"> 6 <label for="<!--{$warrantyKey}-->" class="warranty_radio"> 7 <!--{$warrantyKey}--><br><!--{$warrantyPrice|number_format}-->8 </label> 9 <!--{/foreach}--> 10 <!--{/if}-->

ロジック側から渡ってくる $arrProductWarranty は
{ "延長保証プラン名":"延長保証料金(商品の購入金額に基づいて動的に変更)" }
のKey, Valueを持ったペアの配列になっており、カート用のテーブル(dtb_order_detail)などにも
カラムを追加する必要があったため、商品企画としては扱わず、独立した情報となっています。

以下は例です。

プラン名マスタ

idname
13年
25年
37年

保証プランテーブル(商品ごとに、どの保証プランを持つか)

商品IDプラン1プラン2
12301

※0=プランなし、1=プランあり

保証率テーブル

プランID商品カテゴリID保証料率
175(%)
2125
3238

保証料計算用の金額算出テーブル

IDmin_pricemax_price
14,00040,000
240,00160,000
360,00180,000
480,001100,000
5100,001120,000

計算式
①商品購入金額から、(min_price ≦ 税込価格 ≧ max_price) となる行の max_price を取得
②mx_price * 保証料率 = 保証額 とする
③購入金額+保証額=合計金額

投稿2018/07/25 01:12

zvub1123

総合スコア230

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問