Archive for the ‘magento’ Category

Tutorial Magento - Entendiendo su estructura

Que es Magento y para que nos puede servir

Magento  es un CMS para la creación de tiendas virtuales, está escrito con ZEND FAMEWORK de base y uno de sus puntos fuertes es que tiene la posibilidad de manejar varias tiendas a la vez con una única instalación, de manera que entre sus distintas tiendas puedan compartir la información de sus clientes. Un ejemplo puede ser una multinacional de Opticas, esto hace verdaderamente potente a Magento.

Estructura en Magento

La estructura de Magento se basa en dos grupos importantes:

  1. Website
  2. Tienda (store)  con sus vistas de tienda ( store views)

Website

El website para Magento lo podríamos definir como una compañía o empresa que a su vez esta tiene tiendas repartidas o simplemente es una Compañía que tiene una única tienda.

Tienda

Las tiendas para Magento (store) son una colección de vistas de tienda (store views) al menos siempre tiene que tener una vista de tienda, digamos un público objetivo por idioma.

Ejemplo un tienda que solo venda productos para un publico objetivo de habla Inglesa, con lo cual sólo tendrá un  store view y será en Inglés.

Magento puede ser multi-compañía, por lo cual dentro de una misma instalación podemos tener muchos Websites y estos a su vez tener muchas tiendas (stores) que tengan distinto publico objetivo ( store views) idiomas.

Por lo tanto Magento permite tres escenarios

  1. Un empresa con sus múltiples tiendases_terminology-scenario1
  2. Varias empresas con 1 o mas tiendas y con 1 o más vistas de tienda ( idiomas)es_terminology-scenario21
  3. Un empresa con una única tiendaes_terminology-scenario31

Interface

Tanto los websites como las tiendas pueden llevar sus  temas personalizados, Magento incorpora el aspecto de interfaz, que es una colección de temas que determinan el aspecto visual y funcionalidades del frontend de tu tienda. Una interfaz puede ser asignada tanto en el nivel de Website y/o en el nivel de Vista de Tienda por medio del panel de administración.

Temas

Un tema es un conjunto de archivos de organizacion visual (Layouts), plantillas (Templates) y/o estilos (Skins) que dan la apariencia a nuestra tienda. Magento tiene dos grandes tipos:

Tema predeterminado (Default Theme)

Cada interfaz viene con un tema predeterminado (por defecto) llamado “default”, el cual es el tema principal de una interfaz. Cuando asignas una interfaz a una tienda, la aplicación automáticamente busca el tema con el nombre “default” y lo carga en el front-end. Para personalizar el diseño de tu tienda, puedes modificar este tema o crear un tema no predeterminado (Non-default Theme) adicional y cargarlo junto con el default. El tema “default” debe contener todos los “layouts” requeridos, “templates” y “skins” para funcionar sin errores y, por lo tanto, es el tema más bajo en la jerarquía de temas.

Tema no predeterminado (Non-default Theme)

Un tema no predeterminado o non-default puede contener tantos o tan pocos archivos como necesites. Este tipo de tema está pensado para darle un diseño de temporada a una tienda sin tener que recrear todos los archivos por completo. Creando unas pocas imágenes y actualizando algún archivo de estilo en CSS, puedes hacer que tu tienda deje verse como siempre, para convertirse, por ejemplo, en una tienda adornada para la temporada de Navidad.

Estructura de un tema

Layouts (estructuras):

Ubicado en “app/design/frontend/your_interface/your_theme/layout/”. Estos son archivos XML que definen la estructura de bloques para diferentes páginas así como controlan la información META y la codificación de páginas.

Templates (plantillas)

Ubicados en “app/design/frontend/your_interface/your_theme/template/”. Son archivos PHTML que contienen marcas XHTML y cualquier código PHP necesario para crear la lógica de la presentación visual.

Skins (máscaras)

Ubicados en “skin/frontend/your_interface/your_theme/”. Son imágenes, estilos en CSS y archivos de Javascript para bloques específicos que complementan tus XHTML.

Bloques

Magento distingue entre dos tipos de bloque los estructurales (para el layout) y los bloques de contenido (datos)

magento-bloques

Más información http://www.magentocommerce.com/wiki/groups/201/traduccion._guia_de_diseno_para_magento

Arquitectura de Magento

Magento es un CMS que se puede adaptar a todo tipo de tiendas, esta flexibilidad hace que cada desarrollo pueda necesitar hacer cambios en determinados componentes. El problema de hacer estos cambios es que si posteriormente saliese una actualización deberíamos adaptar ese componente a nuestros cambios y así progresivamente. Magento tiene una estructura para solucionar este problema.

