Magento Best Practices

On4U Global Services
On4U Global ServicesOn4U Global Services
Magento Best Practices
Angel Villa
ashiak@on4u.es
@ashiak
Olmo González
olmox@on4u.es
@olmox
Mikel Ruiz
mikel@on4u.es
@mkruiz
Alberto Goya
agoya@on4u.es
@aGoya
www.on4u.es
Why Magento?
Día 1: Magento Admin
Día 2: Magento Design
Día 3: Magento Development
¿Descansos?
©nicmcphee at Flickr
Magento Admin
Día 1:
http://www.on4u.es/docs/doc/ManualMagento.pdf
Manual de Magento
Let's go!
Checklist (I)
✔
Instalación
✔
Permisos
✔
GIT
✔
Compilación
✔
Gestión de divisas
✔
Emails transaccionales
✔
Permisos
✔
Magento Connect
✔
Caches e índices
Checklist (II)
✔
Gestionar tiendas.
✔
Configuración [scope]
✔
Conf>Web: urls y usar CDN. Certificados SSL.
✔
Conf>Diseño>Encabezado-> Robots.txt
✔
Conf>Catálogo>SEO
✔
Configuración de divisas, precios (global o website)
✔
Conf->WYSIWYG
✔
Conf->Catálogo (tablas flat)
✔
Buscador y Términos de búsqueda
✔
Inventario
Checklist (III)
✔
Clientes-> Scope, impuestos, asignaciones a grupos
✔
Clientes->Carrito persistente
✔
Ventas->Impuestos, FPT
✔
Checkout->Métodos de envío
✔
Checkout->Métodos de pago
✔
Avanzado->Desarrollador
✔
Estados de pedidos
✔
Conjunto de atributos
✔
Categorías
✔
Poner el CRON de Magento
Recursos útiles
Guía de uso de GIT con Magento
https://www.sonassi.com/knowledge-base/our-magento-git-guide-and-work-flow/
Mejorar buscador
http://magento.stackexchange.com/questions/1137/search-type-like-full-text-or-combined
http://www.magentocommerce.com/magento-connect/catalog-search-refinement-free.html
Robots.txt para Magento
http://turnkeye.com/blog/optimize-robots-txt-for-magento/
Workflow de pedidos
http://go.magento.com/support/kb/entry/name/order-workflow
Cron en Magento
http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/how_to_setup_a_cron_job
Caso práctico
Distribuciones Exclusivas de Vinos de La Rioja, S.A (a.k.a. DEVILAR)
está orientada al mercado Europeo, por lo que tendrá 2 tiendas:
España en castellano y Reino Unido en inglés.
Algún producto sólo se puede vender en UK.
La de UK en libras con tasa de cambio fija (1GBP = 1,2349 EUR)
Los clientes con CIF válido entran al grupo de Clientes VIP.
Clientes VIP con precios especiales en algunos producto.
Para el producto Oferton de día, si te gastas más de 120€,
dicho producto tiene un 80% de descuento.
Filtros por: precio, graduación, municipio, añada.
Buscador busca en nombre, descripción y municipio.
El catálogo se muestra con IVA del 21% incluido.
El email de creación de pedido para usuarios registrados y no
registrados es el mismo y pone sólo “PEDIDO REGISTRADO”.
Crear sitemap.xml para es y uk.
Envío gratis para España con pedidos de >100€ y el resto 10€ de gastos.
Optimizar rendimiento para puesta en producción.
Aceptar Condiciones de compra al hacer el pedido y cumplir con EU Cookie.
Magento Design
Día 2:
La vista
MVC?
Prácticamente sí, pero no.
Magento Best Practices
CONSECUENCIAS
1. Bloques y plantillas
2. Un bloque Una plantilla→
3. Objeto $this
app/design/frontend/base/default/template/page/1column.phtml
Anidamiento de bloques
Aquí falta algo...
1. ¿Cómo le digo qué bloques quiero utilizar?
2. ¿Cómo especifico un bloque hijo?
Layout (XML)
Comprendiendo el Layout XML
- Etiquetas XML
- Añaden/modifican/eliminan relaciones entre bloques
- Relacionan bloques estructurales con bloques de contenido
- Controlar funciones y añadir contenido HTML
- En app/design/frontend/[package]/[theme]/layout
- Un archivo XML de Layout por cada módulo Magento
Handles(manejadores)
- Elementos de primer nivel del nodo <layout>
- Cada uno representa un actualización del layout
- [nombre_modulo][nombre_controller][nombre_accion]
Ejemplo
contacs.xml
Elementos del Layout
Reference
- Referenciar un bloque ya definido.
- Debe coincidir con el atributo name del bloque
Block
- Define un nuevo bloque
- Obligatorios los campos name y type
- <block type="page/html" template="example/view.phtml">
Elementos del Layout
Remove
Action
- Define una acción a ejecutar
- Puede ser colocado dentro de reference o block
Update
- Carga un handle dentro de otro. Actualiza un bloque con el
contenido de otro.
Ejemplo
customer.xml
local.xml
HERENCIA
Proceso de
renderizado
- Se instancian los bloques.
- Solo los bloques de tipo output son añadidos al response.
- Page.xml.
- Bloque raíz (root)
- Los bloques hijos se renderizan con la llamada getChildHtml()
- Proceso recursivo
Bloques
Tipos de bloques
1. Bloques estructurales
2. Bloques dinámicos
3. Bloques dinámicos con datos personalizados
4. Bloques estáticos
Tipos de bloques
1. Bloques estructurales
2. Bloques dinámicos
3. Bloques dinámicos con datos personalizados
4. Bloques estáticos
Bloques estructurales
- Encapsulan los bloques de contenido organizando
visualmente los bloques.
- Se pueden crear bloques estructurales personalizados
- Todos los bloques hijos de uno estructural se muestran automáticamente
sin tener que usar el método getChildHtml() para cada uno de ellos.
(Ejemplo: newreference.phtml)
Bloques dinámicos (phtml)
- Bloques Magento ( categoría, carrito, usuario,...)
- Representan el contenido y las funcionalidades
1. Vía layout XML (Ejemplo: review_form)
2. Desde el CMS
3. Desde la plantilla
–
Bloques dinámicos personalizados
1. Vía layout XML
- Bloques personalizados
- Creamos un bloque y una plantilla asociada a este
personalizada.
2. Desde el CMS (Ejemplo: bestsellers)
Bloques estáticos (CMS Blocks)
- Se crean desde el admin. CMS Bloques estáticos→
- Útil para que los clientes.
1. Vía layout XML
2. Desde el CMS
3. Desde la plantilla
Magento Best Practices
Tipos de bloque (Layout XML)
1. page/html
2. page/html_head
3. page/html_header
4. page/html_wrapper
5. page/html_breadcrumbs
6. page/html_footer
7. page/template_links
8. page/switch
9. core/messages
10. core/text_list
11. core/proofiler
12. page/html_noticies
¿Y tú que eres?
Yo soy explorador de Magento
Rutas en plantilla
Sistema -> Configuración -> Developer -> Depurar
Frontend de Magento
Paquetes y temas
Paquete
1. Colección de temas relacionados.
2. En Magento por defecto es “base”.
Tema
1. Varios por paquete.
2. Determina el contenido visual de nuestra tienda.
3. Solo puede pertenecer a un paquete.
Tema
App/design
Archivos que controlan como se representan las plantillas.
Skin
Archivos que controlan el aspecto visual del tema (css, javascript).
App/design
Layout
Contiene los archivos básicos XML que definen la estructura de bloque para
diferentes páginas.
Template
Archivos que contienen el PHP y el XHTML necesario para la representación
visual.
Locale
Contiene los CSV de traducción organizados por lenguaje.
Tema por defecto
Todos los paquetes tiene el tema por defecto “default”.
Directorios
Creando un nuevo tema
1. /app/design/frontend/new_package/new_theme/
2. /app/design/frontend/new_package/new_theme/layout
3. /app/design/frontend/new_package/new_theme/template
4. /skin/frontend/new_package/new_theme/
5. /skin/frontend/new_package/new_theme/css/
6. /skin/frontend/new_package/new_theme/images/
Archivos
1. /app/design/frontend/new_package/new_theme/layout/local.xml
2. /skin/frontend/new_package/new_theme/css/local.css
A practicar
(crear nuestro tema)
Admin CMS
Páginas (CMS Pages)
Bloques estáticos (Static blocks)
Aplicaciones (Widgets)
Tareas comunes
en Magento
- Añadir/quitar archivos/librerías
- Añadir/quitar enlaces a bloques
En plantilla
- Cambiar parámetros de los bloques
- Diferentes acciones para logueados/no-logueados
- Añadir imágenes
En plantilla
- Diseño personalizable por categoría
Navegación por capas : Display settings Is Anchor→ → yes
Incluir texto estático o imágenes.
- Navegación por capas
Ocultar/Mostrar atributos.
Atributos filtrables con/sin resultados
- Página de producto
Layout de la página de producto
Galería de imágenes
En el administrador
Snippets
Url de la página
<?php echo $this->getUrl('mypage'); ?>
Url de la imagen
<?php echo $this->getSkinUrl('images/button.gif'); ?>
Url del producto
<?php echo $this->getProductData()->getProductUrl(); ?>
Nombre del producto
<?php echo $this->htmlEscape($this->getProductData()->getName()); ?>
Mostrar todos los productos de una categoría
$categories = $_product->getCategoryIds();
foreach($categories as $k => $_category_id):
$_category = Mage::getModel('catalog/category')->load($_category_id);
<a href="<?php echo $_category->getUrl() ?>"><?php echo $_category->getName() ?>
<?php endforeach; ?>
Comprobar si un usuario esta logueado
$logged_in = Mage::getSingleton('customer/session')->isLoggedIn();
Cargar producto según su SKU
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $product_sku);
Cargar producto según su ID
$_product = Mage::getModel('catalog/product')->load($product_id);
Cargar categoría según su ID
$_category = Mage::getModel('catalog/category')->load($category_id);
Obtener categoría actual
$_category = Mage::getModel('catalog/layer')->getCurrentCategory();
Obtener literal (para traducciones)
$text = $this->__('Content');
La práctica
1- Añadir enlace de Twitter en el apartado “Company” del pie.
2- Crear página “Condiciones de compra” y añadirla en los enlaces de la cabecera “Mi
Cuenta”.
3- Añadir un bloque estructural encima del pie donde aparezca un eslogan
4- Añadir un imagen (Enpresa Digitala) y que sea un enlace que lleve a su web en la
columna de la izquierda de la vista de categoría
5- Añadir una imagen/slider en nuestra “home”.
6- Modificar el valor “nofollow” al Meta tag robots
Recursos útiles
Oficial Magento designer guide
http://www.magentocommerce.com/resources/magento-user-guide
Magento: The right way
http://magentotherightway.com/
Magento Cheat Sheet
http://www.richdynamix.com/mcheat/
Magento Development
Día 3:
¿Herramientas?
Herencia
Local Community Core→ →
Crear un módulo
app/code/local/On4u/Holamundo/etc/config.xml
app/etc/modules/On4u_Holamundo.xml
Registro de Helpers, Bloques y Modelos (I)
app/code/local/On4u/Holamundo/etc/config.xml
Registro de Helpers, Bloques y Modelos (II)
app/code/local/On4u/Holamundo/Helper/Data.php
Lo mismo para:
app/code/local/On4u/Holamundo/Block
app/code/local/On4u/Holamundo/Model
La nomenclatura sigue la convención:
<Vendor namespace>_<Modulename>_<Objecttype>_<Classname>
Y para cargarlos:
Mage::getModel(“holamundo/ejemplo”);
Mage::helper(“holamundo/data”);
Crear página
app/code/local/On4u/Holamundo/etc/config.xml
app/code/local/On4u/Holamundo/controllers/IndexController.php
http://mi-magento.com/holamundo/index/hola/
app/code/local/On4u/Holamundo/etc/config.xml
~/layout/holamundo.xml
~/controllers/IndexController.php
Cargar layout
app/code/local/On4u/Holamundo/etc/config.xml
Traducciones
Creamos el fichero app/locale/xx_XX/On4u_Holamundo.csv con las traducciones:
“Literal”, “Traducción”
Y para utilizarlo:
echo $this­>__(“Literal a traducir”);
app/design/frontend/mitema/default/template/holamundo/newproducts.html
app/design/frontend/mitema/default/layout/holamundo.xml
app/code/local/On4u/Holamundo/Block/Newproducts.php
Bloques
app/code/local/On4u/Holamundo/etc/config.xml
app/code/local/On4u/Holamundo/Model/Catalog/Product.php
Reescribir una clase del core
+350 tablas
2 tipos de entidades (flat y EAV)
Convención de nombres
Algunas tablas
de core
Tablas FLAT
Conectar con BD de Magento
Conectar con otra BD externa
Trabajando con SQL Querys
Trabajando con Colecciones (Mejor opción)
Las entidades flat
La tabla de la base de datos
El objeto Model (lógica negocio)
El objeto Resource Model (conecta con BD p.e. save())
El objeto Resource Collection
Tablas EAV
Tipos de entidades:
catalog_category
catalog_product
creditmemo
customer
customer_address
invoice
order
shipment
Tipos de atributos:
Datetime
Decimal
Int
Varchar
Text
Tablas EAV para productos
Tablas Flat para entidades EAV
Ventajas:
Rendimiento
Desventajas:
Sincronización entre tablas (Magento Index)
Crece el tamaño del a base de datos
app/code/local/On4u/Holamundo/etc/config.xml
Scripts de
instalación
(core_resource)
app/code/local/On4u/Holamundo/sql/holamundo_setup/install­0.0.1.php
Crear tablas flat desde el modelo
app/code/local/On4u/Holamundo/etc/config.xml
Crear tablas flat desde el modelo (II)
Crear tablas flat desde el modelo (III)
Crear tablas flat desde el modelo (IV)
Crear tablas flat desde el modelo (V)
app/code/local/On4u/Holamundo/Model/Resource/Subscription/Collection.php
app/code/local/On4u/Holamundo/Model/Resource/Subscription.php
app/code/local/On4u/Holamundo/Model/Subscription.php
Crear tablas flat desde el modelo (V)
app/code/local/On4u/Holamundo/controllers/IndexControllers.php
Colecciones
app/code/local/On4u/Holamundo/controllers/IndexControllers.php
Filtros
­>addAttributeToFilter('entity_id', array ('in' => array(1, 7, 11)))
­>addAttributeToFilter('name', array ('like' => '%Oxford%'))
Mostrar la Query
$productCollection­>load();
Echo $productCollection­>getSelect()­>__toString();
Modificar datos
$productCollection­>setDataToAll('price', 20);  (al hacer save())
Backend
app/code/local/On4u/Holamundo/etc/config.xml
app/code/local/On4u/Holamundo/controllers/Adminhtml/Holamundo/IndexController.php
http://mimagento.com/index.php/admin/holamundo_index
Backend Menu
Backend ACL
Mage::getSingleton('admin/session')­>isAllowed('all')
Configuración del
sistema
Mage::getStoreConfig('<path>')
app/code/local/On4u/Holamundo/controllers/Adminhtml/Holamundo/SubscriptionController.php
Datagrid
app/code/local/On4u/Holamundo/Block/Adminhtml/Subscription.php
Datagrid (II)
app/code/local/On4u/Holamundo/Block/Adminhtml/Subscription/Grid.php
Datagrid (III)
Datagrid (IV)
Clientes
app/code/local/On4u/Holamundo/sql/holamundo_setup/upgrade­0.0.2­0.0.3.php
Source models
Eventos (crear)
app/code/local/On4u/Holamundo/controllers/IndexController.php
Eventos (observer)
app/code/local/On4u/Holamundo/etc/config.xml
app/code/local/On4u/Holamundo/Model/Observer.php
Eventos (observer)
app/code/local/On4u/Holamundo/etc/config.xml
app/code/local/On4u/Holamundo/Model/Observer.php
Cronjobs
app/code/local/On4u/Holamundo/etc/config.xml
app/code/local/On4u/Holamundo/Model/Observer.php
Para qué sirve un API
Interconectar sistemas para que se
entiendan entre ellos (internet of things)
Aplicaciones distribuidas.
El servidor ofrece unos servicios y el cliente
envía peticiones.
Interfaz abstracta reusable
Marshalling / Unmarshalling
REST vs SOAP
● SOAP
– Pros
● Fácil de automatizar
(sobre todo Java y cía)
● Wsdl
– Contras
● Implementaciones
anti-interoperabilidad
● Demasiado verboso
● REST
– Pros:
● Ubicuo
● Estándar
● Caching
● Statleeess (escalabilidad)
● JSON o XML o lo que sea.
– Contras
● Herramientas
● Autodocumentación /
Autogeneracion
● Verbos limitados
REST vs SOAP
Seguridad
● Oauth
● Basic
● Tokens (!= sesiones, pero la misma idea)
● Por oscuridad (NO USAR)
API+
● Acceso granular (recuperar sólo lo necesario) y filtrado
● Tipos bien definidos
●
“Desnormalizar” (reducir nº de peticiones)
● Multiformato
● Documentación y buenos errores *
● Versionado
● Disponibilidad y velocidad *
*Qué bueno es que haya niños Magentos para echarles la culpa.
API REST Magento
● http(s)://magentohost/api/rest
● Clientes, productos, inventario, pedidos(lectura)
● OAuth1.0a
● Métodos: GET, POST, PUT, DELETE
● Filtros: page, order, dir, limit, etc.
● ACL (admin, customer, guest) + roles +attributes
● JSON + XML
Elementos del API REST
● Módulo: Mage_Api2
– API SOAP v1 → API SOAP v2 (1.3) != API REST
– No se trata de extenderlo sino de usarlo
● Request Interpreters y response renderers
– URL query, json y xml
● Auth Adapters
– Oauth
● User Types
– Guest, customer, admin
● Route
– entity / collection
● Request → Dispatcher → Response
Elementos del API REST
● ACL:
– Global y filter
– Deciden qué roles acceden a qué atributos. Se usa
también como “filtro” para eliminar campos.
● Validator
– Comprueba que los parámetros de entrada sean
correctos.
● Resource
– Implementa la lógica de cada recurso
Extendiendo un recurso
● La implementación está en cada módulo
– Model/Api2/
● {Resourcename}.php
● {Resourcename}/
– Rest.php
– Rest/{Admin|Guest|Customer}/
● V{n}.php
– P.ej “CatalogInventory/Model/Api2/Stock”
● Item.php
● Item/Rest.php
● Item/Rest/Admin/V1.php
● Item/Validator/Item.php
api2.xml
● El pegamento que une todas las partes
● En /etc de cada módulo
– Resources (modelos)
– Atributos y roles (ACL)
– Rutas
– Validators
– Versiones disponibles
Config (api2.xml)
app/code/core/Mage/CatalogInventory/etc/api2.xml
Resource (Stock/Item.php)
app/code/core/Mage/CatalogInventory/Model/Api2/Stock/Item.php
app/code/core/Mage/CatalogInventory/Model/Api2/Stock/Item/Rest.php
GET _retrieve→
POST _create→
PUT _update→
DELETE _delete→
app/code/.../CatalogInventory/Model/Api2/Stock/Item/Rest/Admin/V1.php
Recursos útiles
Guía de uso de GIT con Magento
https://www.sonassi.com/knowledge-base/our-magento-git-guide-and-work-flow/
Scripts para administrar Magento desde consola
https://github.com/classyllama/Wiz
Herramienta para reparar la Base de datos de Magento
http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/db-repair-tool
Trabajar con colecciones
http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento
Caso práctico
●
Hola Mundo por pantalla
●
Hola Mundo en un bloque con traducciones
●
Crear bloque de nuevos productos
●
Reescribir model de Product para poner CURSO delante del nombre
●
Instalador que cree un atributo a producto
●
Actualización que cree tabla de suscriptores
●
Colección que muestre los productos que tiene una 'A'
●
Acceso en menú de backend
●
ACL de permisos
●
Gestión de configuración
●
Actualización que cree atributo a cliente
Gracias ;)
www.on4u.es
1 sur 122

