Configurando los decimales en los precios de los productos en Drupal Commerce

Hacker

Precio sin decimales en Drupal Commerce - Prize withouht decimals on Drupal Commerce

Por defecto, cuando añadimos productos a nuestra tienda con Drupal Commerce veremos que los precios de los productos llevan dos decimales, así, si por ejemplo vendes una piruleta por 3 euros, el precio que verás en la ficha del producto será al final: 3,00 €.

En mi caso no me gustaba, ya que quiero poner el precio de los productos dentro de una estrellita verde y claro, necesito que sea lo más corto posible para, mediante CSS hacerlo lo más grande posible y que se ajuste bien en el centro de dicho icono, con lo cual necesito quitar los decimales en los productos.

Seguramente se puede hacer de otras formas, pero os cuento cómo lo he hecho yo para mi proyecto con Drupal Commerce.

Modificamos el fichero commerce.currecy.inc que se encuentra en la ruta profiles/commerce_kickstart/modules/commerce/includes/ y especificamos los decimales que queremos. Y si no aparece esta variable, la añadimos a la matriz.

En mi caso, usaré dólares, libras esterlinas y euros. Y como he visto que no estaba, he añadido el 'decimals' => 0, y ha funcionado. Al final , la configuración del euro se queda así:


'EUR' => array(
'code' => 'EUR',
'symbol' => 'â~B¬',
'name' => t('Euro'),
'thousands_separator' => ' ',
'decimal_separator' => ',',
'symbol_placement' => 'after',
'code_placement' => '',
'decimals' => 0,
'numeric_code' => '978',
'minor_unit' => t('Cent'),
'major_unit' => t('Euro'),
),

Y, para finalizar, he hecho la misma parametrización en los dólares y en las libras esterlinas.

CONFIGURACIÓN DEL DOLAR Y DE LAS LIBRAS ESTERLINAS

Como mi proyecto también usará dólares y libras esterlinas, deberé también configurar estas monedas, a las que sólo añadiré un decimal.

El dólar quedará así:


'USD' => array(
'code' => 'USD',
'symbol' => '$',
'name' => t('United States Dollar'),
'numeric_code' => '840',
'symbol_placement' => 'before',
'decimals' => 1,
'code_placement' => '',
'minor_unit' => t('Cent'),
'major_unit' => t('Dollar'),
),

Y las libras esterlinas así:


'GBP' => array(
'code' => 'GBP',
'symbol' => '£',
'name' => t('British Pound Sterling'),
'numeric_code' => '826',
'decimals' => 1,
'symbol_placement' => 'before',
'code_placement' => '',
'minor_unit' => t('Penny'),
'major_unit' => t('Pound'),
),

INFORMACIÓN ADICIONAL

Por cierto, parece que hay un módulo que permite también configurar esto, pero llegué tarde cuando lo descubrí y ya lo había hecho a mi manera. El módulo lo tenéis aquí http://drupal.org/project/commerce_currency_settings

Y también hay un comentario que vi, que explica que es posible hacer esto sin tocar a pelo (como yo hice) el fichero, creando un hook_commerce_currency_info_alter()

Tenéis el comentario aquí:
http://www.drupalcommerce.org/comment/4301#comment-4301

Espero que os sirva este articulito.

Doncs bé això és tot, espere que trobes útil aquest article i que et motive a compartir els teus trucs, els teus coneixements i els teus experiments amb el Programari Lliure. Pensa-ho, va, que la Comunitat del Programari Lliure va creixent gràcies a la documentació, el disseny, la formació o la programació, sigues part de la Comunitat :-)

La cultura i la lliure circulació de les idees és l'arma més efectiva contra les dictadures del pensament i contra la ignorància.