En el directorio app/code ( codigo de la aplicación) Magento muestra 3 carpetas que son:

  1. core - es el nucleo de Magento ( esto nunca se debería de tocar)
  2. comunnity - contiene todos los componentes que nos bajamos de terceras persona o del Magento Connect
  3. local - Son nuestros propios componentes y es aquí donde debemos modificar cualquier elemento que necesitemos, al estar basado en Zend tenemos a nuestra disposición la herencia de clases,  mediante extensiones podremos modificar lo que necesitemos.

Creando nuestra primer proyecto en Magento

Como ya habíamos explicado tenemos diferentes escenarios, vamos a crear el ejemplo más común el escenario 3. Crear una compañia que tiene una tienda para un publico objetivo ( español).  Lo primero será crear nuestra compañia ( website). Para realizar esto debemos crear los tres componentes mínimos, website , store y store view. Por defecto Magento tiene un website ya creado (Main Website) pero nosotros en este ejemplo vamos a crear uno nuevo.

1 Creando nuestro website

Nos dirigimos al panel de administración a la siguiente ruta.  Sistema > gestionar tiendas > crear un sitio web. Nos aparecerá el siguiente formulario con dos campos obligatorios:

  1. Nombre: del sitio web ( empresa) en mi caso Opticas Nervión.
  2. Código: El código del sitio web debe contener sólo letras (a-z), números (0-9) o guiones bajos(_), el primer carácter debe ser una letra

2 Creando nuestra tienda ( store)

Una vez guardado el website nos de vuelve a la pantalla donde podemos pulsar ahora en crear nueva tienda. Veremos el siguiente formulario

magento-tienda

Debemos seleccionar a que sitio pertenece en este caso seleccionaremos el que estamos creando y le damos un nombre a nuestra tienda. En mi caso el mismo que el del website ya que no va a tener múltiples tiendas . Opticas Nervión. Por último, debemos escoger una categoría por defecto ya hablaremos de esto más adelante.

3 Creando nuestra vista para la tienda ( store view)

El último paso es indicar el público objetivo que magento lo divide por idiomas, por lo que debemos de crear una vista de tienda por cada idioma que se necesite. En nuestro caso vamos a crear una vista para el idioma español. pulsamos en crear nueva vista de tienda y veremos el siguiente formulario.

magento-tienda-2

  • En el select de tienda escogemos a cual de ellas será asociada la vista que estamos creando
  • En nombre , podemos colocar el nombre de la tienda
  • En código que es de uso interno lo normal es colocar el idioma que va usar esa tienda
  • En estado lo tenemos que dejar habilitado
  • Y por último colocamos el orden

Ahora sólo hace falta indicarle a esta vista de tienda ( store view) el idioma que queremos que use, en nuestro caso el español, para ello nos vamos a Sistema > configuración > general y en el select de arriba a la izquierda tenemos que seleccionar nuestra vista de tienda.

magento-tienda-3

Una vez seleccionado a la derecha ya podemos escoger el locale ( el idioma) . Para cambiar los valores basta con pulsar sobre el checkox de usar sitio web y de esta forma podemos sobrescribir esos valores.

Instalacion de Magento + primeros pasos

En este post dejaré unos pequeños apuntes de como instalar este CMS para montarnos una tienda online.

Pre-instalación - consiguiendo los archivos fuentes y preparando el servidor

Lo primero será conseguir la ultima versión estable, para ello vamos a usar la opción versionada (svn) que Magento nos proporciona.

svn checkout http://svn.magentocommerce.com/source/branches/1.3

Cuando termine veremos la siguiente estructura de carpetas y ficheros.

imagen-magento

El siguiente paso será crearnos una Base de datos en nuestro servidor y configurar el apache para que apunte al directorio donde hemos hecho el checkout. En mi caso he creado un virtualhost con la siguiente configuración:

<VirtualHost *:80>
ServerAdmin quelicmATgmail.com
DocumentRoot “D:\tiendas-online\magento”
ServerName magento.qc
ErrorLog  logs/magento.qc-error_log
CustomLog logs/magento.qc-access_log common

<Directory “D:\tiendas-online\magento”>
Options Indexes MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

Instalación de Magento

Una vez configurado el servidor, si todo está correcto lanzamos el proyecto, en mi caso la dirección es http://magento.qc/ que automáticamente redirige a http://magento.qc/index.php/install/ veremos la siguiente pantalla.

imagen-install-1

La siguiente fase es la localización. Ponemos nuestro país, la franja horaria,  nuestra moneda y pasamos a la configuración.

En la configuración colocaremos el nombre de la base de datos para el proyecto, así como los datos del usuario para manejarla. Por último creamos nuestar cuenta de usuario administador para Magento y si todo ha ido bien nos mostrará la siguiente pantalla.

imagen-install-2

Es muy importante anotar el código que nos muestra, ya que Magento lo utiliza para cifrar las contraseñas, tarjetas de crédito etc. En este ejemplo mi código es bd4e077b7a816b601c736b2fe0e0a764

