Drupal Commerce

De WikiCE


Banner drupal.jpg

Contenido

Introducción

Drupal es un framework de gestión de contenido modular multipropósito y muy configurable que permite publicar artículos, imágenes, u otros archivos y servicios añadidos como foros, encuestas, votaciones, blogs y administración de usuarios y permisos. Drupal es un sistema dinámico: en lugar de almacenar sus contenidos en archivos estáticos en el sistema de ficheros del servidor de forma fija, el contenido textual de las páginas y otras configuraciones son almacenados en una base de datos y se editan utilizando un entorno Web.

Es un framework libre, con licencia GNU/GPL, escrito en PHP, desarrollado y mantenido por una activa comunidad de usuarios. Destaca por la calidad de su código y de las páginas generadas, el respeto de los estándares de la web, y un énfasis especial en la usabilidad y consistencia de todo el sistema.

El diseño de Drupal es especialmente idóneo para construir y gestionar comunidades en Internet. No obstante, su flexibilidad y adaptabilidad, así como la gran cantidad de módulos adicionales disponibles, hace que sea adecuado para realizar muchos tipos diferentes de sitio web.

Funcionalidades

Drupal es un framework de contenidos multipropósito que puede usarse para aplicaciones como por ejemplo:

  • Portales comunitarios
  • Foros de discusión
  • Sitios web corporativos
  • Aplicaciones de Intranet
  • Sitios personales o blogs
  • Aplicaciones de comercio electrónico
  • Directorio de recursos
  • Sitios de redes sociales

Origen de Drupal

Drupal fue originalmente escrito por Dries Buytaert y es el Software usado para impulsar por ejemplo a los sitios web Debian Planet, Spread Firefox, Kernel Trap y White House.

A pesar de que empezó como un pequeño BBS, Drupal ha llegado a ser mucho más que sólo un portal de noticias gracias a su arquitectura flexible. Drupal se compone de una infraestructura base y un conjunto de Módulos que ofrecen un amplio conjunto de funciones, incluyendo sistemas de comercio electrónico, galerías de fotos, administración de listas de correo electrónico, e integración de CVS. Es posible añadir módulos de terceros para modificar el comportamiento de Drupal u ofrecer nuevas funciones.

Drupal se usa, entre otros, en Intranets de compañías, enseñanza en línea, comunidades de arte y Administración de proyectos. Muchos piensan que la relevancia de Drupal en las comunidades de usuarios es lo que lo hace destacarse de la competencia.

Conceptos generales de Drupal

Módulo

El módulo (module) es un software que extiende las funcionalidades y/o características de Drupal. Viene con módulos precargados según la versión, a los cuales se les puede añadir los que se necesite según la funcionalidad que tenga el sitio.

Usuario, Permiso, Rol

Cada visitante del sitio que tenga ingreso al mismo o no (como visitante anónimo) es considerado un Usuario para Drupal. Se pueden definir los tipos de usuario desde el núcleo de Drupal en la parte de Perfil (profile) y los campos asociados a cada usuario. Los Usuarios anónimos tendrán el ID cero (0), mientras que los que se encuentran registrados el ID uno (1). A éstos Usuarios se les asignará los Permisos por medio de Roles, pudiendo crear diferentes tipos de roles además de los preestablecidos por defecto, para luego agregarle o quitarle permisos según la necesidad del sitio.

Nodo

El Nodo (node) es un término genérico para cada pieza de contenido del sitio. Algunos ejemplos de nodos pueden ser: páginas en libros, temas de discusión en foros, entradas en blogs, nuevos artículos, etc. Cada nodo será un tipo de contenido que tendrá un ID, un título, una fecha de creación, un autor, un cuerpo o body y otras propiedades, también según que otros módulos se encuentre usando agregará más propiedades a cada nodo.

Comentario

El Comentario (comment) es otro tipo de contenido dentro de Drupal, ya que cada comentario es una pequeña pieza de contenido que un usuario envía a un nodo específico, por ejemplo, cada pieza de comentario dentro de una discusión en el foro.

Taxonomía