Recommandé

Magento, uso, desarrollo y diseño par
Magento, uso, desarrollo y diseñoMagento, uso, desarrollo y diseño
Magento, uso, desarrollo y diseñoIgnacio Pascual
2.2K vues44 diapositives
MasterClass Desarrollo Plantillas Joomla! par
MasterClass Desarrollo Plantillas Joomla!MasterClass Desarrollo Plantillas Joomla!
MasterClass Desarrollo Plantillas Joomla!SergioIglesiasNET
1.8K vues49 diapositives
flex en bootstrap par
flex en bootstrapflex en bootstrap
flex en bootstrapAna Maria Franco
41 vues10 diapositives
Grails: Framework para el desarrollo de aplicaciones Web No 5 par
Grails: Framework para el desarrollo de aplicaciones Web No 5Grails: Framework para el desarrollo de aplicaciones Web No 5
Grails: Framework para el desarrollo de aplicaciones Web No 5Esteban Saavedra
1.5K vues6 diapositives
Grails: Framework para el desarrollo de aplicaciones Web No 3 par
Grails: Framework para el desarrollo de aplicaciones Web No 3Grails: Framework para el desarrollo de aplicaciones Web No 3
Grails: Framework para el desarrollo de aplicaciones Web No 3Esteban Saavedra
1.9K vues9 diapositives
Grails: Framework para el desarrollo de aplicaciones Web No 2 par
Grails: Framework para el desarrollo de aplicaciones Web No 2Grails: Framework para el desarrollo de aplicaciones Web No 2
Grails: Framework para el desarrollo de aplicaciones Web No 2Esteban Saavedra
1.4K vues6 diapositives

