Drupal Commerce: Getting the price of a product as a nicely formatted string (programatically)

We are enjoying using the Drupal Commerce Framework. Here are a few programming tips.

Easy bit - How to load a commerce product with product_id of 10


$product = commerce_product_load(10);

If you have a commerce product - you can get its price information using entity api's excellent wrapper.


$price = entity_metadata_wrapper('commerce_product', $product)->commerce_price->value();

$price is an array containing the amount (in minor units e.g. 7600 for £76) and currency_code (e.g. 'GBP')

An even better function is this which will also take account of product pricing rules that might be in place:


$price = commerce_product_calculate_sell_price($product);

Finally, if you want to get the price as a nice string for output in something custom you can then use:


$price_display = commerce_currency_format($price['amount'], $price['currency_code'], $product);

Which will return "£76.00"

John

John Ennew

I'm a software developer and chartered engineer and work as a solutions architect at Deeson. I'm also an enthusiastic advocate of continuing professional development and organise events and activities for the Kent network of the Institution of Engineering and Technology.

Related THOUGHTS