バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
ゲスト
投稿日時: 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公式 Amazon Payプラグイン

統計情報

総メンバー数は88,688名です
総投稿数は109,934件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1569
9
mcontact
1280
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

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