miércoles, 3 de diciembre de 2014

Poniendo una imagen en una página de Magento

Este es otro problema que tienen, bueno tenemos, los desarrolladores que tocamos Magento por primera vez, ¿como pongo una imagen en una de las páginas como por ejemplo el home?
La respuesta no es que sea muy difícil, de hecho el procedimiento es bastante sencillo, lo primero que tenemos que hacer es colocar nuestra imagenes dentro de la siguiente carpeta:

skin >> frontend >> interface que estemos usando >> plantilla que estemos usando >> images

Una vez que hemos hecho esto, tan solo tenemos que irnos a nuestro backend, escoger CMS y página (también sirve en bloques estáticos) y una vez que estamos allí escribir lo siguiente:

<img src="{{skin url='nombre de la imagen'}}"> 

De esta forma la imagen recibe como ubicación, la directiva que le indica a Magento donde se encuentra dicha imagen, introduciendo esta dirección url en el src.

Además de que esta imagen puede estar dentro de un div, tener su propia clase o id, y cualquier argumento de forma normal.

domingo, 30 de noviembre de 2014

Introduciendo PHP y JS en Magento

Otra cosa que trae de cabeza a aquellos que queremos desarrollar en Magento es la imposibilidad inicial de poder poner en nuestras páginas del CMS tano PHP como JS, y la verdad que es un problema enfrentarte a esto sobre todo cuando empiezas a ver que el formato de los archivos es de la extensión .phtml donde te quedas mirando con cara de pez y más aun cuando entre sus miles de archivos nos sabes cual tienes que tocar...

La verdad es que es algo que creo que hace que muchos desarrolladores abandonen la posibilidad de desarrollar en Magento, pero a pesar de todos estos impedimentos se puede lograr programar en PHP y en JS, para ellos debemos de situarnos en la siguiente carpeta desde la raiz de magento:

app - design - frontend - default - plantilla - template - page - html

Los dos directorios en morado indican la situación de la plantilla en nuestro árbol y el nombre de la misma. Naturalmente esta plantilla debe de ser la que estamos utilizando.

Una vez en este punto encontraremos que hay varios archivos .phtml, de modo que nos encontramos en el sitio donde debemos.

Aquí creamos otro archivo con la extensión .phtml en el cual podemos escribir como si se tratase de un html normal introduciendo nuestros scripts ya sean de javascript o código php y cuando lo tengamos listo lo salvamos.

Ahora nos vamos a la parte de administración de nuestro Magento, y en CMS >> Páginas abrimos nuestra web y copiamos la siguiente directiva:

 {{block type="core/template" template="page/html/nombreDelArchivo.phtml"}}



Guardamos y al ver la página ya se muestran los resultados.




sábado, 29 de noviembre de 2014

Creando una página en Magento desde el gestor de contenidos

Sigo con mi exploración de Magento, y hoy voy a explicaros como hacer una página desde el back-end sin necesidad de código y que esta aparezca en el menú.

Hay que tener en cuenta que puede parecer un tanto extraño el procedimiento, pero funciona y además nos permite realizar ciertos cambios una vez que esta terminado para que el cliente no note el trabajo que hay por detrás.
  • Para empezar lo primero que tenemos que hacer es crear una categoría, para ello nos vamos, dentro de nuestra aplicación de administración a  Catálogo >> Cetegorias y aquí creamos una categoría que sea una subcategoría de nuestro inicio, con un nombre simple, mi recomendanción es que sea una única palabra que defina la categoría, ya que nos puede evitar problemas y podremos cambiarlos más adelante. Además le indicamos que tiene que estar activa. Ya con solo esto nos debe de aparecer la sección en el menú.

  • Una vez que ya tenemos nuestra categoría nos dirigimos a Catalogo >> Redireccionamiento de URL y copiamos la ruta objetivo de nuestra categoría, la cual nos hara falta un poco más adelante, entramos en la edición y en la casilla de redirección seleccionamos Permanente.

