各バージョンごとのdecimalタイプの設定内容
テーブルの定義ファイルを見てみると、price02やtaxなど金額関係のカラムにはdecimal型が使われていることが分かります。
3系の場合、ProductClass.dcm.ymlに下記のように記載があります。
price02: type: decimal nullable: false precision: 10 scale: 0
4系ではEntity(ProductClass.php)に直接アノテーションとして記載されています。
/** * @var string * * @ORM\Column(name="price02", type="decimal", precision=12, scale=2) */ private $price02;
他のカラムの定義には見かけないprecisionとscaleという設定がありますね。
precisionとscaleとは?
簡単にいうとprecisionとは全体の桁数、scaleとは小数点以下の桁数を表します。
price02の例では全体で最大1o桁、小数点以下は0桁ということになります。
MySQLの場合でいうと、DECIMAL(3,2) というカラムを定義したい場合、precisionが5、scaleが2となります。
参考:https://stackoverflow.com/questions/14940574/what-do-scale-and-precision-mean-when-specifying-a-decimal-field-type-in-doctrin
おわりに
decimalは金額の計算が必要な場合に使用されますので、EC-CUBEに必須の型と言えるかと思います。ぜひdecimalのprecisionとscaleをご利用になってください。
EC-CUBEに関するお問い合わせ
[重要]現在公式にセキュリティサポートが切れていないPHPは8.1以上、MySQLは8.0以上で、対応しているEC-CUBEバージョンは4.2以上です。古いEC-CUBEを使っている方は適切なタイミングでバージョンアップをご検討ください。