jueves, 29 de mayo de 2014

Magento

Magento


Magento es un gestor de contenidos web opensource para comercio electrónico. És una solución flexible y escalable con la que se pueden desarrollar prácticament todo tipo de proyectos e-commerce.

Ofrece muchas funcionalidades entre las que destacan especialmente la gran flexibilidad en el diseño y el potente panel de control.

Además está respaldada por una de las empresas más importantes de internet, Ebay, que en 2011 adquirió la empresa Magento.

Por estos motivos ya es la aplicación web más usada para el desarrollo de comercios electrónicos en todo el mundo.

Características:



Algunas de las carácterísticas más destacadas que ofrece magento son las siguientes:
  • Flexibilidad absoluta en la personalización del diseño
  • Gestión integral del catálogo de productos
  • Promociones y herramientas de marketing
  • Optimización SEO (SearchEngineOptimization)
  • Soporte de internacionalización (idiomas, monedas)
  • Diferentes sistemas de pagos on-line
  • Gestión avanzada de pedidos y ventas
  • Estadísticas y reportes
  • Visualización para dispositivos móviles.
  • Comentarios de los productos
  • Integración con redes sociales

Elementos y Terminologías de los sitios Magento



Magento está hecho de diferentes elementos que definen la funcionalidad, diseño y lógica de negocios del sitio. Con el objetivo de continuar con la guía de usuario, es crucial que usted tenga una buena comprensión de las terminologías utilizadas para describir los elementos del sistema Magento. 


Sitios Web y Tiendas


Una de las características más poderosas de Magento es la habilidad para gestionar múltiples sitios Web y tiendas desde un administrador (”back-end”).

Esto permite a los propietarios de la tienda gestionar tiendas en diferentes URLs, mostrar los mismos productos en diferentes idiomas en la misma URL, junto con una variedad de otras capacidades. Si usted solo venderá sus productos desde de una única URL en un solo idioma, no necesitará usar esta funcionalidad, pero la habilidad de expandirse fácilmente a otros idiomas hace a Magento escalable a medida que su negocio crece fuera de su mercado local.

Sitios Web

Un sitio web está conformado por una o más tiendas que comparten la misma información del cliente, pedidos y carro de compras. Este es un término muy amplio que puede adoptarse para definir las necesidades únicas de cada uno de los comerciantes.

Tiendas



Las tiendas pueden configurarse de diferentes maneras, pero recuerde que si ellas son parte de un mismo sitio web, compartiran cierta información.


Vista de tiendas




Las vistas de tiendas son usadas principalmente para ocupar diferentes idiomas, por lo tanto si usted quisiera tener una tienda que aparezca en inglés y español, por ejemplo; podría crear sólo una tienda y crear dos diferentes vistas de tiendas para ésta.


Los siguientes, son algunos escenarios para definir los diferentes usos de los sitios web y las tiendas.


Escenario 1: Un sitio Web con múltiples tiendas.






Una compañía llamada “Dubloo Inc.” crea una presencia online con 3 tiendas separadas de ropa, cada una atendiendo a un mercado de diferente nivel de precios. “Dubloo Inc.” quiere que sus tres tiendas compartan la información de clientes y pedidos. En este escenario, “Dubloo Inc.” tendrá un website y tres tiendas. “Tienda” (Store) definiría el nivel de precios y “Sitio Web” (website) sería la raíz de “Dubloo Inc.”.



Escenario 2: Dos tiendas con dos vistas de tienda cada una.



Una compañía de ventas de Computadores Portátiles quiere abrir dos sitios web (websites) separados. Ambos venden portátiles pero a diferentes precios. También quieren ofrecer en cada sitio la opción de idioma, inglés y español, cada uno con sus propios ítems seleccionados de acuerdo a la selección de idioma. Necesitan sincronizar la información de clientes y pedidos por sitio. En este escenario, “tienda” (store) definiría cada idioma bajo su respectivo “sitio web” (website). “Sitio Web” (Website) definiría “My laptops” y “Cheap laptops” (baratas).

Escenario 3: Un sitio Web con una tienda y una vista de tienda


El caso más común será el de un sitio Web y una tienda, pero entendiendo la funcionalidad de múltiples sitios Web y tiendas le ayudará a entender por que ciertos valores son definidos como globales por defecto, y por que otros son sólo asignados a nivel del sitio web o la tienda.


