What is the difference between ‘base_grand_total’ and ‘grand_total’ fields in ‘sales_flat_order’ table

In Magento you can build a multilingual as well as a multi-currency website. In order to facilitate a multi-currency website, Magento asks you to setup [Admin >> System >> Configuration >> General >> Currency Setup] a ‘base currency’, a ‘default display currency’ and ‘allowed currencies’. The ‘base currency’ can be configured at global level or website level depending on your catalog settings at Admin >> System >> Configuration >> Catalog >> Catalog >> Price >> Catalog Price Scope while ‘default display currency’ and ‘allowed currencies’ can be configured at store view level.

When you place an order in a Magento it saves the base currency of the store as well as the currency in which the order was placed; in `sales_flat_order’ table `base_currency_code` and `order_currency_code` hold these values.

`base_grand_total` is the amount in the base currency configured for your store and `grand_total` is the amount in the currency in which the order was placed.

If you look at the `sales_flat_order` table you will notice that you will see many other fields of the patternbase_***’. ‘base_***’ fields like `base_subtotal`,`base_discount_amount`… store the amount in the base currency of the store in which the order was placed while ***’ fields like `subtotal`,`discount_amount`… store the amount in the currency in which the order was placed.

Leave a Comment

Back to top