La Taxonomía (taxonomy) es el sistema mediante el cual Drupal clasifica el contenido y es uno de los módulos del núcleo de Drupal. Se pueden definir los vocabularios propios como grupos de términos de taxonomía. Cada tipo de vocabulario puede ser agregado como uno o más tipos de contenido y por ello, los nodos en el sitio pueden ser clasificados según agrupaciones en categorías, etiquetas o como cualquier cosa que se elija.

Base de datos

La información de Drupal depende de la base de datos, cada información se encuentra en una tabla dentro de la base de datos. Por ejemplo, la información básica de los Nodos se encuentra en la tabla de Node.

Path

Cuando se visita un sitio con Drupal, una parte de la dirección de URL es conocida como path. Es la información enviada por el navegador a la base de datos. Si se esta viendo la página http://drupal.org/node/16785 el path será "node/16785". Por defecto, luego de la instalación del sitio se proseguirá con "?q=". Pero con el sistema de URL limpias que se puede activar desde la administración se puede quitar ese atributo.

Plantilla

La Plantilla (theme) controlará cómo se visualizará el sitio, el diseño y los colores. Consiste en una o más filas en PHP que definen la salida HTML, con una o más filas en CSS definiendo las fuentes, colores y otros estilos.

Región, Bloque, Menú

Drupal se encuentra dividido en Regiones (regions) que pueden incluír la cabecera, el pie, las barras laterales, la sección principal de contenido. Los Bloques (blocks) es la información que se visualiza en las diferentes regiones, pudiendo tomar la forma de menús (como el menú de navegación) o visualizaciones de módulos (como los contenidos más vistos del foro) o información estática o dinámica que fue creada por un usuario (como eventos). Existen tres menús estandar en Drupal: Enlaces primarios, Enlaces secundarios y Menú de navegación. Los primarios y secundarios son construídos a criterio de los administradores y mostrados automáticamente. También se pueden crear menús personalizados mediante la creación de bloques. Conceptos generales

Módulos

Existen tres tipos de módulos de Drupal, llamadas las "3 C":

  • Core (nucleo): son los módulos provistos por Drupal al instalarse, algunos de ellos fueron contribuciones de la comunidad de Drupal que se incorporaron.
  • Contributed (contribuídos): son los módulos que son compartidos para la comunidad de Drupal, están bajo GNU de Licencia Pública (GPL).
  • Custom (personalizados): son los módulos creados por el desarrollador del sitio. Guía de desarrollo de módulos

En Drupal se pueden ampliar sus funcionalidades mediante extensiones llamadas módulos programados por su comunidad de usuarios. Entre los más importantes Módulos libres contribuidos por la comunidad que no están incluidos en la distribución oficial, se pueden destacar:Utilización de los módulos de Drupal

  • Views
  • Content Construction Kit (CCK)
  • Token
  • Pathauto
  • FileField
  • Administration menu
  • ImageField
  • ImageAPI
  • ImageCache
  • Commerce

Novedades de la versión 7

Requerimientos mínimos del sistema

  • Base de datos: MySQL 5.0.15 o PostgreSQL 8.3
  • PHP Versión: 5.2 o superior
  • PHP Memoria: 40 MB - 64 MB

En cuanto a la seguridad se reformaron las tareas programadas como el "cron.php", el ingreso como usuario y el sistema de contraseñas, también la actualización de los módulos. Se agregaron más tareas administrativas desplegables, las tareas programadas del Cron se realizan desde la administración sin necesidad de scripts en el servidor web, se rediseñó la fortaleza de la contraseña entre otras cuestiones.

En la base de datos se agregó los INSERT, UPDATE, DELETE, MERGE, y SELECT y se agregó soporte para las bases de datos SQLite. Se incluye la ayuda de las aplicaciones dentro del núcleo de Drupal. Se eliminaron las plantillas de "Bluemarine", "Chameleon" y "Pushbutton" y se incorporan las nuevas llamadas "Bartik" para la vista de usuario, "Seven" para la administración y "Stark".

Se actualiza el núcleo de JavaScript a JQuery versión 1.4.2 y también actualiza la librería de jQuery a la versión 2.36 y se añade jQuery UI 1.8. Lo nuevo en Drupal 7