Arquitectura de Magento



Magento está construido sobre el Zend Framewok, para asegurar que el código base sea seguro y escalable. Las razones para escojer Zend Framewok son muchas, pero a un nivel básico el Zend Framework proporciona una librería de código orientado a objetos con el compromiso de una sólida compañia detrás de él.



Usando este framework, Magento fue construido con tres principios fundamentales en mente:

  1. Flexibilidad: Creemos que cada solución debería ser tan única como los negocios que están detrás de ella. El código de Magento le permite una personalización perfecta.
  2. Actualizable: Separando el código del núcleo, del de la comunidad y las personalizaciones; Magento puede ser personalizado fácilmente sin perder la habilidad de actualizarse.
  3. Velocidad y Seguridad: Los estándares de codificación usados por los desarrolladores, siguen las mejores prácticas para maximizar la eficiencia del software y proporcionan una segura vitrina en línea.

En este capítulo introduciremos los conceptos claves y teminologías de Magento. Incluso si usted no quiere ser desarrollador o diseñador para Magento estos conceptos y terminologías le ayudarán a implementar su propia tienda en línea.


Núcleo

El núcleo de Magento contiene todas las funcionalidades incluídas en la versión para descarga. El núcleo del código es una coleción de módulos desarrollados o certificados por el equipo principal de desarrollo de Magento. La edición de los archivos del núcleo no es recomendable y deshabilitará la habilidad para actualizar Magento en el futuro.

Local

Las extensiones locales son personalizaciones de magento que residen únicamente en una copia local del usuario. Estas extensiones serán puestas en una carpeta local de tal forma que no interfieran con las actualizaciones del núcleo del código, y en un orden para diferencialos de las contribuciones de la comunidad. Existen diferentes tipos de extensiones, que revisaremos en un momento, pero lo importante es que todas residen en el mismo directorio.

Las extensiones locales funcionan tal como lo hace el código del núcleo, sólo el directorio es diferente.
La ubicación de la carpeta local es app/code/local

Comunidad
Las contribuciones de la comunidad son justamente eso, y cuando se descargan se ubican en la carpeta “community”. Al igual que las extensiones locales se mantiene separado del código del núcleo de Magento para que los propietarios de las tiendas puedan disfrutar de funcionalidades adicionales sin comprometer la capacidad de actualizarse a futuras versiones de Magento.

La ubicación de la carpeta “community” es app/code/community

Extensiones

Es uno no o más paquetes de archivos unidos para extender la funcionalidad de Magento. Términos estrictos y condiciones prohiben que las extensiones modifiquen el núcleo del código, asegurando que cualquier funcionalidad extendida no le prohiba la actualización cuando una nueva versión de Magento sea lanzada.

Las extensiones pueden ser instaladas dese el panel de Administración o descargadas desde “Magento Connect”. 



Módulos



Un Módulo es una extensión que extiende las características y funcionalidades de Magento. Probablemente ya está familiarizado con la idea de módulos en otro software, pero si no, algunos ejemplos concretos de módulos podrían ser las integraciones adicionales con diferentes pasarelas de pago, o herramientas para elementos promocionales.



Interfaz

Una interfaz es una colección de temas que determinan la salida visual y funcionalidades del “sitio” (front-end) de su tienda. Una interfaz puede ser asignada a nivel de sitio web, a nivel de tienda o a nivel de Sitio Web y la tienda, a través del panel de administración. Trataremos la asignación de interfaces después en el libro, por ahora vamos a ver los componentes de un tema.

Temas

