バージョン選択

フォーラム

メニュー

オンライン状況

65 人のユーザが現在オンラインです。 (46 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 65
もっと...

サイト内検索

機能要望 > フロント機能 > 商品価格のドル表示

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 2007/8/24 10:38
対応状況: −−−
商品価格のドル表示
商品の価格をドル表示をしたく思っています。
現在では120.50などと入れると「価格は数字で入力してください。」とエラーが出ます。

これを直すにはどこを修正すればいいでしょうか。
ご教授よろしくお願いします。
ゲスト
投稿日時: 2007/8/24 10:39
対応状況: −−−
Re: 商品価格のドル表示
すみません。投稿場所と種類を間違えてしまいました。
homan
投稿日時: 2007/8/24 12:23
対応状況: −−−
仙人
登録日: 2007/7/2
居住地: 宮崎県宮崎市
投稿: 633
Re: 商品価格のドル表示
こんにちは

html/admin/products/product.phpの490行目辺り

	if($objPage->tpl_nonclass) {
		$objErr->doFunc(array("商品コード", "product_code", STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK","MAX_LENGTH_CHECK","MAX_LENGTH_CHECK"));
		$objErr->doFunc(array("通常価格", "price01", PRICE_LEN), array("ZERO_CHECK", "SPTAB_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
		$objErr->doFunc(array("商品価格", "price02", PRICE_LEN), array("EXIST_CHECK", "NUM_CHECK", "ZERO_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
			
		if($array['stock_unlimited'] != "1") {
			$objErr->doFunc(array("在庫数", "stock", AMOUNT_LEN), array("EXIST_CHECK", "SPTAB_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
		}
	}

の「通常価格」と「商品価格」の”NUM_CHECK”の部分を”NUM_POINT_CHECK”に変更します。

これで価格に".(ドット)"が含まれている数字でも受け付けてくれるようになると思います。

ただ、これだけでは登録後に小数点以下の数値は切り捨てられてしまいます(MySQLの場合に確認。PostgreSQLは不明)。
例えば123.45と登録すると、123としか登録されません。

これはデータベースの価格フィールドの型に「decimal(10,0)」が設定されているからで、
10桁の数字うち0桁分が小数点以下に割り当てられているためだと思います。

データベース構造を修正できる権限のユーザーで

ALTER TABLE `dtb_products_class` CHANGE `price01` `price01` DECIMAL( 10, 2 ) NULL DEFAULT NULL ,
CHANGE `price02` `price02` DECIMAL( 10, 2 ) NULL DEFAULT NULL 

というSQL文を発行すれば登録後も反映できると思います。phpMyAdminとかでやると簡単ですね


※もし実稼働している環境ならば特にご注意ください。
この部分のデータベース構造を変更することによって他の部分で不具合がでるかもしれません。
自己責任でお願い致します。


あとは商品マスターの一覧でも小数点以下が無視されて表示されますが、取り急ぎなので、そこの修正は割愛します

----------------------------
追記

割愛するつもりでしたが、やっぱりやってみま〜す

data/Smarty/templates/admin/products/index.tplの322行目付近だと思いますが、

	<!--{* 価格 *}-->
	<!--{if $arrProducts[cnt].price02 != ""}-->
	<!--{$arrProducts[cnt].price02|number_format}-->
	<!--{else}-->
	-
	<!--{/if}-->

の部分を見つけてください。

詳細はSmartyのnumber_formatをキーワードに検索して調べてほしいですが、以下のようにすれば商品マスターで検索後の一覧にも反映できます。


	<!--{* 価格 *}-->
	<!--{if $arrProducts[cnt].price02 != ""}-->
	<!--{$arrProducts[cnt].price02|number_format:2:'.':','}-->
	<!--{else}-->
	-
	<!--{/if}-->


小数点以下を2桁にし、小数点の区切りを".(ドット)"にし、1000単位の区切りを",(カンマ)"に設定しています。これは見栄えだけの修正で、データベースとは関係ありません。

あとは、商品ページやカートに入れた場合の表記も同様に変更が必要かもしれません・・・(すみません、そこまでは試す気力がありませんでした


----------------
このコミュニティでの投稿はボランティアの範囲に留めさせていただいています。個別の相談やカスタマイズは有償にて承っておりますのでご相談下さい。

[url=http://www.eccube-school.jp/]EC-CUBE

ゲスト
投稿日時: 2007/8/24 20:34
対応状況: −−−
Re: 商品価格のドル表示
homanさん、ありがとうございます!
いやぁ、助かりました。

ページも拝見させて頂きました。
素晴らしいページですね。

これからお世話になるかもしれませんが、
よろしくお願いします。
ゲスト
投稿日時: 2007/8/25 2:56
対応状況: −−−
Re: 商品価格のドル表示
でも、こうやって細かいところまでカスタマイズしていくと
バージョンアップが怖いですね。

どのように対処されていますか?
kawabian
投稿日時: 2018/2/14 18:53
対応状況: −−−
常連
登録日: 2017/8/7
居住地:
投稿: 35
Re: 商品価格のドル表示
現在2.13で進めておりますが、2.13における

「html/admin/products/product.phpの490行目辺り」

はどこに当たるのか分かる方いらっしゃいますでしょうか。

よろしくお願いします。
kawabian
投稿日時: 2018/2/17 17:07
対応状況: −−−
常連
登録日: 2017/8/7
居住地:
投稿: 35
Re: 商品価格のドル表示
自己解決できました
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


ec-cube.co

統計情報

総メンバー数は48,287名です
総投稿数は92,888件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1908
4
468
1818
5
yuh
1600
6
red
1333
7
umebius
1296
8
fukap
907
9
h_tanaka
881
10
tsuji
852
11
shutta
835
12 ramrun 789
13
tao_s
758
14 karin 656
15 sumida 641
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.