Este es un post de varios que empezaremos sobre Drupal.
Ubercart es un poderoso módulo de Drupal para vender productos o servicios.
Por defecto este módulo nos permite crear el tipo de nodo "Producto" con atributos de envío como peso, altura, etc.
Sin embargo unos proyectos que estoy haciendo necesité quitar este tipo de atributos para ofrecer sólo servicios. Un ejemplo sería por ejemplo ofrecer Tours.
Para esto he creado un pequeño módulo que básicamente oculta estos campos usando el hook_form_alter de la API de Drupal sin alterar el core de Ubercart. El código es el siguiente:
PHP:
function uc_service_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == "product_node_form") {
// Precios
$form['base']['prices']['list_price']["#type"] = 'hidden';
$form['base']['prices']['cost']["#type"] = 'hidden';
// Producto Físico
$form['base']['shippable']['#type'] = 'hidden';
$form['base']['shippable']['#default_value'] = FALSE;
// Peso
unset($form['base']['weight']);
// Dimensiones
unset($form['base']['dimensions']);
// Cantidades
$form['base']['default_qty']["#type"] = 'hidden';
$form['base']['default_qty']["#default_value"] = 0;
unset($form['base']['pkg_qty']);
}
}
if ($form_id == "product_node_form") {
// Precios
$form['base']['prices']['list_price']["#type"] = 'hidden';
$form['base']['prices']['cost']["#type"] = 'hidden';
// Producto Físico
$form['base']['shippable']['#type'] = 'hidden';
$form['base']['shippable']['#default_value'] = FALSE;
// Peso
unset($form['base']['weight']);
// Dimensiones
unset($form['base']['dimensions']);
// Cantidades
$form['base']['default_qty']["#type"] = 'hidden';
$form['base']['default_qty']["#default_value"] = 0;
unset($form['base']['pkg_qty']);
}
}
Instalación
- Descomprimir el archivo
- Copiar la carpeta uc_service en
/sites/all/modules/
o/modules/
depende donde hayas instalado Ubercart. - Activar el módulo en
/admin/build/modules/
. - Crear tus productos tipo servicio.
He probado este módulo en algunos sitios y todo va bien, sin embargo cualquier observación háganmelo saber.
2 replies on “Ubercart para productos de tipo “servicio””
muy bueno, pero no funciona en drupal 7 o me equivoco?
Gracias compañer@, me ha venido de lujo el modulillo. Un saludo desde Andalucía.