Un tema es una combinación de un diseño(layout), plantilla (template) y/o archivos de máscara (skins) que crean la experiencia visual de su tienda. Magento está cosntruído con la capacidad de cargar múltiples temas a la vez y por lo tanto distingue los temas en dos tipos.
  • Temas por defecto - Cada inrterfaz viene con un tema llamado ‘default’ que es el tema principal de un interfaz. Cuando asigna una interfaz a su tienda, la aplicación automáticamente le echa un vistazo a este tema y lo carga en el “sitio” (front-end). A fin de personalizar el diseño de su tienda, usted puede, modificar este tema, o crear un tema “Non-Default” adicional y cargarlo junto al que está por defecto. El tema por defecto debe contener todos los diseños, plantillas y máscaras para correr una tienda libre de errores y por esa razón es el menor tema en la jerarquía de temas.

  • Temas “Non-Default” - Un tema “non-default” puede contener tantos archivos como crea que necesite. Este tipo de tema está pensado para crear cambios de diseños temporales a una tienda, sin tener que crear un nuevo tema por defecto completo. Creando algunas imágenes y actualizando algo del CSS, puede fácilmente cambiar su tienda de algo normal a un tienda de temporada Navideña.
Vamos a mirar los componentes de un tema:
  • Diseños(Layouts) - Los diseños son básicamente archivos XML que definen la estructura en bloque para diferentes páginas. También controlan la información META y la codifación de la página. Los archivos de diseño están separados por cada módulo. Cada módulo trae consigo su propio archivo de diseño.

  • Plantillas(Templates) - Las plantillas son archivos PHTML que contienen marcas (X)HTML y cualquier etiqueta PHPnecesaria para crear la lógica para la presentación visual de la información y características.

  • Máscaras(Skins) - Las máscaras son bloques específicos Javascript, CSS e imágenes que complementan su (X)HTML. ¿Que son bloques, te preguntas? Buena pregunta, y no te preocupes, casi hemos terminado de definir los componentes de Magento.

Bloques



Los bloques son la forma en que Magento disingue el arreglo de funcionalidades en el sistema y crea una forma modular para manejar este arreglo desde el punto visual y funcional. Hay dos tipos de bloques y trabajan juntos para crear la salida visual.



  • Bloques Estructurales - Son bloques creados con el único propósito de asignar una estructura visual a una página de la tienda. Ejemplo podrían ser la cabecera, columna izquierda, columna derecha, columna principal y pié.
  • Bloques de Contenido - Estos son bloques que producen el contenido dentro de cada bloque estructural. Son representaciones de cada característica funcional en una página y emplea archivos del template para generar el (X)HTML a ser insertado dentro de su bloque estructural padre. Ejemplo son la lista de categorías, mini carros, etiquetas y listas de productos.

Instalacion de Magento





1.-Copie las carpetas de aplicaciones, la piel y js a la raíz de la instalación de Magento. Asegúrese de mantener intacta la estructura de carpetas de Magento.

2.-En su administración vaya a Sistema> Administración de caché y borrar todas las cachés





3.- Vaya a Sistema> IndexManagement y seleccione todos los campos. Luego haga clic en Reindex datos


MERCADO PAGO CONFIGURACIÓN


1.-Vaya a Sistema> Configuración> Ventas> Métodos de Pago. Seleccione MercadoPago. 

2.-Establece su país como la misma donde su cuenta se creó el, y guardar config. 

Nota: Si cambia el país donde se creó la cuenta de que necesita guardar config para actualizar los métodos de pago excluidos. 

3.-Establezca su CLIENT_ID y CLIENT_SECRET.
Obtenga su CLIENT_ID y CLIENT_SECRET en la siguiente dirección





Nota: La dirección URL estándar para el éxito de pago o pago pendiente es [yourstoreaddress.com] / index.php / la caja / onepage / éxito / pero se puede utilizar cualquier página que quieras


SINCRONIZA TU BACKOFFICE CON MERCADOPAGO (IPN)




1.- Ir a la configuración de MercadoPago IPN:








2.- Introduzca la URL de la siguiente manera: [yourstoreaddress.com] / index.php / mpexpress / IPN /


Instalación de la plataforma WAMP



Aunque la instalación de cada uno de los componentes de una plataforma WAMP es una opción interesante, esto resulta demasiado tedioso y en ocasiones nos podemos encontrar con diferentes problemas de instalación y/o configuración para hacer funcionar todos los componentes juntos. Por eso en esta guía se ha optado por la elección de una distribución WAMP ya existente en la que los diferentes componentes se encuentran ya configurados para funcionar correctamente.


Entre las distintas distribuciones WAPM analizadas, XAMPP, AppServ y WampServer, se ha elegido WampServer, pues las otras dos distribuciones vienen con una versión de uno de los módulos de PHP, la cual tiene un bug que no permite la correcta instalación de Magento.