Ahora, ya estamos listos para volver a nuestra tienda en su parte pública ( frontend), tendremos que ver la siguiente pantalla. En esta captura se muesta una instalación limpia de Magento, podemos instalarle una BD de prueba que nos ofrece Magento pero en este tutorial vamos a partir desde cero.

magento-limpio

Completar la instalación

Una vez hemos configurado e instalado nuestra copia de Magento, necesitamos hacer unos pasos para completar la instalación estos pasos son los siguientes:

  • Magento Connect
  • Instalar el idioma español
  • Crear el tema

Magento Connect

Magento Connect sirve para instalar módulos, extensiones, themes que pueden ser de gran utilidad y también para actualizar Magento, cada vez que existe una nueva versión de una forma realmente fácil e intuitiva. Para entrar a Magento Connect debemos acceder al Administrador de nuestra tienda que será /admin  en mi caso http://magento.qc/admin

Veremos el siguiente formulario y entraremos con la cuenta del usuario administrador que hemos creado en la instalación.

magento-admin

Una vez dentro del panel de administración nos vamos a:  system > Magento Connect > Magento Connect Manager. Nos mostrará la siguiente pantalla, donde deberemos introducir la cuenta del administrador ( de nuevo), ya que únicamente este usuario es el que podrá acceder a gestionar las extensiones.

magento-connect

Una vez logueados podemos instalar los módulos que necesitemos. Veremos la siguiente pantalla.

magento-connect-2

El sistema de instalación de módulos, themes en Magento es muy sencillo, basta con mirar la web http://www.magentocommerce.com/magento-connect buscar lo que nos interesa y coger la key que debemos usar. Después en el cuadro de texto  la introducimos. De esta forma es todo mucho más seguro y fácil de instalar.

Los primeros módulos a instalar y casi obligatorios en cualquier instalación de magento son los del core, la clave es la siguiente.

magento-core/Mage_All_Latest

Esto hará que saque una ventana de comandos en la página y podremos ver que está realizando, tardará un poco ya que va a instalar unas cuantas cosas. Cuando termine, podremos ver la lista de modulos que nos ha instalado y que tendremos disponibles en nuestro Magento.

magento-connect-3

Instalar el idioma español

Para la instalación del idioma ( ojo sólo para el backend, los theme tienen su propia traducción) seguiremos estando en el Magento Connect , para instalar esto debemos primero irnos a la pestaña settings y marcar el estado preferido de los modulos a BETA, una vez esto volvemos a la pantalla anterior. Para instalar este idioma debemos usar la siguiente clave.

magento-community/Locale_Mage_community_es_ES

Ahora podemos volver a la administración y comprobar que tenemos el idioma español instalado.

Crear el tema

Este paso es importante, por defecto Magento trae un thema (default blue skin) pero este no deberíamos de usarlo ya que si actualizamos nuestra instalación, es posible que podamos perder algún cambio, la recomendación es siempre crear un nuevo tema (basta con copiar el default) o instalar un theme nuevo desde el Manager Connect.

Nosotros vamos a optar por instalar el theme blank por lo que volvemos a nuestro Manager Connect y usamos su clave. Con esto, estaría instalado pero no seleccionado.

magento-core/Interface_Frontend_Default_Blank

Como Cambiar de theme en Magento

Para seleccionar un nuevo tema para nuestro frontend. debemos volver al panel de administración y seguir la siguiente ruta Sistema -> configuración -> General -> diseño -> temas veremos el siguiente formulario.

magento-theme

Tenemos que rellenar con el nombre del theme elegido, que no es otro que la carpeta padre del theme ( por si los instalamos a  mano o creamos nosotros uno , en lugar de por el Magento Connect).

Los theme se guardan en la siguiente carpeta:

app\design\frontend\default\

En esta ruta podemos ver nuestra carpeta blank, que es la que hemos fijado por defecto. Para guardar los cambios pulsamos el botón de guardar configuración que aparece arriba a la derecha.  Una captura de nuestro nuevo tema.

magento-theme-blank

Temas oficiales de Magento

Los desarrolladores de Magento han creado varios temas oficiales  y que se pueden descargar desde Magento Connect, son los siguientes:

Otros themes que podemos encontrar en Magento Connect son:

Extensiones y módulos realmente útiles en Magento

A parte de los que ya hemos explicado y que son necesarios existen muchísimos más, algunos muy recomendables son:

  • Pack de plataforma de pago servired - Como su nombre índica es un  módulo para facilitar la implatación de esta pasarela de pago.
  • fontis-wysiwyg-editor - Nos añade a los formularios del backend la posibilidad de añadirle un wysiwyg como Tinymce o Fckeditor.
  • advanced-cash-on-delivery - Contra reembolso personalizado permite configurar los reembolsos de todos los metodos de envio que tengamos instalados en nuestra tienda Magento.