viernes, 28 de noviembre de 2014

Modificando CSS en Magento

Me he encontrado con la tesitura de que en ocasiones hay que cambiar los estilos en magento, al cual cada día admiro y odio más a partes iguales, ya que para cualquier cosa hay que investigar muchísimo, hasta el punto en el que te quedas parado buscando información durante horas, sobre todo cuando quieres cambiar algo que no esta accesible desde lo menús.

En este caso mi intención es modificar el CSS de Magento, aunque debido a la forma de trabajo de Magento habrá que realizar una operación en nuestras páginas, no os preocupéis, lo único que hay que hacer es el equivalente a importar el css cuando hacemos una web normal.

Lo primero que tenemos que hacer es crear nuestro archivo CSS, pero hablando de este gestor de contenidos podemos perdernos por su laberíntico árbol de directorios, de modo que aquí os dejo las directrices y el mapa del tesoro para ubicar nuestro archivo custom.css donde debemos.

jueves, 27 de noviembre de 2014

Como enviar un mail con PHP (III) un mail con formato

Ya hemos aprendido como enviar mails simples y con cabeceras, pero ahora es el momento de aprender a enviar un mail con formato en PHP para que quede más atractivo.

En el siguiente script, no hemos usado ningún tipo de CSS, tan solo HTML5 a pelo para crear una tabla, pero una vez que tenemos esto hecho tan solo se trata de dar estilo de forma normal a nuestro código.

Pare empezar vamos a presentar un formulario HTML5 al cliente, en este caso he querido que todos los campos sean obligatorios, evitando de este modo el control de si han sido rellenados o no en el back-end, pero si quieres saber como se hace puedes verlo en como enviar un mail con cabeceras.
<html>
<head>
 <title>
  Envío de correo electrónico
 </title>
</head>
<body>
 <h1>Envío de correo electrónico</h1>
 <br>
 <form method="post" action="formato.php">
  Escriba sus comentarios y haga clic en Enviar:
  <p>Nombre: <input type="text" name="nombre" required></p>
  <p>email: <input type="email" name="email" required></p>
  <p>Asunto: <input type="text" name="asunto" required></p>
   
  <textarea name="message" cols="50" rows="5" required></textarea>
  <input type="submit" value="Enviar">
 </form>
<body>
</html>

En este formulario como ya he comentado, se utiliza el atributo required, de hecho se pueden utilizar validaciones si se desea, pero no tiene ningún misterio, la magia se da en nuestro script en php:
<?php
 $cabeceras = "MIME-Version: 1.0\r\n";
 $cabeceras .= "Content-Type: text/html; charset=UTF-8\r\n";
 $correo = '<table border="1px">
        <caption><h2>Nuevo email</h2></caption>
        <tr>
            <td><b>Nombre</b></td>
            <td>' . $_REQUEST["nombre"] . '</td>
        </tr>
        <tr>
            <td><b>Email</b></td>
            <td>' . $_REQUEST["email"] . '</td>
        </tr>
        <tr>
            <td><b>Asunto</b></td>
            <td>' . $_REQUEST["asunto"] . '</td>
        </tr>
        <tr>
            <td><b>Mensaje</b></td>
            <td>' . $_REQUEST["message"] . '</td>
        </tr>
    </table>';


 mail("direccionEmail", $_REQUEST["asunto"], $correo, $cabeceras);
?>

Lo primero que tenemos que hacer es crear las cabeceras, sin las cuales nuestro formato no aparecerá en el correo, ya que estas indican que interpreten el código HTML que hay dentro.

A continuación creamos el string $correo que es el cuerpo del correo en sí mismo, aquí hemos escogido una tabla, pero puede ser una lista o lo que queramos.

Hay que notar como recogemos los datos del formulario para que aparezcan en la tabla en la posición que queremos.
Debido a que es un script que solo envía el mail, no hace falta guardar estos datos introducidos por el usuario en variables, ya que solo van a enviarse al mail, aparte de que se están guardando en la tabla.