Contenu connexe

Tendances

Semana 4 Estructura y componentes SPA par
Semana 4  Estructura y componentes SPASemana 4  Estructura y componentes SPA
Semana 4 Estructura y componentes SPARichard Eliseo Mendoza Gafaro
355 vues19 diapositives
Especialista Web J8 par
Especialista Web J8Especialista Web J8
Especialista Web J8Moisés Cid Deza
452 vues23 diapositives
Colegió nacional nicolás esguerra par
Colegió nacional nicolás esguerraColegió nacional nicolás esguerra
Colegió nacional nicolás esguerraRonald Sarmiento Alzate
163 vues7 diapositives
HTML5 Nuevas Etiquetas Semanticas par
HTML5 Nuevas Etiquetas SemanticasHTML5 Nuevas Etiquetas Semanticas
HTML5 Nuevas Etiquetas SemanticasJuan Eladio Sánchez Rosas
12.7K vues54 diapositives
Semana 2 Configuración entorno de desarrollo par
Semana 2   Configuración entorno de desarrolloSemana 2   Configuración entorno de desarrollo
Semana 2 Configuración entorno de desarrolloRichard Eliseo Mendoza Gafaro
218 vues33 diapositives
UDA-Componentes RUP. Feedback (v2.1.0 deprecado) par
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)Ander Martinez
347 vues9 diapositives

