Archive: December 2012

Magento 2

 

m2-project

La expansión en uso y popularidad de Magento en los últimos años ha ido a un ritmo bastante rápido. Gracias a eso, el equipo de desarrollo de esta plataforma se ha visto en la necesidad de acelerar el desarrollo de la siguiente versión
MAGENTO 2.
Se está trabajando en mejorar varios puntos, entre los que destacan:

  • Procesos limpios y transparentes
  • Calidad mejorada en el catalogo de productos
  • Mejoras en escalabilidad y rendimiento
  • Mejoras en cuestiones de seguridad
  • Mejoras en las Web Api’s
  • Soporte multilenguaje
  • Mejoras en la arquitectura modular
Y lo mejor de todo, Magento nos promete una curva de aprendizaje mucho menor, y mas material de referencia para los desarrolladores 😀
Otros temas muchos mas específicos de los que se nos ha hecho saber son:
Magento con Github
Ahora los desarrolladores podrán contribuir de una manera mas cercana, descargando un branch del código de Magento 2, encontrando bugs y agregando cosas nuevas. Como todos sabemos en el mundo del software libre, la clave está en la contribución.
Nueva estructura de archivos
Ha llegado el momento de olvidarnos de la estrutura app/design/frontend/base/tema . De ahora en adelante Magento2 no buscará las plantillas que no se encuentren en nuestro tema activo en base, si no que ahora Magento buscará en otro lugar, ya no existirá el tema base. En lugar de eso, la estructura de las vistas ( templates y layouts) será movida a la estructura modular. Por ejemplo:
La vista del catálogo ahora se encontrará en:
app/code/core/Mage/Catalog/view/frontend/product/view.phtml y en lugar de tener catalog.xml dentro de la carpeta /layout, ahora tendremos un archivo layout.xml dentro de cada carpeta vista del módulo.
  Esto es para tener una estructura de archivo mucho mas limpia y sencilla de comprender
Nuevos elementos en el layout

Magento2 agrega el nuevos concepto de containers:

  • Containers pueden contener bloques
  • Containers pueden contener otros containers
  • Containers pueden renderizar todos los childrens

La idea detrás de este nuevo concepto es tener una estructura lógica nueva y clara para organizar los bloques y definir secciones del layout. Los containers serán usados en su gran mayoría por el editor de diseño para poder manipular de una manera más sencilla los bloques

jQuery finalmente reemplaza a prototype

Cuando Magento comenzó, jQuery no era la libreria tan robusta que es ahora, es por esto que en aquellos años se opto por utilizar a prototype como la libreria javascript nativa para el framework. Después de mucho pedirlo por la comunidad de Magento, finalmente tendremos a jQuery como el framework nativo de javascript. Cabe mencionar, que aun contará con soporte con prototype.

Adiós a los nombres de métodos factoriales
Si te costo mucho tiempo aprenderte la manera de nombrar o hacer uso de los nombres de los métodos factoriales, te tengo una mala noticia, esto desaparecerá, a partir de Magento2, la manera en que hacemos:
Mage::getModel(‘catalog/product’) ya no funcionará, a partir de Magento2 tendremos que utilizar el nombre de la clase por completo haciéndolo de está manera:
 Mage::getModel(‘Mage_Catalog_Model_Product’) Al igual que todas las class names de las tablas eav.* Afortunadamente Magento no se olvida de su comunidad de programadores, y se han desarrollado varios métodos para realizar las migraciones sin problemas, creando una serie de herramientas ubicadas en /dev/tools/migration Las cuales buscarán todas las llamadas con el nombre factorial anterior y reemplazandolas por las nueva manera de invocarlas con el nombre de la clase completa incluyendo el namespace.
Y estos, son solo algunas de las características que nos esperan. Sigamos esperando con ansias la salida de Magento2.

Magento: Obtener las subcategorias

La manera en que podemos cargar las subcategorias en base a la id de una categoría que conozcamos, lo hacemos de la siguiente manera.

$children = Mage::getModel('catalog/category')->getCategories($_category->getId()); 
foreach ($children as $category){
    $cat = Mage::getModel('catalog/category')->load($category->getId()); ?>
    // En caso de que queramos imprimir la imagen thumbnail
    // echo Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . 'catalog' . '/' . 'category/' .$cat->getThumbnail();
    echo $cat->getName();
}

Saludos