Ubercart

-UBERCART (6.x-2.0): Es un “Contributed Module” mediante el que podremos implementar sitios de comercio electrónico de una forma fácil y rápida. Este no es el más flexible y potente de los módulos de comercio electrónico ( mirar e-Comerce ), pero sí el que con menos esfuerzo permite obtener los mejores resultados. Su secreto es la intelgencia con que integra los elementos propios del comercio electrónico con la arquitectura de Drupal.

En realidad Ubercart lo forma un amplio grupo de “submodulos”  que son los que implementan las diferentes funcionalidades necesarias para la tienda virtual, además dispone de una sección de configuración independiente a la que se accede en “Administer>Store administration”.

Si vamos a “Administer>Site building>Modules” veremos que estos “submódulos” se agrupan en las siguientes categorías ( muchos de ellos requieren del “Contributed Module” Tokens u otros) :

-Ubercart - core : comprende los submódulos básicos neceseraios en prácticamente todas las tiendas virutales. Se deberán activar todos.
-Ubercart - core (optional) : con los submódulos “no indispensables” pero sí frecuentemente utilizados en las tiendas virtuales. Aunque no es necesario activarlos todos es muy porbable que necesitemos de más de uno.
-Ubercart - extra: con submódulos que ofrecen funcionalidades pocas veces necesarias, pero que quizás necesitemos en alguna ocasión, por ello es bueno echar una ojeda a esta categoría antes de ponerse a buscar por Internet.
-Ubercart - fullfilment: continene un conjunto de módulos que incorporan información relativa al envío de productos.
-Ubercart – payment: agurpa submodulos relacionados con el proceso de pago.

Ubercart – core:
-Cart: implementa el carrito de la compra, es decir las funcionalidades necesarias para que el usuario disponga de una la lista a la que ir añadiendo los productos e indicar el número de unidades de cada producto que desea comprar. Implementa también la opción de confirmación de la lista de la compra.
-Conditional Actions: añade los mecanismos necesarios para que los módulos que lo necesiten, puedan realizar acciones basadas en reglas sobre los artículos de la tienda virtual. Para que funcione, antes deberemos haber activado Actions.
-Order: permite gestionar los pedidos que entran a la tienda virtual. Incorpora los mecanimos necesarios para que los usuarios puedan enviar los pedidos, para que los administradores puedan realizar el seguimiento de estos pedidos, o incluso para que los adminstradores puedan rellenar pedidos a mano (p.ej. útil si nos envían pedidos por teléfono)
-Porduct: con todos los recursos e información necesarios para definir un producto de la tienda virtual. Este añade un Content Type, denominado Product, sobre el cual podremos realizar modificaciones para adaptarlos a nuestras necesidades.
-Store: crea la interfaz y elementos básicos para gestionar toda la tienda virtual.

Ubercart – core (optional):
-Attribute: permite establecer las propiedades o características generales de los productos de la tienda (p.ej color), es decir, permite crear atributos. Combinando los atributos con las clases se pueden generar los diferentes productos.
-Catalog: ofrece la posibilidad de organizar los productos de la tienda virtual en base a la información de taxonomía de cada uno de ellos, mostrar en una Page o Block una lista jerarquizada de un grupo de productos, u otras tareas relacionadas con la clasificación y ordenación de los porductos. Es decir permite crear catálogos.
-File Download: incorpora los recursos necesarios para poder asociar ficheros a los productos de la tienda de forma que los usuarios puedan descargarlos en caso de necesitarlos (p.ej hojas técnicas o de especificaciones ).
-Payment: permite integrar en el sitio Drupal los formularios o pasarelas de pago de diferentes entidades financieras. Así, tras confirmar la lista de la compra ofrece a los usuarios la posibilidad de escoger la modalidad de pago etc. Inlcuye además un submódulo de test muy útil para el proceso de pruebas.
-Reports: ofrece resúmenes generales de la actividad de la tienda virutal.
-Roles: permite asignar Roles a usuarios en función de las compras que han realizado.
-Shipping: incorpora un conjunto de funcionalidades genéricas para la gestión del envio de los productos que han comprado los usuarios de la tienda. Algunas de estas funcionalidades son la generación de las etiquetas o información de envio, calculo de costes de envío, gestión de números de tracking etc.
-Shiping Quotes: submódulo que ofrece herramientas mas precisas para calcular el coste de un envio. Otros modulos pueden aprovechar las funcionalidades de este para realizar determinadas tareas, como p.ej mostrar una lista de opciones de envio con sus precios para que el usuario pueda elegir la que mas le convenga.
-Tax: implementa un modulo que permite calcular de forma aproximada los impuestos relativos a la región que aplican sobre el producto .
-Taxes Report: crea un resumen de los impuestos que los clientes han ido pagando a lo largo del tiempo.

