magento, uso, desarrollo y diseño

Post on 25-Jun-2015

2.033 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

DESCRIPTION

Presentación de iPascual en BogoDev

TRANSCRIPT

Magento

www.ipascual.com

Ignacio Pascual (www.ipascual.com) - @ignaciopascual

www.ipascual.com

Ignacio Pascual (www.ipascual.com) - @ignaciopascual

www.ipascual.com

Ignacio Pascual (www.ipascual.com) - @ignaciopascual

Empresas que hemos capacitado

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.

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

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

www.ipascual.com

Magento Walk-through

Ventas

Catálogo – Atributos – Productos – Categorías

Clientes – Grupo de Clientes

Vouches – Bonos – Promociones

Informes

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

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.

www.ipascual.com

Instalando modules / Magento Connect

¿Cuáles instalar?, ¿Qué tan fiables son?

¿Cómo instalar?

Ejemplos: TweetButton Quick Contact Enhanced Product Grid

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

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"

Magento

Capacitación:

- Administración

- Diseño

- Desarrollo

www.ipascual.com

Estructura general de Magento

app code design etc Locale

js

media

skin

var

www.ipascual.com

MVC (Modelo Vista Controlador) Magento – introducción

www.ipascual.com

MVC (Modelo Vista Controlador) Magento – introducción

Programación block controller helper model

Diseño layout template

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 **

www.ipascual.com

Diseños y tiendas

www.ipascual.com

www.ipascual.com

Jerarquía de uso

Módulo: Mage_Catalog / Layout: catalog.xml

app/design/frontend/ipascual/diamadre/layout

app/design/frontend/ipascual/default/layout

app/design/frontend/base/default/layout

¿ Templates, css, js…?

app/design/frontend/ipascual/diamadre/template/catalog/product/view.phtml

app/design/frontend/ipascual/default/template/catalog/product/view.phtml

app/design/frontend/base/default/template/catalog/product/view.phtml

www.ipascual.com

Control de diseño

www.ipascual.com

Situaciones especiales de diseño

CMS

Categorías

Productos

www.ipascual.com

Nuestra gran ayuda

www.ipascual.com

Nuestra gran ayuda

www.ipascual.com

Layout

<checkout_cart_index translate="label"> <label>Shopping Cart</label> <remove name="right"/> <remove name="left"/> <reference name="root"> <action method="setTemplate"><template>page/1column.phtml</template></action> </reference> <reference name="content">

<block type="checkout/cart" name="checkout.cart"><action method="setCartTemplate"><value>checkout/cart.phtml</value></action>

</block>

<block type="checkout/cart_coupon" name="checkout.cart.coupon" as="coupon" template="checkout/cart/coupon.phtml"/>

<block type="checkout/cart_shipping" name="checkout.cart.shipping" as="shipping" template="checkout/cart/shipping.phtml"/>

<block type="checkout/cart_crosssell" name="checkout.cart.crosssell" as="crosssell" template="checkout/cart/crosssell.phtml"/>

<block type="checkout/cart_totals" name="checkout.cart.totals" as="totals" template="checkout/cart/totals.phtml"/>

</block> </reference>

</checkout_cart_index>

www.ipascual.com

Template / funciones comunes

<?php echo $this->_(“Carrito de compra”); ?>

$this->getChildHtml("bloque_nombre”) <?php echo $this->getChildHtml('breadcrumbs') ?> $this->getChildHtml() <?php echo $this->getChildHtml() ?> - Carga un static block CMS<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId("identificador")->toHtml() ?>

$this->getUrl('') Devuelve http://127.0.0.1/magento/

$this->getUrl('module/controller/action', array('param'=>$value))

$this->getSkinUrl("images/logo.png"); http://127.0.0.1/skin/frontend/your_theme/default/images/logo.png

Magento

Capacitación:

- Administración

- Diseño

- Desarrollo

www.ipascual.com

Frameworks en Magento

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

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

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 llamada1. 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

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>

www.ipascual.com

Creando un controlador

app/controllers/CategoryController.php

class Mage_Catalog_CategoryController extends Mage_Core_Controller_Front_Action{

    public function viewAction()    {

        // …

    }

}

www.ipascual.com

Block

config.xml

<global><blocks>

<alquiler>

<class>Ipascual_Alquiler</class>

</alquiler>

</blocks>

Clase PHPclass Ipascual_Alquiler_Block_Alquiler extends Mage_Core_Block_Template

{

}

www.ipascual.com

Configurando un Model

etc/config.xml

<global>

<models><alquiler>

<class>Ipascual_Alquiler_Model</class>

</alquiler></models>

www.ipascual.com

Creando un Model

app/controllers/CategoryController.php

Class Ipascual_Alquiler_Model_Novedades extends Mage_Core_Model_Abstract{

    public function getNovedades()    {

        // …

    }

}

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

{

}

www.ipascual.com

Usando un Helper

Desde template *.phtml

<?php $this->helper(”alquiler")->myMethod(); ?>

Desde un block / model / controller…

Mage::helper("alquiler/data")->myMethod();

www.ipascual.com

Sobreescribiendo código de Magento

<global>

<blocks>

<catalog>

<rewrite><product_view>Ipascual_Mymodule_Block_Product_View</product_view></rewrite>

<rewrite><product_list_toolbar>Ipascual_Mymodule_Block_Product_List_Toolbar</product_list_toolbar></rewrite>

</catalog>

</blocks>

</global>

www.ipascual.com

Javascript

<form action=“/customer/account/loginPost/" method="post" id="login-form">

<label for="email" class="required"><em>*</em>Dirección de correo electrónico</label>

<input type="text" name="login[username]" value="" id="email" class="input-text required-entry validate-email" title="Dirección de correo electrónico" />

<script type="text/javascript">

//<![CDATA[

var dataForm = new VarienForm('login-form', true);

//]]>

</script>

www.ipascual.com

Base de datos

Modelos Entidad-Relación & EAV (Entidad Atributo Valor)

www.ipascual.com

Base de datos

Modelo EAV (Entidad Atributo Valor)

www.ipascual.com

Blog personal: unexpected [ it ] www.unexpectedit.com

Twitter: @ignaciopascual

Facebook: www.facebook.com/ipascualcom

top related