Drupal Commerce

Drupal Commerce es un nuevo framework de comercio electrónico desarrollado de forma nativa para Drupal 7 con el objetivo de hacer de Drupal un referente en el mundo del ecommerce open source.

Componentes de Commerce

Componentes drupal.png

Los productos están separados en una parte de display (nodos) y una nueva entidad “product” que se relacionan a través de un campo “product reference”. Esto supone una gran ventaja de cara a la arquitectura y flexibilidad pero la usabilidad por defecto se ve afectada.

Características

Concepto de Entity

Las entidades añaden una nueva capa de abstracción basada en objetos sobre los datos que permite que todo el contenido comparta API y workflow Nodos, usuarios, términos de taxonomía, vocabularios, comentarios, ficheros... son ahora entidades. “Everything is a node” vs “Nodes are entities too”

Entities como base de Commerce

  • Entidades en Drupal Commerce: Orders, Products, Line items, Transactions, Profiles.
  • La capacidad de añadir campos a entidades (propiedad fieldable) permite extenderlas con diferentes datos asociados.
  • Es posible definir otras entidades para casos concretos, por ejemplo Commerce Delivery o Commerce Shipping

Entity API

El módulo Entity API se crea para facilitar el acceso a las entidades y para rellenar los huecos que le faltan al core de Drupal.

  • Añade elementos muy interesantes como las propiedades, exportables, interfaz de administración o los metadata wrappers
  • También proporciona un controlador de CRUD estándar para la mayoría de entidades.

Interfaz de usuario basada en Views

Drupal Commerce carece de pantallas de administración y gestión propias, todos los listados se basan en el módulo Views 3 y son totalmente configurables... y opcionales.

Product References, Prices...

Drupal Commerce hace un uso extensivo del nuevo Field API.

  • Los productos se relacionan con los “Product Displays” a través de un campo “Product Reference”
  • Los pedidos se relacionan con las líneas de pedido a través de un campo “Line item Reference”.
  • El formulario de añadir al carrito es un Display Formatter de un campo de tipo precio.

Perfiles de usuario extensibles

Los perfiles de usuario o “Customer Profiles” son entidades a las que se les puede añadir campos.

  • Se asocian a cada usuario que hace una compra.
  • La base de los perfiles de usuario es el nuevo tipo de campo dirección, AddressField.
  • Además de la dirección, el perfil de usuario puede contener cualquier información, NIF, Teléfono, que se puede añadir desde interfaz.

Addressfield

“Este módulo solo hace una cosa, pero la hace bien: Almacena direcciones postales internacionales”

  • Provee soporte de direcciones para los customer profiles de Commerce.
  • Módulo para Drupal 7 que almacena direcciones postales en el formato estándar xNAL (Usado por google maps para geocoding).

Workflow con Rules

Si el interfaz de Drupal Commerce está basado en Views, todas las opciones de flujo de trabajo se basan en Rules. Modificaciones de precios como descuentos o impuestos están basados en Rules y por ello son totalmente configurables, lo mismo pasa con el checkout, el proceso de pago y customer profiles

Sistema de pagos transaccional

Un ejemplo de Rules y Entities en Drupal Commerce es el sistema de pagos por transacciones. Los pagos quedan registrados en una entidades llamadas Payment Transactions que registran el balance de compra a través de Rules, es decir, el método de pago es una Rule. Se pueden lanzar acciones de Rules adicionales antes/después de los pagos.

Commerce sin "javascript" propio

Drupal Commerce apenas tiene unas pocas líneas de js propio, se apoya en gran medida en #states y #ajax

Tests unitarios y de integración

Drupal 7 incorpora el módulo Simpletest en su núcleo y tiene unit testing e integration testing en todos los componentes por defecto. Drupal Commerce incorpora integration testing para todos sus componentes y empieza a integrar unit testing. Tener los elementos verificados proporciona seguridad y calidad en los componentes.