Tendances(16)

UDA-Componentes RUP. Feedback (v2.1.0 deprecado) par Ander Martinez
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
UDA-Componentes RUP. Feedback (v2.1.0 deprecado)
Ander Martinez347 vues
Grails: Framework para el desarrollo de aplicaciones Web No 1 par Esteban Saavedra
Grails: Framework para el desarrollo de aplicaciones Web No 1Grails: Framework para el desarrollo de aplicaciones Web No 1
Grails: Framework para el desarrollo de aplicaciones Web No 1
Esteban Saavedra3.5K vues
Introducción a WordPress en WordCamp Bilbao (luciamarin.es) par Lucía Marín
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
Introducción a WordPress en WordCamp Bilbao (luciamarin.es)
Lucía Marín1.3K vues
Taller MVVM Imagine Camp Medellín (Intermedio) par Sorey García
Taller MVVM Imagine Camp Medellín (Intermedio)Taller MVVM Imagine Camp Medellín (Intermedio)
Taller MVVM Imagine Camp Medellín (Intermedio)
Sorey García2.7K vues
Grails: Framework para el desarrollo de aplicaciones Web No 4 par Esteban Saavedra
Grails: Framework para el desarrollo de aplicaciones Web No 4Grails: Framework para el desarrollo de aplicaciones Web No 4
Grails: Framework para el desarrollo de aplicaciones Web No 4
Esteban Saavedra1.2K vues
Introducción a HTML5 y CSS3 - ArtMedia 2011 par Hernan Beati
Introducción a HTML5 y CSS3 - ArtMedia 2011Introducción a HTML5 y CSS3 - ArtMedia 2011
Introducción a HTML5 y CSS3 - ArtMedia 2011
Hernan Beati5.2K vues
Presentación2 par creto-96
Presentación2Presentación2
Presentación2
creto-96101 vues
Dreamweaver generalidades par Luzrodrig
Dreamweaver generalidadesDreamweaver generalidades
Dreamweaver generalidades
Luzrodrig1.7K vues