Ubercart - extra:
-Cart Links: permite crear URLs que enlazan a solicitudes predefinidas de un determinado producto. Estos enlaces se pueden utilizar por otros sitios web para ofrecer a los usuarios un acceso directo a la compra del producto (p.ej “Compra el articulo X ahora!”).
-Google Analytics for Ubercart: como su nombre indica permite integrar el sistema de análisis y estadísticas de Google Analytics a nuestra tienda virtual. Depende del “Contributed Module” Google Analyitcs para funcionar.
-Product kit: facilita la  agrupación de conjuntos de productos para poderlos vender como uno único producto.
-Stock: ofrece herramientas para gestionar de forma sencilla los stocks de los diferentes productos. A parte de ofrecer vistas con el estado de los stocks también se puede configurar para que envie un mail en el momento que el stock de un determinado producto supere un límite.

Configurar Ubercart:
Se vé pues, que Ubercart es un paquete muy grande formado por muchos módulos, y esto hace muy difícil resumir cada una de sus posibilidades. Sea como sea, a continuación se describen de forma muy general los pasos a seguir para crear una tienda virtual con Ubercart:

1- Configurar parámetros generales
2- Crear y vincular clases y atributos
3- Crear Vocabularies
4- Entrar los productos
5- Configurar el catálogo
6- Configurar  carrito de la compra
7- Configurar coste y opciones de envio
8- Establecer los modos de pago

1 - Configurar parámetros generales:
Una de las primeras tareas a realizar tras instalar y activar Ubercart es establecer los datos de contacto del vendedor, dirección de la tienda, nombre etc. Para ello debemos ir a "Administer > Store administration>Configruation>Store settings>Contact settings" y rellenar el formulario que nos ofrece.

Por defecto Ubercart viene configurado para ser utilizado en Estados Unidos, es decir que los sistemas de medidas y de moneda están configurados para ese país, pero esto se puede cambiar en "Administer>Store administration>Configruation>Store settings>Format"

2 - Crear y vincular clases y atributos:
Uno de los puntos iniciales a los que hay que prestar más atencion durante el diseño de una tienda virtual con Drupal es la correcta definición de los “contenedores” en los que este almacenará la información de los productos. A continuación se explica una forma de hacerlo que requiere tener instalados los “Contributed Modules” CCK, FileField, ImageCache, ImageField, Token, Ubercart e ImageAPI.

Aunque se puede hacer directamente mediante “Content Types”, es recomendable definir los productos a partir de clases. Las clases se pueden entender como una ampliación del concepto de  “Content Type” y su principal ventaja es la flexibilidad que ofrecen en la gestión de los atributos, campos que heredan a partir de una clase base.

Para crear una clase deberemos ir a “Administer >Site administration > Products > Manage clases” rellenar el formulario y pulsar en Submit.

Para crear un atributo deberemos ir a “Adminster > Store administration > Attributes” y pulsar en “Add attributes”, lo que nos desplegará un formulario en el que podremos crear y configurar el nuevo atributo. Tras pulsar “Submit” volveremos a la página Overivew donde podremos dar los últimos retoques a los atributos que acabamos de crear. La pestaña Options que aparece junto a cada uno de los atributos permite ajustar variables del producto (p.ej. precio, peso) que dependan del valor que tome el atributo. P.ej podemos hacer que cuando un atributo tome un determinado valor, variables como el peso, o el precio del producto se modifiquen en una determinada dirección.

Una vez tengamos los atributos y las clases creadas deberemos vincularlas según convenga. Para ello hay que ir a “Administer>Store administration>Products>Manage clases” y pulsar sobre la clase a la que queremos añadir los atributos. Luego aparecerá una nueva página en la que deberemos pulsar sobre “Add attributes to this class”. Nos llevará a una nueva página en la que podremos seleccionar que atributos queremos añadir a la nueva clase, los seleccionaremos y guardaremos.  La combinación de atributos con las clases genera nuevos Content Types. Queda así patente la felxibilidad del uso de clases y atributos, ya que, como se puede ver ,estos se pueden asociar a una o varias clases sin tener que replicar y redefinir una propiedad para cada uno de los productos. Es decir que una vez definido un atributo, este se puede aplicar a diferentes clases de productos.