Descarga e instalación de WampServer



Para la descarga de WampServer vamos a la pagina de descarga de dicha distribución:http://www.wampserver.com/en/download.php y procedemos a la descarga de la última versión disponible, la 2.0f en el momento de escribir esta guía.


Una vez descargado el paquete de instalación, procedemos a instalar la distribución haciendo doble click en el fichero descargado. Una vez terminada la copia de archivos, el instalador nos pregunta en primer lugar por el ejecutable de nuestro navegador preferido, para ello lo buscamos y continuamos. Tras esto nos pregunta por los datos de configuración de nuestro servidor SMTP, necesario para el envío de correo. Y finalmente nos ofrece iniciar el software recién instalado.


Una vez iniciado WampServer, podemos interactuar con los distintos servidores instalados por medio de una aplicación residente que podemos encontrar en la barra de notificación de Windows, como podemos ver en la sigiente imagen:













Configuración de Apache, MySQL y PHP




Una vez que tenemos instalado WampServer y por consiguiente Apache, MySQL y PHP, hemos de proceder a su configuración para el correcto funcionamiento de Magento.


0. Lo primero que podemos hacer es asignar una contraseña al usuario ‘root’ de MySQL. Si bien este paso no es necesario es recomendable para proveer al servidor MySQL de mayor seguridad ante accesos no autorizados. Para ello seleccionamos la opción phpMyAdmin de al aplicación de control de WampServer. Esto Abrirá uan ventana del navegador con la aplicación de gestión de servidores MySQL phpMyAdmin. Para asignar la contraseña seguiremos los siguientes pasos:


1. Hacemos click en la pestaña ‘privilegios:

2.-Una vez en la página de privilegios, procedemos a editar al usuario ‘root’ pulsando sobre el botón editar:




3.-En esta nueva página es donde asignaremos la contraseña al usuario. Para ello buscamos la sección ‘Cambio de contraseña’, rellenamos ambos campos con dicha contraseña y pulsamos ‘Continuar’ para guardar.

4.-Una vez hecho esto no podremos acceder de nuevo con phpMyAdmin a menos que editemos su fichero de configuración en consonancia al anterior cambio.

Una vez localizado el fichero de configuración procedemos a su edición:



1. Para ellos buscamos la linea con la variable de configuración ‘auth_type’ y cambiamos su valor de ‘config’ a ‘http’, con lo que cuando intentemos acceder a phpMyAdmin se nos pedirá el usuario(root) y contraseña para acceder a la aplicación.




2. Ahora es el momento de configurar el interprete de PHP para su correcto funcionamiento.








0. Para ello tenemos que editar el fichero de configuración php.ini incluido en la instalación. Otra vez vamos a la aplicación de control y en esta ocasión vamos a la carpeta PHP y allí hacemos click sobre ‘php.ini’.







                  1.        Una vez abierto con el editor, buscamos la parte del fichero donde se cargan las extensiones de php y nos aseguramos de que las siguienes extensiones no estén desactivadas: php_curl.dll, php_mcrypt.dll, php_pdo.dll y php_pdo_mysql.dll. Para ello nos aseguramos de que no tengan un ‘;’ delante de la linea de cada extensión, borrando dicho caracter en el caso de que lo tenga.
                  2.        Guardamos el fichero para continuar.
3.     Ahora le toca el turno de configuración a Apache.
0.-En la aplicación de control de WampServer abrimos la carpeta Apache y pulsamos sobre httpd.conf para editarlo





                  1.        Buscamos la linea de carga del módulo ‘mod_rewrite’: ' #LoadModule rewrite_module modules/mod_rewrite.so ' y eliminamos el caracter ‘#’ del comienzo de la línea para activar dicho módulo.
                  2.        Guardamos el fichero para continuar.
3.-Llegados a este punto, ya esta todo configurado para poder empezar con la instalación de Magento propiamente dicha. Lo único que resta es reiniciar los servidores para que tomen los cambios que hemos realizado. Para ello Pulsamos sobre la opción ‘Restart All Services’ de la aplicación de control de WampServer