En vedette

One page shops with Magento & Angular Js - Vinai Kopp par
One page shops with Magento & Angular Js - Vinai KoppOne page shops with Magento & Angular Js - Vinai Kopp
One page shops with Magento & Angular Js - Vinai KoppMeet Magento Spain
4.7K vues74 diapositives
Mr.ma choonwai(1m4u) financial resources for civil society par
Mr.ma choonwai(1m4u) financial resources for civil societyMr.ma choonwai(1m4u) financial resources for civil society
Mr.ma choonwai(1m4u) financial resources for civil societyHasan Shabbir
803 vues24 diapositives
OWD2011 - 4 - In de wolken met de DLWO - Beat Niderost par
OWD2011 - 4 - In de wolken met de DLWO - Beat NiderostOWD2011 - 4 - In de wolken met de DLWO - Beat Niderost
OWD2011 - 4 - In de wolken met de DLWO - Beat NiderostSURF Events
693 vues29 diapositives
We blieve in jesus par
We blieve in jesusWe blieve in jesus
We blieve in jesusArab Muslim
428 vues33 diapositives
AERPAS Presentation in CIvOps 2014 event par
AERPAS Presentation in CIvOps 2014 eventAERPAS Presentation in CIvOps 2014 event
AERPAS Presentation in CIvOps 2014 eventLaura Samsó, MSc
498 vues28 diapositives
ScarePoint Saturday - The 7 SharePoint Success Factors par
ScarePoint Saturday - The 7 SharePoint Success FactorsScarePoint Saturday - The 7 SharePoint Success Factors
ScarePoint Saturday - The 7 SharePoint Success FactorsRichard Harbridge
1.2K vues149 diapositives