Es posible que muchos de los valores que puede tomar el atributo no apliquen en determinadas clases. Es decir, que si p.ej. tenemos un atributo de color que puede tomar muchos colores diferentes, es muy probable que no todos los productos que tengan color como atributo puedan tomar todos esos colores. Para especificar que valores de un atributo aplican a una determinada clase deberemos ir a “Administer > Store administration > Products > Manage clases”, seleccionar la clase a la cual pertenece el atributo y luego en la web de información general de la clase pulsaremos en Options. Esto nos llevará a una página en la que se muestran todos los atributos asociados a la clase y los valores que pueden tomar. En ésta página podremos seleccionar que valores de los atributos son validos para esta clase.

3 - Crear los Vocabularies:
Otro punto importante en una tienda virtual es el catálgo de productos y el modo en que este se muestra a los clientes. Los catálogos se organizan en base a la clasificación taxonómica de los productos ,por lo que antes de construir un catálogo deberemos haber activado el “Core Module” Taxonomy y haber creado los Vocabularies pertinentes para cada clase. Si no lo hemos hecho deberemos ir a “Administer > Content managment > Taxonomy” y pulsar en “Add vocabulary” lo que nos llevará a un formulario en el que podremos introducir la información básica del producto, y las clases de productos a los que afectará. Luego, con la opción “Add terms” de la página anterior podremos añadir Terms al vocabulary que acabos de crear. Es importante que organicemos correctamente la jeraraquía dentro del vocabulario, para ello debemos utilizar las opciones de ordenación que aparecen en List, p.ej:

+Música
  +Cassette
  +CD
  +Vinilo
  +Mp3

+Repuestos
   +Correa radiocassette
   +Aguja tocadiscos
   +Engranaje radiocassette
   +Limpiador Cabezal

4 – Entrar los productos:
Entrar los productos de la tienda es tan simple como crear cualquier otro tipo de contenido, y para ello debemos ir a “Create content” y seleccionar la clase correspondiente al producto que queremos entrar.

5 - Configurar el catálogo:
Con la Taxonomy configurada, para crear el catálogo deberemos ir a “Administer> Store administration > Configuration > Catalog settings”, y pulsar en Edit. Se nos mostrará una nueva página en la que podremos especificar el Vocabulary en el que se ha de basar el catálogo asi como también algunos parámetros relacionados con la forma en que se ha de mostrar el nuevo catálogo.

En “Administer>Store administration>Configuration>Product settings” podemos establecer otros parámetros básicos relacionados con el modo en que los productos se mostrarn en los listados. P.ej podemos establecer cuantos productos se listaran como máximo en cada página de los catálogos, o el modo en que se mostrarán los vinuclos de “Añadir al carrito”, o si queremos que aparezca un cuadro de texto en el que poder establecer la cantidad de elementos a comprar etc. En “Administer > Store administration > Configuration > Product settings” podemos establecer que campos del “Content Type”  Product deseamos que sean visibles.

Tras haber configurado el catálogo podemos visualizarlo en forma de Block, para ello simpelmente debemos recurrir a “Administer>Site building>Blocks” y allí situarlo en la región que mas nos convenga.

6 - Configurar  carrito de la compra:
Activando el “submódulo” Cart obtendremos la mayor parte de las funcionalidades necesarias para implementar el carrito de la compra. Para configurarlo deberemos ir a “Administer > Store administration > Configuration > Cart settings”. Una de las primeras cosas a modificar en “Cart settings” es la URL a la que se redirijirá al usuario cada vez que haya añadido un elemento al carrito, ya que por defecto este se redirijirá a la pagina principal, lo que no tiene mucho sentido, siendo lo mas lógico que le redirija de nuevo al catálogo para que pueda seguir comprando. Para corregir esto en “Default continue shopping link URL:” deberemos entrar “http: // localhost / drupalcatalog”.

Como sucede con otros modulos el carrito de la compra se puede establecer en un Block, para que aparezca siempre visible, para hacerlo simpelmente debemos recurrir a “Administer>Site building>Blocks” y allí situarlo en la región que más nos convenga.

7- Configurar opciones de envio:
No hay que olvidar, que al importe total del pedido se le debe añdir el coste de envío. Para establecer los costes y opciones de envío podemos usar alguno de los modulos que aparecen agrupados en “Ubercart – fulfillment”, los más sencillos de los cuales son “Flatrate” y “Weight quote”. Existen otros métodos mas sofisticados que permiten conectar con diferentes compañías de envio (p.ej UPS o DHL) para conocer el coste preciso y tiempo del envio.

“Flatrate” permite establecer diferentes opciones de envio de coste fijo, de forma que al confirmar el pedido el usuario podrá seleccionar alguna de estas opciones el coste de la cual se sumará al precio final. No es el método más sofisticado o más completo, pero es bastante simple y será suficiente en muchas ocasiones. Para configurarlo debemos ir a “Administer > Store administration > Configuration > Shipping quote settings”, seleccionar “Quote methods”  “Flat rate” y luego pulsar en “Add new flat rate shipping”. Aparecerá un nuevo formulario en el que podremos configurar el tipo de envio especificando la descripción y el coste. Cada vez que el usuario vaya a confirmar un pedido en el paratado de envio el aparecerán las opciones aquí entradas.