Hasta aquí la instalación y configuración de la plataforma WAMP necesaria para la posterior instalación de Magento
Una vez hemos terminado con la instalación y configuración de los servidores es el momento de comenzar con la instalación de Magento. Para ello, lo primero que tenemos que hacer es descargarnos de la sección de descargas de la web de Magento la última versión disponible(1.2.1 en el momento de escribir esto) del paquete de instalación en el formato de compresión que prefiramos bajo el epígrafe ‘Full Release’.
En este momento procederemos a la instalación propiamente dicha:
1.     Una vez descargado el paquete de magento, pulsamos sobre al opción ‘www directory’ de la aplicación de control de WampServer, lo que nos abrirá una ventada del explorador de windows con la carpeta donde hemos de descomprimir el fichero que hemos bajado anteriormente. Recomiendo mantener la carpeta ‘magento’ dentro de la cual se encuentran todo los ficheros de la aplicación para no entrar en conflicto con otros proyectos futuros o ya instalados.
2.-Para la instalación de magento es necesaria la creación de una nueva base de datos en el servidor MySQL para ello procedemos como antes para acceder a la aplicación phpMyAdmin. Esta vez se nos pedirá un usuario y contraseña para acceder, el ususario es ‘root’ y la contraseña la que introdujimos en el paso 1.3 de la sección anterior. Una vez dentro de phpMyAdmin localizamos la sección ‘Crear una base de datos’, introducimos ‘magento’ en la caja de texto y pulsamos ‘Crear’ para continuar. Si todo va bien el sistema nos dirá que la base de datos ‘magento’ se creó.

3.-Ahora, una vez creada la base de datos y descomprimido completamente el paquete de magento en la carpeta ‘magento’ dentro del ‘www directory’. Abrimos una ventana de nuestro navegador favorito e introducimos la siguiente dirección: http://127.0.0.1/magento/ en la barra de direcciones, pulsamos ‘Enter’ y aparece la primera página del instalador de Magento, donde marcamos la casilla de aceptar las condiciones y pulsamos el botón ‘Continue’ para pasar al siguiente paso.


4.-En la siguiente pantalla se nos piden las opciones de localización, seleccionamos las que nos interesen y pulsamos en ‘Continue’


5.-En el siguiente paso se introducen distintos datos de configuración como la conexión a la base de datos, los datos de acceso vía web y el almacenamiento de las sesiones de usuario. Lo primero que tenemos que hacer es introducir la contraseña del usuario root de MySQL en el campo ‘User Password’, si queremos que nuestras tablas utilicen algún prefijo, por ejemplo si la base de datos donde vamos a instalar Magento pudiera contener otras tablas y no queremos que os nombres de dichas tablas puedan interferir en el funcionamiento del sistema, pondremos el prefijo elegido en el campo ‘Tables Prefix’. Marcamos el resto de opciones de acuerdo a nuestras preferencias(La opción ‘Skip Base URL validation before next step’ y la tengo marcada pues de otro modo no conseguía que avanzara la instalación) y de nuevo pulsamos en el botón ‘Continue’ para llegar al siguiente paso.




6.- Este paso pude llegar a tardar mucho pues es en este momento cuando crea todas las tablas de la base de datos, más de 200, y por lo tanto es normal que se demore bastante. La carga de la base de datos puede fallar por que toma mas tiempo del permitido para cargas. Si esto pasa haga lo siguiente: 1. Haga clic en el icono de Wamp. 2. Ingrese a PHP. 3. Luego ingrese a php.ini 4. Edite el tiempo que viene por defecto en 60 segundos a 600 segundos; max_input_time ; Default Value: -1 (Unlimited) ; Development Value: 600 (600 seconds) ; Production Value: 60 (60 seconds)



Recargue la pagina de instalación y ya no fallará.

1.-Tras de la creación de la base de datos el sistema pide los datos para la creación del usuario administrador del sistema Magento. En esa página introducimos los datos del usuario, le asignamos una contraseña.

Al pulsar en ‘Continue’ terminamos con la instalación del sistema. En la siguiente página se nos comunica esto y se da la opción de ir a la interfaz de admnistración (Backend) o a la portada de la tienda (Front-end)

Si hemos seguido todos los pasos finalmente obtendremos una instalación de Magento para poder empezar con el desarrollo de nuestra tienda.


Vista de una tienda en Magento