Ubercart para productos de tipo “servicio”

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']);
  }
}
 

Instalación

  1. Descomprimir el archivo
  2. Copiar la carpeta uc_service en /sites/all/modules/ o /modules/ depende donde hayas instalado Ubercart.
  3. Activar el módulo en /admin/build/modules/.
  4. 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.

Descargar el módulo uc_service.

2 Replies to “Ubercart para productos de tipo “servicio””

Comments are closed.