O“Weight quote” permite establecer el coste de envio en base al peso del producto que se va a enviar.

8 - Establecer los modos de pago:
Para configurar las opciones de pago deberemos ir a “Administer > Store administration > Configuration > Payment settings” y luego pulsar sobre “Payment methods”. Allí podremos activar y organizar por orden de prioridad los diferentes métodos de pago.

Si seleccionamos “Credit card” veremos que en la cabecera nos aparece un mensaje que dice “Credit card encryption must be configured to accept credit card payments”. Este mensaje está indicando que no disponemos de las claves necesarias para encriptar y proteger la información de las tarjetas de crédito de nuestros clientes. Antes de crear estas claves deberemos crear una carpeta resguardada del acceso web donde  guadarlas, ( p.ej  “c:\claves” ) .Una vez creada la carpeta desplegaremos las opciones “Credit card settings”, indicaremos la ruta de la carpeta de claves que acabamos de crear, marcaremos la casilla “Attempt to process credit card payments at checkout”, desplegaremos también las opciones “Chekc settings” donde entraremos la información de la tienda, y por último pulsaremos en  “Save configuration”. Si regresamos a nuestra carpeta de calves, veremos que se ha creado un fichero “uc_credit.key” con las claves que necesitábamos.

Es importante tomar el máximo de precauciones posibles al procesar la información de las tarejas de crédito, y la mayor parte de entidades financieras exigirán cumplir con los estándares PCI-DSS para poder utilizar sus pasarelas de pago. Algunas de las exigencias de esta normativa son el uso obligatorio de sesiones seguras SSL y no almacenar en la base de datos la información de las tarjetas de crédito. Sea como sea deberemos revisar bien las opciones de pago de nuestro sitio, y verificar cuidadosamente que opciones tenemos activadas y cuales no.

Para verificar que hemos hecho bien la configuración del método de pago podemos utilizar el “Test gateway” y realizar un pedido, añadiendo productos a nuestro carrito y finalmente pulsando en Checkout.

También deberemos especificar los permisos para las diferentes operaciones asociadas con la tarjeta de crédito. “view cc details” permite especificar que roles podran visualizar el tipo de tarjeta con que se realizó el pago de un determinado producto así como también el importe e información personal asociada el pedido. “view cc numbers” permite además conocer los últimos 4 dígitos de la tarjeta con que se realizó el pedido.

Otras consideraciones sobre Ubercart:
A parte de los hasta aquí citados, existen otros parámetros importantes a configurar en la tienda virtual. Uno de ellos es p.ej los impuestos que aplican a los artículos que vendemos. Para configurar si aplican o no los impuestos , y en caso de que apliquen, en que modo lo hacen, deberemos ir a “Administer > Store administration > Configuration > Tax rates” y allí especificar las características del impuesto que queremos configurar.

Ubercart ofrece diferentes opciones para gestionar los pedidos, y facilitarnos el control de estos, es decir para saber que pedidos hay pendientes de envio, cuales se han enviado ya etc. Para ello deberemos ir a “ Administer > Store administration > Orders”  donde se nos mostrará una lista con la información más siginificativa de todos los pedidos que han realizado los clientes del sitio. Esta información es por ejemplo el montante del pedido, el estado de éste, la fecha en que se realizó etc. Si pulsamos sobre alguno de los pedidos podremos visualizar sus detalles, la información del cliente, dirección de envio, listado de productos comprados etc. Incluso se nos ofrece la opción de realizar envíos de pedidos de forma fraccionada es decir, que podemos realizar el envio de una parte del pedido por un lado, y de la otra parte por otro. Esto puede ser interesante cuando algún cliente haga un pedido, y la tienda no tenga todos los productos, pero sí una parte de ellos y quiera enviarlos por adelantado.

Otra herramienta de gestión muy interesante de Ubercart son los Reports. Mediante estos podremos tener una visión general del rendimiento de la tienda virtual. Para visualizar los diferentes Report deberemos ir a “Administer > Store administration > Reports” y allí seleccionar el tipo de Report que deseamos consultar: el “Customer report” ,el “Product report”, el “Sales reoport” o el “Sales tax report”.

Ubercart comprende  módulos que realizan operaciones económicas, tarjetas de crédito etc. lo que significa que deberemos prestar mucha atención a los permisos de cada uno de los diferentes roles implicados en la utilización de estos.