jueves, 15 de marzo de 2012

Usar las variables personalizadas para crear elementos html comunes y usarlos en bloques estáticos, páginas y emails transaccionales


Una buena forma para no repetir en cada bloque, página o email contenido html que es común es utilizar las variables personalizadas que provee magento en el backoffice. Supongamos que para todos los emails se tiene un footer común, lo que se debe hacer para no tener que copiar contenido en cada una de las plantillas es crear una variable personalizada y en ella agregar el contenido html que dibuja estos de la siguiente manera:

  • Se ingresa  al backoffice.
  • Se va a sistema/variables personalizadas
  • Se le da agregar nueva variable




  • En el código de variable se pone el identificador con el cual se va a llamar desde el plantilla de email,   bloque o página.
  • En el campo “Nombre Variable” se pone un nombre para facilitar su búsqueda
  • Dentro del campo “Valor de HTML Variable”  se ingresa el contenido html de la variable.
  • El campo “Valor Simple Variable” es muy útil cuando se tiene un dato simple que puede cambiar mas adelante y se presenta en varios lugares (paginas, bloques o emails)
  • Se guarda y ya esta lista para llamar desde donde la necesitemos en el cms.
  • Para agregar esta variable, se ingresa al bloque, pagina o plantilla de email y en el lugar donde debe ir este html se llama de la siguiente forma:
    {{customvar code="codigo_variable”}}

miércoles, 14 de marzo de 2012

¿Cómo pasar parámetros a un bloque desde su declaración en el layout?

Una buena práctica para optimizar la carga de las plantillas en Magento es pasar las variables que se necesitan en el bloque desde su declaración en el layout, asignando los valores de dichas variables con llamados a métodos disponibles en helpers.

Ahora algo de código para ilustrar este procedimiento.

  • Declaración del bloque en el layout. 

     
         
     

Con la etiqueta ‘action’ se esta declarando la variable ‘streetstyleList’ y se le esta asignando un ‘array’ cuyo valor es el resultado retornado por el método ‘getStreetstyleList()’ encontrado en el helper ‘data’ del módulo ‘streetstyle’.

  • Utilizar la variable en la plantilla.
Una vez declarada la variable en el layout, se puede utilizar en la plantilla de forma transparente, accediendo a ella mediante ‘$this->nombreVariable’. Ejemplo: En ‘streetstyle-temp.phtml’ se podría utilizar así:
    <?php foreach ($this->streetstyleList as $streetStyle): ?>
  • <?php echo $streetStyle[‘name’]; ?>
  • <?php endforeach; ?>

  • Método que retorna el valor de la variable desde el helper.
Para este ejemplo se tiene una función que obtiene la colección de productos tipo ‘bundle’ de la cual solo se  necesitan el identificador y el nombre de los productos, por lo que se almacenan en un ‘array’ que corresponde con el tipo de dato que se declaró en el layout para la variable utilizada en el bloque.
public function getStreetstyleList(){
    $result=array();
    $model=Mage::getModel('catalog/product');
    $collectionBundleStreetstyle=$model->getCollection()
             ->addAttributeToSelect('cb_name_streetstyle')
             ->addAttributeToFilter('type_id', array('eq' => 'bundle'))
             ->addAttributeToFilter('cb_is_streetstyle', 1);

    foreach($collectionBundleStreetstyle as $streetstyle){
        $result[]=array('id'=>$streetstyle->getId(), 
                        'name'=>$streetstyle->getCbNameStreetstyle());
    }
    return $result;
}

martes, 13 de marzo de 2012

¿Cómo obtener cualquier valor de los parámetros de configuración?

Si deseamos obtener los valores de configuración de Magento tales como: el idioma del sitio, el nombre de la tienda y parámetros más especificos encontrados en la pestaña sistema - configuración, debemos hacer lo siguiente:

  • Entrar a nuestra base de datos y buscar la tabla core_config_data
  • En esta tabla buscamos por el atributo path la ruta del atributo que necesitamos, por ejemplo: si queremos conocer la descripción que tenemos en el encabezado del sitio (Ubicada en la pestaña diseño), buscamos por design/head/default_description.

  • Una vez corroborado que si es el atributo que estamos buscando y el valor si corresponde a lo que tenemos en nuestro panel de administración procedemos a llamarlo en nuestras vistas PHTML o controladores, modelos y helpers a través de:
$storeDescription = Mage::getStoreConfig('design/head/default_description');

Importante: Podemos saber por cuál parámetro buscar en la tabla dando click derecho sobre la etiqueta label del objeto del formulario y ver el atributo for del mismo


lunes, 12 de marzo de 2012

¿Cómo configurar los impuestos (IVA) en Magento?

1. Se debe crear un nuevo porcentaje de impuesto, para esto hay que ingresar al back e ir a ventas/impuestos/gestión de las zonas de impuestos y precios. Allí se da clic en añadir nueva tasa impositiva y se completa el formulario con los datos especificados: Identificador tributario, país y porcentaje de impuesto.



2. Una vez creada una tasa impositiva se procede a crear una regla de impuesto. Para ello se ingresa al menú, ventas/impuestos/gestión de las normas fiscales. Allí se da clic en añadir nueva norma impositiva y se completa el formulario con los datos especificados: Nombre, clase impositiva del cliente, clase de impuesto del producto, tarifa de impuestos (en este campo se selecciona la tasa impositiva creada anteriormente), prioridad y ordenamiento del pedido.



3. Para aplicar los impuestos a los productos, hay que ir a la pestaña de precio en el respectivo producto y en el campo clase de impuesto seleccionar el que corresponda con el tipo de la regla creada en el paso anterior.