Finalmente terminamos utilizando la función mail() como de costumbre que tiene como primer parametro la dirección de mail donde va dirigido el correo, el asunto del mail, el mensaje (en nuestro caso la tabla), y las cabeceras.

Con todo esto obtenemos un resultado similar a este:

martes, 25 de noviembre de 2014

ERP

Llevo unos días liado con un trabajo que se debe a un ERP, tecnología que no conocía, de modo que me he puesto a investigar y a hacer una reseña sobre ella y de ese modo aclarar mis dudas y espero que las de otros que se encuentren frente a la necesidad, o posibilidad de trabajar con él.

¿Que es ERP?

ERP, sistemas de planificación de recursos empresariales (ERP, por sus siglas en inglés, enterprise resource planning), puede definirse como una herramienta que controla y gestiona toda las funciones administrativas y productivas de una empresa en un solo entorno de trabajo, adaptandose a la necesidades particulares de cada empresa. 

De esta forma los trabajadores pierden menos tiempo entre multitud de herramientas, teniendo todo centralizado, maxificando la efectividad del trabajo. 

Se caracterizan por estar compuestos por diferentes módulos. Estas partes son de diferente uso, por ejemplo: producción, ventas, compras, logística, contabilidad (de varios tipos), gestión de proyectos, GIS, inventarios y control de almacenes, pedidos, nóminas, etc. Lo contrario sería como considerar un simple programa de facturación como un ERP por el simple hecho de que una empresa integre únicamente esa parte.
Los objetivos principales de los sistemas ERP son:
  • Optimización de los procesos empresariales.
  • Acceso a la información.
  • Posibilidad de compartir información entre todos los componentes de la organización.
  • Eliminación de datos y operaciones innecesarias de reingeniería.
El propósito fundamental de un ERP es otorgar apoyo a los clientes del negocio, tiempos rápidos de respuesta a sus problemas, así como un eficiente manejo de información que permita la toma oportuna de decisiones y disminución de los costos totales de operación.

Los beneficios que puede aportar una herramienta de ERP se resumen en la resolución de los problemas contables, mercantil o fiscal de la empresa. Asimismo, puede permitir un mayor control del inmovilizado en el inventario permanente, conciliación bancaria, liquidación de impuestos, etc.

Las soluciones ERP en ocasiones son complejas y difíciles de implantar debido a que necesitan un desarrollo personalizado para cada empresa partiendo de la configuración inicial de la aplicación, que es común. Las personalizaciones y desarrollos particulares para cada empresa requieren de un gran esfuerzo en tiempo, y por consiguiente en dinero, para modelar todos los procesos de negocio de la vida real en la aplicación.

Se caracterizan por no tener recetas ni guiones explícitos para su implantación, por ello es conveniente tener siempre en consideración algunos puntos que se deben de ir atendiendo antes, durante y después de la implantación:
  • Definición de resultados que debe de obtener con la implantación de un ERP.
  • Definición del modelo de negocio.
  • Definición del modelo de gestión.
  • Definición de la estrategia de implantación.
  • Evaluación de oportunidades para software complementario al producto ERP.
  • Alineamiento de la estructura y plataformas tecnológicas.
  • Análisis del cambio organizativo.
  • Entrega de una visión completa de la solución que implantar.
  • Implantación del sistema.
  • Controles de calidad.
  • Auditoría del entorno técnico y del entorno de desarrollo.

Ventajas de un ERP

  • Una empresa que carezca de este sistema, puede encontrarse con multitud de aplicaciones software cerradas, que no se pueden personalizar o que no se optimizan para el tipo de negocio. Este defecto esta totalmente solventado con un sistema ERP.
  • La efectividad de datos puede usarse para el control cuando el cambio ocurra desde una versión anterior a la nueva.
  • La seguridad del software esta dentro del ERP, protegiéndolo tanto de asaltos externos, como internos como malversación.
  • Se le pueden incluir controles de calidad para los productos finales.

Desventajas de un ERP

