Este documento presenta una introducción a Magento. Explica algunas de sus características principales como más de 90,000 tiendas en línea y 3,500 extensiones. También describe las diferentes versiones de Magento, los requisitos para la instalación, y algunos conceptos clave como los tipos de productos, el ciclo de vida de una orden y la estructura general de archivos.
5. www.ipascual.com
Introducción a Magento
¡Definitivamente lo recomendamos!, no hay en el mercado otra
plataforma eCommerce tan bien estructurada y diseñada como
Magento. Nos proporciona versatilidad y libertad a un precio muy
competitivo a la competencia. El hecho de ser Open Source hace
que muchos desarrolladores a lo largo del planeta conozcamos el
código y eviten que usted pierda el soporte necesario a diferencia
de otras compañías de codigo propietario.
Características
Más de 90.000 tiendas online y más de 3.500 extensiones.
Múltiples tiendas virtuales y compartir todo en una sóla administración
60 idiomas, múltiples divisas e impuestos.
Navegación por capas
Magento tiene SEO
Magento es núcleo, funcionalidad y diseño.
6. www.ipascual.com
Versiones de Magento
Community version
No trae soporte, garantía ni indemnización.
No es PCI Compliant
Professional Edition $2,995 USD / año
Enterprise Edition $10,000 USD / año
http://www.magentocommerce.com/product/compare
7. www.ipascual.com
Instalando Magento
Web servers soportados
Apache 1.3.x / Apache 2.0.x / Apache 2.2.x
PHP 5.2.13+
PDO_MySQL
simplexml
mcrypt
hash
GD
DOM
iconv
curl
MySQL 4.1.20 o superior
9. www.ipascual.com
Ciclo de vida de una orden
Pending - orden no ha sido procesada
Processing - orden ha sido enviada o facturada pero no ambas
Complete - orden está enviada y facturada
Cancelled - ordenes canceladas o no pagadas
Closed - ordenes con devoluciones
On Hold - ordenes paralizadas a la espera de una acción
10. www.ipascual.com
Tipos de productos
Simple
Agrupado
Configurable
Virtual
Productos que no tienen stock. No se envían. Por ejemplo: 1 año
soporte web.
Bundle
Productos personalizados
Downloadable
Productos para descargar, Magento genera un link
encriptado, de ese modo el cliente cuando compra no conoce la
situación real del archivo.
12. www.ipascual.com
Actualizando Magento
Proceso automático
./pear install magento-core/Mage_All_Latest
./pear upgrade-all
Proceso manual
Desactivar la cache de Magento
Copia de seguridad base de datos
Copia de seguridad de todos los archivos (mantenerla cerca)
Copia de seguridad especial de app/etc/local.xml y media/
Descargar nueva versión y descomprimir en directorio
Sobrescribir app/etc/local.xml y media/
Borrar directorios var/cache y var/session
Abrir el navegador y apuntar a la tienda
13. www.ipascual.com
Migrando Magento
Desactivar cache
Volcar su información de la base de datos
Copiar sistema de archivos
Copiar todo al nuevo servidor
Asegurar que la tabla core_config_data tenga correctamente
configurado "web/unsecure/base_url" y "web/secure/base_url"
18. www.ipascual.com
Estructura de archivos para diseño
app/design/frontend/{$interfaz}/{$theme}/template folder.
app/design/frontend/{$interfaz}/{$theme}/layout folder.
app/code/{core,local,com…}/{$compañía}/{$modulo}/Block
¿Qué es interfaz?
Colección themes, Ej.: iPascual, Colombia, México…
¿Qué es theme?
Grupo de layout y templates. Ej.: Navidades, día de la madre…
¿Qué es módulo?
Parte de Magento (requerida o no) Ej.: Cliente, bonos, catálogo…
** Ver estructura de diseño más en profundidad **
30. www.ipascual.com
Organización en módulos
A diferencia de un MVC común, Magento organiza el código en
una clase superior llamada módulo
app/code/core/Mage/Newsletter
app/code/core/Mage/Checkout
Cuando creamos o modificamos secciones en Magento lo
haremos en
app/code/local/Paquete/Modulo
(Paquete es llamado también como Namespace o nombre compañía)
Hacemos saber al sistema de la existencia de un módulo a través
de un archivo XML en
app/etc/modules
Este archivo se nombrará
Paquete_Modulo.xml
Paquete_All.xml
31. www.ipascual.com
Estructura de un módulo
/app/code/local/Paquete
Modulo
Block
controllers
etc
config.xml
system.xml
Helper
Model
Sql
/etc/modules
32. www.ipascual.com
Controladores
http://tutienda.com/catalog/category/view/id/25
1. Front Name: catalog
2. Controlador:
app/code/core/Mage/Catalog/controllers/CategoryController.php
3. Acción – vista: public function viewAction() { … }
4. Parámetros: id/25
Jerarquía de llamada
1. Busca un controlador especificado en frontend
2. Busca un controlador especificado en admin
3. Busca en categorías / productos
4. Busca una coincidencia en Mage_Cms_IndexController
5. Devuelve el CMS especificado para 404
33. www.ipascual.com
Configurando un controlador para frontend
etc/config.xml
<frontend>
<routers>
<catalog>
<use>standard</use>
<args>
<module>Mage_Catalog</module>
<frontName>catalog</frontName>
</args>
</catalog>
</routers>
</frontend>
34. www.ipascual.com
Creando un controlador
app/controllers/CategoryController.php
class Mage_Catalog_CategoryController extends Mage_Core_Controller_Front_Action
{
public function viewAction()
{
// …
}
}
37. www.ipascual.com
Creando un Model
app/controllers/CategoryController.php
Class Ipascual_Alquiler_Model_Novedades extends Mage_Core_Model_Abstract
{
public function getNovedades()
{
// …
}
}
38. www.ipascual.com
Creando y configurando un Helper
etc/config.xml
<global>
<helpers>
<alquiler>
<class>Ipascual_Alquiler_Helper</class>
</alquiler>
</helpers>
…
Helper/Data.php
class Ipascual_Alquiler_Helper_Data extends Mage_Core_Helper_Abstract
{
…
}
39. www.ipascual.com
Usando un Helper
Desde template *.phtml
<?php $this->helper(”alquiler")->myMethod(); ?>
Desde un block / model / controller…
Mage::helper("alquiler/data")->myMethod();