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

  • Drupal

    Multi Processing Part 1: How to make Drush rush

    ... John Ennew  24th October 2013

    In this first of three part series, learn about the secrets of multi processing and the performance gains it can grant

  • Drupal

    Educating Drush

    ... Dan James  16th January 2013

    Drupal has great support for multi site installations and so does Drush. All of our sites are deployed through a dev/test/live process so our sites directory always has three sites entries.