En vedette(20)

One page shops with Magento & Angular Js - Vinai Kopp par Meet Magento Spain
One page shops with Magento & Angular Js - Vinai KoppOne page shops with Magento & Angular Js - Vinai Kopp
One page shops with Magento & Angular Js - Vinai Kopp
Meet Magento Spain4.7K vues
Mr.ma choonwai(1m4u) financial resources for civil society par Hasan Shabbir
Mr.ma choonwai(1m4u) financial resources for civil societyMr.ma choonwai(1m4u) financial resources for civil society
Mr.ma choonwai(1m4u) financial resources for civil society
Hasan Shabbir803 vues
OWD2011 - 4 - In de wolken met de DLWO - Beat Niderost par SURF Events
OWD2011 - 4 - In de wolken met de DLWO - Beat NiderostOWD2011 - 4 - In de wolken met de DLWO - Beat Niderost
OWD2011 - 4 - In de wolken met de DLWO - Beat Niderost
SURF Events693 vues
ScarePoint Saturday - The 7 SharePoint Success Factors par Richard Harbridge
ScarePoint Saturday - The 7 SharePoint Success FactorsScarePoint Saturday - The 7 SharePoint Success Factors
ScarePoint Saturday - The 7 SharePoint Success Factors
Richard Harbridge1.2K vues
Creating Your Own Web Site Idea Generator par David Gammel
Creating Your Own Web Site Idea GeneratorCreating Your Own Web Site Idea Generator
Creating Your Own Web Site Idea Generator
David Gammel831 vues
Y tu que darías por una sonrisa par Sofia190109
Y tu que darías por una sonrisaY tu que darías por una sonrisa
Y tu que darías por una sonrisa
Sofia1901091.2K vues
LTMS 14-15 opening day par Bobby Sr.
LTMS 14-15 opening dayLTMS 14-15 opening day
LTMS 14-15 opening day
Bobby Sr.453 vues
Informe del Consejo Nacional AMPI 2010 par AMPI Nacional
Informe del Consejo Nacional AMPI 2010 Informe del Consejo Nacional AMPI 2010
Informe del Consejo Nacional AMPI 2010
AMPI Nacional2.2K vues
Sap apo dp life cycle-planning par Mohan Rao
Sap apo dp life cycle-planningSap apo dp life cycle-planning
Sap apo dp life cycle-planning
Mohan Rao1K vues
Propuesta de @F_CreandoSalud frente a reforma de Isapres par Matías Goyenechea
Propuesta de @F_CreandoSalud frente a reforma de IsapresPropuesta de @F_CreandoSalud frente a reforma de Isapres
Propuesta de @F_CreandoSalud frente a reforma de Isapres
Matías Goyenechea2.1K vues
La Martina Future of Retail concept par Mattia Rovini
La Martina Future of Retail conceptLa Martina Future of Retail concept
La Martina Future of Retail concept
Mattia Rovini3K vues
Ovoproductos y productos de huevo par Usapeec
Ovoproductos y productos de huevoOvoproductos y productos de huevo
Ovoproductos y productos de huevo
Usapeec1.3K vues

