In drupal commerce, using the commerce payment payment module, I would like to display the amount paid and order balance in paid order like on the example below.
Subtotal ------------- 20
TAX --------------------- 3
Total ------------------ 23
Amount paid ----- 23
Order balance ---- 0
How could I achieve this ?
I'm close to get what I want. I created a module
I still have an issue : I don't know how to get the order_ID ?
<?php
/**
* @file
* Commerce Order Total and Balance Module.
*/
// implement hook_commerce_price_formatted_components_alter()
function commerce_order_total_and_balance_commerce_price_formatted_components_alter(&$component_types) {
// TO DO : retreive the order ID (or the order object)
$order_id = 142;
// load the order
$order = commerce_order_load($order_id);
// get the balance
$balance = commerce_payment_order_balance($order);
// rename and reorder component_type
$component_types['base_price']['title'] = 'Total HT';
$component_types['base_price']['weight'] = -90;
// rename and reorder component_type
$component_types['tax|20_vat']['weight'] = -80;
// rename and reorder component_type
$component_types['commerce_price_formatted_amount']['title'] = 'Total TTC';
$component_types['commerce_price_formatted_amount']['weight'] = -50;
if ($balance['amount'] <= 0) { // we display total payments and order balance only if order balance is zero or less
// add component_type "total_paid"
$component_types['total_paid']['title'] = 'Montant payé';
$component_types['total_paid']['weight'] = -40;
$component_types['total_paid']['price']['currency_code'] = $component_types['commerce_price_formatted_amount']['price']['currency_code'];
$component_types['total_paid']['price']['amount'] = $component_types['commerce_price_formatted_amount']['price']['amount']-$balance['amount'];
// add component_type "order_balance"
$component_types['order_balance']['title'] = 'Solde';
$component_types['order_balance']['weight'] = -30;
$component_types['order_balance']['price'] = $balance;
}
}