I wanna set this number 100000000000 to my product price but Magento change it to 100000000 and it doesn't save it correctly
how can I fix it?
magento version 1.9
That is because of the limitations of the columns definition in MySQL: The columns where prices are stored are all of type
decimal(12,4). That means that you can store only prices with a maximum of 12 digits in total where 4 are digital points. So the maximum value that can be stored is
99999999.9999 and rounded
In order to allow greater values you will need to change all the corresponding database fields from
decimal(12,4) to something larger. To work with prices of
100000000000 you need at least 4 more digits because the value will be summed for example in checkout process (3 digits would allow a maximum of
99999999999.9999 rounded exactly your required price
100000000000). That would mean to change the affected columns from
The MySQL command to perform a change like this for a column is:
alter table [YOUR TABLENAME] modify [YOUR COLUMN] decimal(16,4);
Be aware that there are lots of affected columns in Magentos database!
value in table
catalog_product_entity_decimal (where the price product attributes are stored, going to and the price columns in
sales_flat_order_item etc. to the total columns in
sales_flat_invoice_gird etc. (e.g.
grand_total). This list is not complete!
And there may be some more tables / columns affected depending on your maximum order value, tax calculation etc.
You should also be aware that changing database definitions on core Magento fields my cause conflicts with later updates or potential migrations to Magento 2.**
If you want to go that way you should analyze your settings to identify all the needed columns, make the changes in a local / development environment and test them before rolling them out in production!