Similaire à Magento Best Practices

JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla! par
JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla!JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla!
JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla!SergioIglesiasNET
1.8K vues49 diapositives
Diseño en la web par
Diseño en la webDiseño en la web
Diseño en la webMiguel Gea
667 vues21 diapositives
Presentación sobre Display Suite en el Drupal Day Valencia 2012 par
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012Atenea tech
2.6K vues34 diapositives
J!D Barcelona 2009 - Taller Plantillas Avanzado par
J!D Barcelona 2009 - Taller Plantillas AvanzadoJ!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas AvanzadoSergioIglesiasNET
1.3K vues36 diapositives
Primeros pasos Symfony PHPVigo par
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigoPHP Vigo
478 vues20 diapositives
Exposicion Akelos par
Exposicion AkelosExposicion Akelos
Exposicion Akelosdokeosla
493 vues26 diapositives

Similaire à Magento Best Practices(20)

JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla! par SergioIglesiasNET
JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla!JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla!
JoomlaDay Sevilla 2015 - Desarrollo de plantillas Joomla!
SergioIglesiasNET1.8K vues
Diseño en la web par Miguel Gea
Diseño en la webDiseño en la web
Diseño en la web
Miguel Gea667 vues
Presentación sobre Display Suite en el Drupal Day Valencia 2012 par Atenea tech
Presentación sobre Display Suite en el Drupal Day Valencia 2012Presentación sobre Display Suite en el Drupal Day Valencia 2012
Presentación sobre Display Suite en el Drupal Day Valencia 2012
Atenea tech2.6K vues
J!D Barcelona 2009 - Taller Plantillas Avanzado par SergioIglesiasNET
J!D Barcelona 2009 - Taller Plantillas AvanzadoJ!D Barcelona 2009 - Taller Plantillas Avanzado
J!D Barcelona 2009 - Taller Plantillas Avanzado
SergioIglesiasNET1.3K vues
Primeros pasos Symfony PHPVigo par PHP Vigo
Primeros pasos Symfony PHPVigoPrimeros pasos Symfony PHPVigo
Primeros pasos Symfony PHPVigo
PHP Vigo478 vues
Exposicion Akelos par dokeosla
Exposicion AkelosExposicion Akelos
Exposicion Akelos
dokeosla493 vues
Presentación extensiones interesantes joomla par MadBlake
Presentación extensiones interesantes joomlaPresentación extensiones interesantes joomla
Presentación extensiones interesantes joomla
MadBlake660 vues
Crea tu plantilla de blogger par Antonio Gamez
Crea tu plantilla de bloggerCrea tu plantilla de blogger
Crea tu plantilla de blogger
Antonio Gamez9.5K vues
MM15AR - Magento 2: Basado en una historia real par Facundo Capua
MM15AR - Magento 2: Basado en una historia realMM15AR - Magento 2: Basado en una historia real
MM15AR - Magento 2: Basado en una historia real
Facundo Capua837 vues
#JoomlaIO - Desarrollo de Plantillas para Joomla! par SergioIglesiasNET
#JoomlaIO - Desarrollo de Plantillas para Joomla!#JoomlaIO - Desarrollo de Plantillas para Joomla!
#JoomlaIO - Desarrollo de Plantillas para Joomla!
SergioIglesiasNET4.8K vues
Org tutorial struts_2010 par Omar Rios
Org tutorial struts_2010Org tutorial struts_2010
Org tutorial struts_2010
Omar Rios180 vues
Intro a cakephp par betabeers
Intro a cakephpIntro a cakephp
Intro a cakephp
betabeers344 vues
Wordcamp España Online - Menos plugins y más optimización SEO par David Ayala Gil
Wordcamp España Online - Menos plugins y más optimización SEOWordcamp España Online - Menos plugins y más optimización SEO
Wordcamp España Online - Menos plugins y más optimización SEO
David Ayala Gil604 vues
Directorio betabeers - symfony madrid par betabeers
Directorio betabeers - symfony madridDirectorio betabeers - symfony madrid
Directorio betabeers - symfony madrid
betabeers433 vues