Muchos de los problemas que tienen las compañías con el ERP se deben a la inversión inadecuada para la educación continua del personal relevante, incluyendo los cambios de implementación y de prueba, y una falta de políticas corporativas que afectan a cómo se obtienen los datos del ERP y como se mantienen actualizados.
  • No tener personal con el conocimiento necesario para el funcionamiento del ERP
  • Cambio del personal que debe trabajar con el sistema
  • Su instalación es cara
  • Los vendedores del ERP pueden cargar sumas de dinero para la renovación de sus licencias anuales, que no está relacionado con el tamaño del ERP de la compañía o sus ganancias.
  • Son vistos como sistemas muy rígidos, que no se adaptan al flujo especifico de los trabajadores ni al proceso de negocio de algunas compañias.
  • Los sistemas pueden ser de difícil utilización.
  • Se pueden producir cuellos de botella cuando algún usuario o departamento no hace buen uso de él.
  • Muchos de los eslabones integrados necesitan exactitud en otras aplicaciones para trabajar efectivamente. Una compañía puede lograr estándares mínimos, y luego de un tiempo los "datos sucios" (datos inexactos o no verificados) reducirán la confiabilidad de algunas aplicaciones.
  • Una vez establecido el sistema, sus modificaciones tienen un alto coste.
  • En alguna empresas no se comparten los datos entre departamentos, lo que puede dar lugar a una reducción en la eficiencia del software.
  • Y uno de los más importantes es que el sistema puede suponer demasiado para las necesidades reales del consumidor.

lunes, 24 de noviembre de 2014

Como enviar un mail con PHP (II) Un mail con cabeceras

En la entrada anterior de esta serie, aprendimos a enviar un mail simple, ahora vamos a aprender a enviar un mail con cabeceras cc y bcc.

Para este fin vamos a seguir utilizando nuestra función mail() añadiendo el parámetro de las cabeceras. Vamos primero a modificar nuestro código html para que podamos escribir las cabeceras:
<html>
<head>
 <title>
  Envío de correo electrónico
 </title>
</head>
<body>
 <h1>Envío de correo electrónico</h1>
 <br>
 <form method="post" action="cabecera.php">
  Escriba sus comentarios y haga clic en Enviar:
  <p>cc: <input type="text" name="cc">
  bcc: <input type="text" name="bcc"></p>
   
  <textarea name="message" cols="50" rows="5"></textarea>
  <input type="submit" value="Enviar">
 </form>
<body>
</html>

Hemos introducido dos inputs donde se piden los elementos cc y bcc.
A continuación vamos a recogerlos en nuestro código php.
Para tal tal fin lo que debemos de hacer es comprobar si han o no han sido enviados, y en caso de que así sea que se recojan en un array que llamaremos $headers, añadiendo un nuevo elemento.
<?php
  $headers = "";
  if(isset($_REQUEST["cc"])){
   $headers .= "cc:" . $_REQUEST["cc"] . "\r\n";
  }
  if(isset($_REQUEST["bcc"])){
   $headers .= "bcc:" . $_REQUEST["bcc"] . "\r\n";
  }

Una vez que ya tenemos esto hecho, tan solo hay que utilizar la función mail() para que se envíe de la siguiente forma:
mail("direccioEmail", "Web mail", $_REQUEST["message"], $headers);
?>

De esta forma se envía el mail con las cabeceras que se han incluido, fácil ¿verdad?
Para que no quede ningún tipo de duda aquí os dejo como quedaría al final:
<?php
  $headers = "";
  if(isset($_REQUEST["cc"])){
   $headers .= "cc:" . $_REQUEST["cc"] . "\r\n";
  }
  if(isset($_REQUEST["bcc"])){
   $headers .= "bcc:" . $_REQUEST["bcc"] . "\r\n";
  }

  mail("direccioEmail", "Web mail", $_REQUEST["message"], $headers);
 ?>



cc: enviar una copia a
bcc: enviar una copia oculta es decir que no se muestra.