Extensiones disponibles

  • Migración: Commerce Feeds, Commerce Migrate
  • Usabilidad: Commerce Product Display Manager.
  • Utilidades: Commerce File, Commerce Coupon, Commerce Google Analytics, Commerce Stock, Commerce Shipping
  • Pago: Commerce Paypal, Commerce Sermepa

Más en: Drupal Commerce Contributions

Ejemplos de tiendas con Drupal Commerce

New York Ioby.png
Web de venta de tíckets para espectáculos .png
Web de búsqueda de centros lingüísticos en todo el mundo.png
Web alemana de venta de productos de estética.png

Demostración de tienda electrónica con Drupal Commerce

Para poder instalar Drupal, necesitamos cumplir unos requisitos previos:

  • Tener instalado un servidor web, por ejemplo Apache.
  • Tener instalado PHP
  • Servidores de base de datos como MySQL
  • Algún explorador web como Firefox.

Una vez tenemos instalados las aplicaciones necesaria, necesitamos crear una base de datos para alojar nuestra actividad de comercio electrónico.

Para poder montar nuestra tienda electrónica con Drupal Commerce, lo primero será instalar la aplicación.

Para ello hay que seguir estos pasos:

  • Nos descargamos la aplicación del sitio web Drupal
  • Descomprimimos el archivo descargado y lo alojamos donde tenemos en nuestro ordenador el sitio donde alojamos las web por ejemplo en el directorio httpds
  • Abrimos un navegador web y escribimos en la URL localhost
  • Aparecerá un asistente de instalación y seguimos las siguientes instrucciones:
  1. Seleccionar la instalación QuickStart y hacer clic en el botón Save and continueSelect an installation profile - Drupal 2011-11-12 20-06-00.png
  2. En el menú de selección de lenguaje aparecerá solo el idioma English (Inglés), que es el que viene por defecto (mas adelante se le dirá cómo cambiar el idioma de Drupal a Español), seleciónelo y haga clic en el botón Save and continue.Instalar drupal2.png
  3. Ingresar los datos de los tres campos disponibles, donde:
    -Database name es el nombre de la Base de Datos es el que se colocó al crear la base de datos.
    -Database username y Database password son el nombre de usuario y la contraseña respectivamente que se colocaron cuando se instaló el MySQL. Instalar drupal3.png
  4. A continuación comenzará a instalar el perfil
  5. Luego del paso anterior se mostrará el siguiente gráfico en la página donde se está instalando Drupal Instalar drupal4.png
  6. Luego completar el formulario, donde:
    -Site name es el nombre del sitio web.
    -Site e-mail address es el e-mail del sitio.
    -Username es nombre de usuario para la cuenta del administrador del sitio drupal.
    -Password es la contraseña para el administrador.
    -Default country es el país del sitio.
    -Default time zone es la zona horaria.
    -Verificar que estén seleccionadas las casillas de actualizaciones automáticas (check for updates automatically) y notificaciones al correo (Receive e-mail notifications). Instalar drupal5.png
  7. Hacer clic en el botón Save and continue.
  8. Si la instalación es correcta debe de mostrarse como en la siguiente imagen. Instalar drupal7.png
  9. Hacer clic en el enlace Visit your new site y aparecerá la pantalla de bienvenida de su página como se aprecia a continuación. Instalar drupal8.png

Por defecto tenemos configurada las funciones básicas de drupal para poder comenzar con nuestro sitio web.

  1. En el menú que aparece en la parte superior de a web, podemos controlar el funcionamiento
    del sitio, el menú muestra lo siguiente:
    • Panel de Control. Permite ver y personalizar el cuadro de mandos.
    • Contenido. Administra contenido y comentarios.
    • Estructura. Administra bloques, tipos de contenido, menús, etc.
    • Apariencia. Selecciona y configura los temas.
    • Personas. Gestiona las cuentas, roles y permisos de usuarios.
    • Módulos. Permite activar o desactivar módulos.
    • Configuración. Administra las opciones generales.
    • Informes. Ver informes, actualizaciones y errores.
    • Ayuda. Referencia de uso, configuración, y módulos.
  2. Para retocar nuestro sitio sólo tenemos que entrar en el apartado correspondiente y
    realizar los pasos indicados.
Herramientas personales