Plus de On4U Global Services

Comercio electrónico, 8 claves. Amurrio Bidean par
Comercio electrónico, 8 claves. Amurrio BideanComercio electrónico, 8 claves. Amurrio Bidean
Comercio electrónico, 8 claves. Amurrio BideanOn4U Global Services
585 vues52 diapositives
Euskal Valley v9 par
Euskal Valley v9Euskal Valley v9
Euskal Valley v9On4U Global Services
506 vues38 diapositives
Comercio Electrónico I: recursos para vender más y mejor. par
Comercio Electrónico I: recursos para vender más y mejor.Comercio Electrónico I: recursos para vender más y mejor.
Comercio Electrónico I: recursos para vender más y mejor.On4U Global Services
452 vues42 diapositives
Jornada: Vender en Internet 2012 par
Jornada: Vender en Internet 2012Jornada: Vender en Internet 2012
Jornada: Vender en Internet 2012On4U Global Services
323 vues42 diapositives
Magento, Magento2 y X.Commerce par
Magento, Magento2 y X.CommerceMagento, Magento2 y X.Commerce
Magento, Magento2 y X.CommerceOn4U Global Services
410 vues15 diapositives
Yuzz par
YuzzYuzz
YuzzOn4U Global Services
2.7K vues10 diapositives

Plus de On4U Global Services(16)

Comercio Electrónico I: recursos para vender más y mejor. par On4U Global Services
Comercio Electrónico I: recursos para vender más y mejor.Comercio Electrónico I: recursos para vender más y mejor.
Comercio Electrónico I: recursos para vender más y mejor.
eCommerce de 3ª Generación: las reglas del juego han cambiado par On4U Global Services
eCommerce de 3ª Generación: las reglas del juego han cambiadoeCommerce de 3ª Generación: las reglas del juego han cambiado
eCommerce de 3ª Generación: las reglas del juego han cambiado

Dernier

T3. Taller de diseño del informe PRESENTACION.pptx par
T3. Taller de diseño del informe PRESENTACION.pptxT3. Taller de diseño del informe PRESENTACION.pptx
T3. Taller de diseño del informe PRESENTACION.pptxEmanuelMuoz11
7 vues19 diapositives
Tecnologia (3).pdf par
Tecnologia (3).pdfTecnologia (3).pdf
Tecnologia (3).pdfnosi6702
8 vues15 diapositives
Qué es el rodamiento hacia adelante.docx par
Qué es el rodamiento hacia adelante.docxQué es el rodamiento hacia adelante.docx
Qué es el rodamiento hacia adelante.docxFabianCarrillo31
12 vues1 diapositive
Tecnologia (1).pdf par
Tecnologia (1).pdfTecnologia (1).pdf
Tecnologia (1).pdfnosi6702
9 vues13 diapositives
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1 par
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1
La Guía Definitiva para una Actualización Exitosa a Alfresco 23.1Angel Borroy López
6 vues22 diapositives
Seguridad de los Sistema Operativo par
Seguridad de los Sistema OperativoSeguridad de los Sistema Operativo
Seguridad de los Sistema Operativobyshyno19
9 vues16 diapositives

Dernier(10)

Magento Best Practices