﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>onestic &#187; Sergio Baixauli</title>
	<atom:link href="http://onestic.com/author/sbaixauli/feed/" rel="self" type="application/rss+xml" />
	<link>http://onestic.com</link>
	<description>Estrategia y desarrollo ecommerce</description>
	<lastBuildDate>Thu, 17 May 2012 15:54:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Magento es líder mundial en comercio electrónico</title>
		<link>http://onestic.com/magento-es-lider-mundial-en-comercio-electronico/</link>
		<comments>http://onestic.com/magento-es-lider-mundial-en-comercio-electronico/#comments</comments>
		<pubDate>Wed, 04 Apr 2012 17:05:17 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[bargento]]></category>
		<category><![CDATA[comercio electrónico]]></category>
		<category><![CDATA[ecommerce]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=1439</guid>
		<description><![CDATA[Magento, la plataforma de comercio electrónico con la que trabajamos en Onestic, es líder mundial en el sector. Una de cada cinco tiendas electrónicas utilizan esta plataforma, según la encuesta trimestral del desarrollador Tom Robertshaw. El estudio se centraba en las webs de comercio electrónico presentes en el ránking del millón de páginas más populares [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignleft" title="Magento" src="http://www.lightspeedretail.com/wp-content/themes/lightspeed/images/magento-logo.png" alt="Comercio electrónico líder" width="136" height="122" />Magento</strong>, la <a title="Servicios: Magento como plataforma de ecommerce" href="http://onestic.com/servicios/"><strong>plataforma de comercio electrónico</strong></a> con la que trabajamos en Onestic, es líder mundial en el sector. Una de cada cinco tiendas electrónicas utilizan esta plataforma, según la <a title="Encuesta trimestral Ecommerce" href="http://tomrobertshaw.net/2012/02/feb-2012-ecommerce-survey/" target="_blank">encuesta trimestral</a> del desarrollador Tom Robertshaw.</p>
<p>El estudio se centraba en las webs de comercio electrónico presentes en el ránking del millón de <a title="Top Sites Alexa" href="http://www.alexa.com/topsites" target="_blank">páginas más populares de Alexa</a>. De entre las 33.362 resultantes, se realizó un estudio individual para averiguar la plataforma usada, y un 20,2% trabaja con Magento, mientras que sus inmediatos competidores se sitúan en un 12% y un 11,6%.</p>
<p>Si acotamos la búsqueda a las 100.000 webs más populares, encontramos 1.665 tiendas de comercio electrónico, y el liderato de Magento aquí se mantiene (20,8%). Con estos resultados, <strong>Magento incrementa su popularidad</strong> en un 21% respecto al anterior estudio (Octubre 2011), afianzando así su liderato.</p>
<p><a href="http://onestic.com/?attachment_id=1425" rel="attachment wp-att-1425"><img class="alignnone size-full wp-image-1425" title="Gráfico Comercio Electrónico" src="http://onestic.com/wp-content/uploads/2012/03/chart.jpg" alt="Encuesta comercio electrónico" width="800" height="400" /></a></p>
<p>Magento fue lanzada en marzo de 2008, y en menos de cuatro años, se ha convertido en la referencia imprescindible en el sector de las <strong>webshops</strong>. La última versión fue lanzada el pasado més de enero, tanto en la edición Community (1.6.2.0) como en la Professional y Enterprise (1.11.0.0), pensadas para clientes que necesiten de todo el potencial de la plataforma.</p>
<p>Desde 2010, existe también una versión para móviles llamada <a title="Magento Mobile" href="http://www.magentocommerce.com/product/mobile" target="_blank"><strong>Magento Mobile</strong></a>, una plataforma de extensión utilizada para crear aplicaciones nativas en iOS (iPhone, iPad) y Android.</p>
<p>La propiedad de Magento era inicialmente de la empresa <strong>Varien</strong>. Sin embargo, en febrero de 2011 <strong>eBay</strong> realizó una inversión comprando el 49% de la compañía. Una inversión que se vio aumentada sólo 4 meses después, cuando el propio eBay compró el 100% de la compañía. Sin embargo, los jefes del proyecto, Roy Rubin y Yoav Kutner, continuaron liderando el proyecto en la misma sede de Los Ángeles.</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/magento-es-lider-mundial-en-comercio-electronico/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ecommerce: 5 ideas para ser competitivos</title>
		<link>http://onestic.com/normas-ecommerce-competitivos/</link>
		<comments>http://onestic.com/normas-ecommerce-competitivos/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 11:52:56 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Ecommerce]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=1400</guid>
		<description><![CDATA[En el mundo del comercio electrónico, cuando estamos vendiendo el mismo producto que el resto de competidores, puede parecer que la única forma de conseguir diferenciarnos es en el precio. Pero cuidado, cuando todos nuestros esfuerzos se centran en tener la oferta más barata, tenderemos a atraer a un tipo de consumidor que sólo es [...]]]></description>
			<content:encoded><![CDATA[<p>En el m<a href="http://onestic.com/wp-content/uploads/2012/03/atletismo.jpg"><img class="wp-image-1411 alignleft" style="margin-right: 10px; margin-top: 10px;" title="reglas para ganar en Ecommerce" src="http://onestic.com/wp-content/uploads/2012/03/atletismo-230x153.jpg" alt="reglas para ganar en Ecommerce" width="265" height="181" /></a>undo del comercio electrónico, cuando estamos vendiendo el mismo producto que el resto de competidores, puede parecer que la única forma de conseguir diferenciarnos es en el precio. Pero cuidado, cuando todos nuestros esfuerzos se centran en tener la oferta más barata, tenderemos a atraer a un tipo de consumidor que sólo es sensible al precio, y que nos abandonará mañana si nuestra competencia es más económica.<br />
¿<strong>De qué forma podemos</strong> <strong>competir</strong> sin entrar en una guerra de precios?<br />
Veamos algunos ejemplos entre los <a title="Proyectos" href="http://onestic.com/proyectos/">proyectos </a>que hemos llevado a cabo:</p>
<h3><strong>1 &#8211; Un abanico de productos más amplio</strong></h3>
<p>Si por ejemplo <a title="Zapatillas Satorisan" href="http://onestic.com/proyectos/satorisan-com/"><strong>vendemos zapatillas deportivas</strong></a>, y eso es lo único que vendemos, nuestra web no aportará nada nuevo al cliente, seremos uno más entre un montón. En cambio, si somos capaces de ofrecer un producto customizable y atractivo (cordones de diferentes colores, packs con calcetines a juego), seremos menos dependientes del precio a la hora de atraer al cliente.</p>
<h3><strong>2 &#8211; Tener un cliente conocido</strong></h3>
<p>Bien <a title="Ropa: Bylu Shop" href="http://onestic.com/proyectos/bylu-shop/"><strong>vendamos ropa</strong></a> o electrónica de consumo, tener un cliente con nombre tiene que ser empleado en nuestro favor. Una sección de testimonios de nuestros más importantes clientes puede servir para aumentar la confianza de los visitantes de nuestra web en nosotros. En <a title="Usuarios Agroterra" href="http://w2.agroterra.com/alta/casos-de-exito.asp?P=1" target="_blank">Agroterra</a>, las empresas cuentan su experiencia como usuarios en la web.</p>
<h3><strong>3 &#8211; Crear un programa de fidelización</strong></h3>
<p>¿Por qué no recompensar a los clientes por cada euro que gasten en nuestra tienda? Podemos ofrecer descuentos en futuras compras o bonificar los gastos de envío. Otra forma de fidelizar al cliente es enviándole una tarjeta VIP. Le hará sentir especial.</p>
<p>Pero el cliente no sólo participa en nuestra web mediante las compras: el registro, la invitación a amigos y la valoración de productos son posibles formas de promoción, como hace <a title="Esto Sí Puedo Club" href="http://estosipuedo.com/club" target="_blank">Esto Sí Puedo</a> en su Club.</p>
<h3><strong>4 &#8211; Potenciar el lado humano</strong></h3>
<p>Nuestros competidores están jugando la carta del bajo precio, pero tienen una aparencia de empresa fría e impersonal. ¿Qué podemos hacer? Seremos, más que una tienda: un grupo de personas intentando solucionarte un problema.<br />
Si nuestros clientes son pequeñas compañías y particulares, la mayoría preferirá pagar un poco más y obtener un trato más cálido, con un servicio más cercano.</p>
<p>La web será más amable si incluimos fotos del equipo, una breve historia del proyecto y los valores que nos impulsan, como podemos observar, por ejemplo, en el apartado &#8220;Nosotros&#8221; de <a title="&quot;Nosotros&quot; de Naranjamania" href="http://www.naranjamania.com/informacion/quienes-somos/" target="_blank">Naranjamania</a>.</p>
<p><img class="wp-image-1410 alignnone" title="Naranjamania" src="http://onestic.com/wp-content/uploads/2012/03/Naranjamania.jpg" alt="El apartado &quot;Nosotros&quot; de Naranjamania" width="583" height="427" /></p>
<h3><strong>5 &#8211; Información constante y de calidad</strong></h3>
<p>Bien usemos correo postal o electrónico, deberíamos mantener a nuestros clientes regularmente informados sobre nuestros nuevos productos. De todas formas, conviene ser muy cuidadosos de no llenar de <em>spam</em> su buzón de entrada, así que podemos optar por una comunicación menos invasiva y que incluya vídeos &#8220;<em>how to</em>&#8221; o artículos relacionados con nuestros productos.</p>
<p>Cuanto más estemos en contacto con nuestros clientes, mejor predisposición tendrán a entrar en nuestra página, en vez de en la de nuestros competidores. El <a title="Newsletter Satorisan" href="http://satorisan.com/spain/newsletter/" target="_blank">newsletter de Satorisan</a> es un ejemplo.</p>
<p>Fuente: <a title="BigCommerce.com" href="http://bigcommerce.com" target="_blank">Bigcommerce.com</a> / Foto: Flickr &#8211; <a title="Flickr gatogrunge" href="http://www.flickr.com/photos/25533361@N00/" target="_blank">gatogrunge</a></p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/normas-ecommerce-competitivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Onestic en el E-commerce OpenDays 2010</title>
		<link>http://onestic.com/onestic-en-el-e-commerce-opendays-2010/</link>
		<comments>http://onestic.com/onestic-en-el-e-commerce-opendays-2010/#comments</comments>
		<pubDate>Tue, 01 Jun 2010 12:45:04 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Onestic]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=896</guid>
		<description><![CDATA[Durante los días 8 y 9 de Junio se celebra en Madrid uno de los mayores eventos de comercio electrónico en España, el Expo-ecommerce.com. Este año en Onestic vamos a montar un stand en la Feria para todos aquellos que queráis pasar a conocernos (stand 60). 5500 metros cuadrados de espacio ferial, 70 expositores, más [...]]]></description>
			<content:encoded><![CDATA[<p>Durante los días 8 y 9 de Junio se celebra en Madrid uno de los mayores eventos de comercio electrónico en España, el <a href="http://www.expo-ecommerce.com/">Expo-ecommerce.com</a>.</p>
<p>Este año en Onestic vamos a montar un stand en la Feria para todos aquellos que queráis pasar a conocernos (<a href="http://www.expo-ecommerce.com/expositores/onestic/">stand 60</a>). 5500 metros cuadrados de espacio ferial, 70 expositores, más de 4000 visitantes y 80 conferencias. También participaremos en una Mesa Redonda el día 9 de Junio cuya temática es <em><strong>&#8220;El software libre, una vía fácil y eficaz para tener tu negocio en Internet.&#8221; </strong></em>en la sala Amsterdam a las 10:00. Si alguno se quiere pasar ya sabéis&#8230;</p>
<p>El objetivo principal de esta mesa redonda es mostrar de manera clara las ventajas de las soluciones Open Source tanto a nivel económico como técnico. Intentaremos a través de nuestras experiencias y casos de éxito comentar lo que debemos tener en cuenta a la hora de montar un solución E-commerce.</p>
<p>Podéis consultar la lista de expositores <a href="http://www.expo-ecommerce.com/secciones/expositores/">aquí</a>.</p>
<p><a href="http://onestic.com/wp-content/uploads/2010/06/logo-magento-1.jpg"><img class="alignnone  wp-image-898" title="tiendas magento logo" src="http://onestic.com/wp-content/uploads/2010/06/logo-magento-1.jpg" alt="" width="240" height="220" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/onestic-en-el-e-commerce-opendays-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Pasarela de pago Servired para Magento. Bug</title>
		<link>http://onestic.com/pasarela-de-pago-servired-para-magento-bug/</link>
		<comments>http://onestic.com/pasarela-de-pago-servired-para-magento-bug/#comments</comments>
		<pubDate>Tue, 11 May 2010 09:55:36 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Onestic]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=875</guid>
		<description><![CDATA[De todos es conocido el módulo de pago para Servired. Para aquellos que no lo conozcáis está disponible desde Magento Connect. Módulo de pago para Servired Bueno, si te dedicas a desarrollar tiendas para Magento, o incluso si quieres probar suerte con la tuya, es muy posible que termines instalando este módulo. La verdad es [...]]]></description>
			<content:encoded><![CDATA[<p>De todos es conocido el módulo de pago para Servired. Para aquellos que no lo conozcáis está disponible desde Magento Connect.</p>
<p><a href="http://www.magentocommerce.com/magento-connect/defcon2/extension/464/metodo-de-pago-servired">Módulo de pago para Servired</a></p>
<p>Bueno, si te dedicas a desarrollar tiendas para Magento, o incluso si quieres probar suerte con la tuya, es muy posible que termines instalando este módulo. La verdad es que funciona perfectamente. Hoy, uno de nuestros clientes ha encontrado un pequeño &#8220;bug&#8221;. La verdad es que es bastante chorra pero buscando la solución al final hemos encontrado mucha gente que pregunta y poca que responde.</p>
<p>El problema se describe en este post:</p>
<p><a href="http://www.magentocommerce.com/boards/viewthread/33072/">http://www.magentocommerce.com/boards/viewthread/33072/</a></p>
<p>El caso es que cuando se realiza una transacción que devuelve como resultado una operación válida, el estado del pedido no es visible desde &#8220;Mi cuenta&#8221; o desde el histórico de pedidos de un cliente. Además, el administrador se encontrará en el administrador con pedidos que no pueden cambiar de estado (lo cual es bastante engorroso).</p>
<p>Podríamos aprovechar la ocasión para hablar del módulo que permite ampliar el número de estados por los que puede pasar un pedido. Creo recordar que ya hablamos hace unas semanas.</p>
<p>La solución os la dejo aquí y si alguien quiere ampliarla será bien recibido.</p>
<p>El problema radica básicamente en la asignación de orderStatus y orderState. Lo primero que tenemos que hacer es buscar la función &#8220;public function  successAction() &#8221; en el fichero StandardController.php que hay en módulo de Servired. al principio de la función comentar las líneas que hay referentes a la asignación del orderStatus e incluir estas dos:</p>
<p>
<pre class="brush: php; title: ; notranslate">&lt;/p&gt;
&lt;p&gt;$orderState = Mage_Sales_Model_Order::STATE_PROCESSING;&lt;br /&gt; $orderStatus = Mage::getModel('servired/standard')-&amp;gt;getConfigData('order_status');&lt;/p&gt;
&lt;p&gt;</pre>
</p>
<p>Al final de la misma función, justo antes de &#8220;$order-&gt;save();&#8221;  incluir estas líneas:</p>
<p>
<pre class="brush: php; title: ; notranslate">&lt;/p&gt;
&lt;p&gt;if (!$orderStatus) {&lt;br /&gt; $orderStatus = $order-&amp;gt;getConfig()-&amp;gt;getStateDefaultStatus($orderState);&lt;br /&gt; }&lt;br /&gt; &lt;br /&gt; $order-&amp;gt;setState($orderState, $orderStatus,$comment,true);&lt;/p&gt;
&lt;p&gt;</pre>
</p>
<p>Con esto será suficiente. La explicación pasa por asignar correctamente un orderStatus y un orderState. En el caso de no estar disponible el orderState le asignaremos uno por defecto. Ahora ya podemos ver en el histórico de pedidos de nuestro cliente el pago realizado con el módulo para Magento de Servired.</p>
<p>Saludos.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/pasarela-de-pago-servired-para-magento-bug/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Instalar Magento 1.4 desde una consola SSH</title>
		<link>http://onestic.com/instalar-magento-1-4-desde-una-consola-ssh/</link>
		<comments>http://onestic.com/instalar-magento-1-4-desde-una-consola-ssh/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 08:46:42 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[instalar magento]]></category>
		<category><![CDATA[magento 1.4]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=868</guid>
		<description><![CDATA[Hola de nuevo a todos, hacía tiempo que no escribía nada, estamos a punto de lanzar dos nuevas tiendas en Magento y vamos muy liados. En cuanto estén listas las pondremos en la sección de Tiendas en Magento. Las versiones de Magento han cambiado y la tarea de instalar una nueva tienda es algo que [...]]]></description>
			<content:encoded><![CDATA[<p>Hola de nuevo a todos, hacía tiempo que no escribía nada, estamos a punto de lanzar dos nuevas tiendas en Magento y vamos muy liados. En cuanto estén listas las pondremos en la sección de Tiendas en Magento.</p>
<p>Las versiones de Magento han cambiado y la tarea de instalar una nueva tienda es algo que a las empresas que desarrollan/mos en Magento hacemos muy a menudo, os voy a poner los pasos para hacer una instalación base desde cero. Para anteriores versiones podéis ver <a href="http://onestic.com/instalar-magento-desde-una-consola-ssh/">este artículo</a>, es prácticamente igual&#8230;</p>
<ol>
<li>Lo primero de todo, acceso a la consola claro <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
<li>Descargamos el paquete con la última versión:
<pre class="brush: plain; title: ; notranslate">wget http://www.magentocommerce.com/downloads/assets/1.4.0.1/magento-1.4.0.1.tar.gz</pre>
</li>
<li>Descomprimimos el paquete:
<pre class="brush: plain; title: ; notranslate">tar -zxvf magento-1.4.0.1.tar.gz</pre>
</li>
<li>Movemos el contenido de la carpeta Magento a nuestro directorio raiz (public_html. www, o el que sea):  
<pre class="brush: plain; title: ; notranslate">mv magento/* magento/.htaccess .</pre>
</li>
<li>Cambiamos permisos a la carpeta media (donde estarán las img de nuestro catálogo):
<pre class="brush: plain; title: ; notranslate">chmod -R o+w media</pre>
</li>
<li>Configuramos la instalación de Magento y buscamos las últimas actualizaciones:
<pre class="brush: plain; title: ; notranslate">./pear mage-setup .</pre>
<pre class="brush: plain; title: ; notranslate">./pear install magento-core/Mage_All_Latest-stable</pre>
</li>
<li>Este último paso debería traernos e instalar bastantes paquetes, esperar a que termine.</li>
<li>Cambiamos permisos a la carpeta var (aquí es donde va la cache, logs, sesiones, etc):
<pre class="brush: plain; title: ; notranslate">chmod o+w var var/.htaccess app/etc</pre>
</li>
<li>Borramos la cache y &#8220;basura&#8221; que ha quedado en tras la instalación:
<pre class="brush: plain; title: ; notranslate">rm -rf downloader/pearlib/cache/* downloader/pearlib/download/*</pre>
</li>
<li>Borramos la carpeta Magento (debería estar vacia) y el paquete original que nos hemos bajado:
<pre class="brush: plain; title: ; notranslate">rm -rf magento/ magento-1.4.0.1.tar.gz</pre>
</li>
<li>Ahora pasamos a la creación de la Base de datos.</li>
<li>Desde la consola entramos a MySQL:
<pre class="brush: plain; title: ; notranslate">$ mysql -u root</pre>
</li>
<li>Ejecutamos:
<pre class="brush: plain; title: ; notranslate">mysql&amp;gt; create database nombre_de_la_db;</pre>
</li>
<li>Creamos el usuario:
<pre class="brush: plain; title: ; notranslate">grant usage on *.* to nombre_usuario@localhost identified by 'aqui_la_contraseña;</pre>
</li>
<li>Asignamos el usuario a la base de datos:
<pre class="brush: plain; title: ; notranslate">grant all privileges on nombre_de_la_db.* to nombre_usuario@localhost ;</pre>
</li>
<li>Ya hemos terminado, ahora podemos empezar la instalación de nuestra nueva tienda en Magento <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </li>
</ol>
<p>Y nada más&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/instalar-magento-1-4-desde-una-consola-ssh/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Entorno de desarrollo con Magento</title>
		<link>http://onestic.com/entorno-de-desarrollo-con-magento/</link>
		<comments>http://onestic.com/entorno-de-desarrollo-con-magento/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 23:01:21 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Onestic]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=824</guid>
		<description><![CDATA[Es un poco frustrante el inicio del desarrollo de una nueva tienda en Magento, sobretodo cuando toca depurar&#8230; Por eso hoy vamos a explicar algunos trucos para poder localizar lo más rápido posible los posibles errores que cometamos. Magento cuenta con un buen sistema de log que podemos ejecutar desde cualquier parte de Magento: Magento [...]]]></description>
			<content:encoded><![CDATA[<p>Es un poco frustrante el inicio del desarrollo de una nueva tienda en Magento, sobretodo cuando toca depurar&#8230; Por eso hoy vamos a explicar algunos trucos para poder localizar lo más rápido posible los posibles errores que cometamos. Magento cuenta con un buen sistema de log que podemos ejecutar desde cualquier parte de Magento:</p>
<pre class="brush: php; title: ; notranslate"> Mage::Log($variable); </pre>
<p>Magento sacará los contenidos de la variable $variable a un fichero de log. Los arrays y los objetos se auto formatean para verse de forma correcta. Parecido a ponerlos entre etiquetas &#8220;pre&#8221;.<br />
El logging por defecto viene desactivado, hay que cambiar las siguientes opciones:</p>
<ul>
<li> En el admin, Sistema->Configuración</li>
<li> En la columna de la izquierda, en Developer (bajo de la opción de Avanzado)</li>
<li> Expandir la opción de &#8220;Log Settings&#8221;</li>
<li> Guardar </li>
</ul>
<p>Desafortunadamente, Magento no crea los ficheros de log por ti. Por defecto los ficheros están en:</p>
<pre class="brush: plain; title: ; notranslate">
var/log/system.log
var/log/exception.log
</pre>
<p>Si el fichero no existe y asegurate de que apache tiene permisos de escritura.<br />
Las llamadas usando <strong>Mage::Log</strong> se guardarán en system.log. Las excepciones en exception.log</p>
<h3>Activar el modo desarrollador. Magento Developer Mode</h3>
<p>Básicamente consiste en añadir o descomentar las siguientes líneas en el index.php</p>
<pre class="brush: php; title: ; notranslate">
#Mage::setIsDeveloperMode(true);
#ini_set('display_errors', 1);
</pre>
<p>En un entorno de producción, es de gran valor poder visualizar los errores mientras estamos en modo developer. Por defecto, cuando Magento descrubre una excepcción se redirige al usuario a una página de error. Al activar este modo conseguiremos ver los errores con el formato &#8220;pre&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/entorno-de-desarrollo-con-magento/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Configuración de Magento. System Config</title>
		<link>http://onestic.com/configuracion-de-magento-system-config/</link>
		<comments>http://onestic.com/configuracion-de-magento-system-config/#comments</comments>
		<pubDate>Wed, 03 Mar 2010 09:32:20 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[configuración magento]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[system config]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=804</guid>
		<description><![CDATA[Hacía mucho tiempo que no escribía nada, hemos ido un poco liados con el lanzamiento/creación de dos nuevas tiendas en Magento. Para estas dos nuevas tiendas en Magento hemos tenido que desarrollar varios módulos y tocar la configuración de Magento, así que hoy vamos a intentar explicar de forma resumida cómo se podemos crear menus [...]]]></description>
			<content:encoded><![CDATA[<p>Hacía mucho tiempo que no escribía nada, hemos ido un poco liados con el lanzamiento/creación de dos nuevas tiendas en Magento.<br />
Para estas dos nuevas <strong>tiendas en Magento</strong> hemos tenido que desarrollar varios módulos y tocar la configuración de Magento, así que hoy vamos a intentar explicar de forma resumida cómo se podemos crear menus de configuración para el administrador de Magento. Todo esto gracias a <a href="http://alanstorm.com">Alanstorm</a>.
</p>
<p>La primera vez que desarrolléis algo para Magento os parecerá un mundo (la verdad es que si no habéis usado un framework alguna vez se hace complicado, hasta que lo entiendes claro <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )<br />
El &#8220;módulo&#8221; que vamos a desarrollar no tiene ninguna funcionalidad, pero si explica parte por parte los elementos necesarios para su creación. Lo único que no vamos a hacer es una nueva entrada en el administrador con un par de campos.<br />
Vamos por partes:</p>
<h3>Creación del fichero de configuración</h3>
<p>Lo primero que vamos a necesitar es un fichero para la configuración del sistema llamado system.xml (no confundir con config.xml)</p>
<pre class="brush: plain; title: ; notranslate">app/code/local/Alanstormdotcom/Helloworld/etc/system.xml</pre>
<p>Un pequeño truco si necesitamos ver el contenido de la configuración es ejecutar desde cualquier página el siguiente código en PHP:</p>
<pre class="brush: php; title: ; notranslate">
//header('Content-Type: text/xml');
header('Content-Type: text/plain');
echo $config = Mage::getConfig()
-&gt;loadModulesConfiguration('system.xml')
-&gt;getNode()
-&gt;asXML();
exit;
</pre>
<p>El método <strong>loadModulesConfiguration</strong> buscará en todos los módulos configurados el fichero <strong>system.xml</strong>. Magento dispone de otros ficheros además de este (api.xml, convert.xml, wsdl.xml, compilation.xml, install.xml).</p>
<h3>Añadir una solapa en el administrador de Magento</h3>
<p>La siguiente operación que vamos a realizar es añadir un &#8220;Tab&#8221; o solapa en el administrador de Magento (System->Configuration). Como solapas generales podemos encontrar la de General, Catálogo, Ventas, Servicios y Avanzado.<br />
Ahora vamos a crear una nuevo llamada &#8220;Hello Config&#8221;.</p>
<pre class="brush: php; title: ; notranslate">
Ubicación: app/code/local/Alanstormdotcom/Helloworld/etc/system.xml
&lt;config&gt;
    &lt;tabs&gt;
        &lt;helloconfig translate=&quot;label&quot; module=&quot;helloworld&quot;&gt;
            &lt;label&gt;Hello Config&lt;/label&gt;
            &lt;sort_order&gt;99999&lt;/sort_order&gt;
        &lt;/helloconfig&gt;
    &lt;/tabs&gt;
&lt;/config&gt;
</pre>
<p>Algunas aclaraciones sobre el código del xml. El nombre <strong>helloconfig</strong> es totalmente arbitrario, pero debe ser único entre todos los tabs que tenemos en el sistema. Nos servirá como identificador. Es mejor utilizar nombres que referencien lo que hace nuestro &#8220;módulo&#8221; para no liarse después.<br />
El atributo module=&#8221;helloworld&#8221; identifica del módulo al que pertenece, <label> indica el nombre del Tab y  determina el orden de aparicion con respecto a los demás tabs en la columna de la izquierda del administrador.</p>
<h3>Breve ayuda sobre las Helper Classes</h3>
<p>Magento cuenta como muchos otros sistemas MVC con Helper classes, las cuales son usadas para una gran variedad de tareas que no encajan ni el Modelo, ni en la vista ni el controlador. Como desarrolladores de módulos podemos utilizar las Helper Classes del sistema o las nuestras propias (en el caso de nuestro módulo Helloworld).<br />
Lo primero será añadirlo en el fichero config.xml (ojo, no el system.xml)</p>
<pre class="brush: xml; title: ; notranslate">
Fichero: app/code/local/Alanstormdotcom/Helloworld/etc/config.xml
&lt;!-- ... --&gt;
&lt;global&gt;
    &lt;!-- ... --&gt;
    &lt;helpers&gt;
        &lt;helloworld&gt;
            &lt;class&gt;Alanstormdotcom_Helloworld_Helper&lt;/class&gt;
        &lt;/helloworld&gt;
    &lt;/helpers&gt;
    &lt;!-- ... --&gt;
&lt;/global&gt;
&lt;!-- ... --&gt;
</pre>
<p>La única parte &#8220;rara&#8221; que podemos encontrar aquí es la que hace referencia al nombre de la clase. Como sabréis la notación para esto debe seguir la siguiente estructura:</p>
<pre class="brush: plain; title: ; notranslate">
Nombredelpaquete_Nombredelmodulo_Helper
</pre>
<p>Los Helpers se cargaran en el global Mage. La siguiente llamada servirá (teniendo en cuenta la configuración que hemos ido dando)</p>
<pre class="brush: plain; title: ; notranslate">
Mage::helper('helloworld/foo');
</pre>
<p>&#8230;cargará la siguiente clase</p>
<pre class="brush: plain; title: ; notranslate">
app/code/local/Alanstormdorcom/Helper/Foo.php
class Alanstormdotcom_Helloworld_Helper_Foo
</pre>
<p>Magento también permite el concepto de &#8220;Helper por defecto&#8221; para un módulo, lo que significa que podíamos haber usado esta llamada:</p>
<pre class="brush: plain; title: ; notranslate">
Mage::helper('helloworld');
</pre>
<p>lo que hubiera provocado que se hubiera buscado en:</p>
<pre class="brush: plain; title: ; notranslate">
app/code/local/Alanstormdorcom/Helper/Data.php
class Alanstormdotcom_Helloworld_Helper_Dara
</pre>
<p>Con esto llegamos a la conclusión de que es lo mismo poner estas dos líneas:</p>
<pre class="brush: plain; title: ; notranslate">
Mage::helper('helloworld');
Mage::helper('helloworld/data');
</pre>
<p>Supongo que estas líneas os habrán aclarado más de una duda (o eso espero)<br />
Por último tenemos que añadir el Helper class actual.</p>
<pre class="brush: plain; title: ; notranslate">
Fichero: app/code/local/Alanstormdorcom/Helper/Data.php
class Alanstormdotcom_Helloworld_Helper_Data extends Mage_Core_Helper_Abstract
{
}
</pre>
<p>Si hemos seguido los pasos y hemos borrado la cache, ya no deberíamos tener ningún error en el administrador. Eso si, todavía no podremos ver nuestro nuevo Tab.</p>
<h3>Añadir una Nueva Sección</h3>
<p>El siguiente paso es saber por qué nuestra ficha no aparece todavía en el administrador. Cada Tab/ficha dispone de una serie de secciones. Por ejemplo, el Tab &#8220;Avanzado&#8221; por defecto tiene una de Administrador, Sistema, Avanzado y Desarrollador.<br />
Si creamos un Tab sin secciones no se mostrará, por eso vamos a añadir un nodo llamado :</p>
<pre class="brush: xml; title: ; notranslate">
Ubicación: app/code/local/Alanstormdotcom/Helloworld/etc/system.xml

&lt;config&gt;
    &lt;tabs&gt;
        &lt;helloconfig translate=&quot;label&quot; module=&quot;helloworld&quot;&gt;
            &lt;label&gt;Hello Config&lt;/label&gt;
            &lt;sort_order&gt;99999&lt;/sort_order&gt;
        &lt;/helloconfig&gt;
    &lt;/tabs&gt;
    &lt;sections&gt;
        &lt;helloworld_options translate=&quot;label&quot; module=&quot;helloworld&quot;&gt;
            &lt;label&gt;Hello World Config Options&lt;/label&gt;
            &lt;tab&gt;helloconfig&lt;/tab&gt;
            &lt;frontend_type&gt;text&lt;/frontend_type&gt;
            &lt;sort_order&gt;1000&lt;/sort_order&gt;
            &lt;show_in_default&gt;1&lt;/show_in_default&gt;
            &lt;show_in_website&gt;1&lt;/show_in_website&gt;
            &lt;show_in_store&gt;1&lt;/show_in_store&gt;
        &lt;/helloworld_options&gt;
    &lt;/sections&gt;
&lt;/config&gt;
</pre>
<p><strong>helloworld_options</strong>, como antes, un nombre arbitrario, usado para identificar nuestra nueva sección.<br />
<strong>label</strong> , define lo que se mostrará en la interfaz. Es decir, la etiqueta.<br />
<strong>tab</strong> , identifica bajo que Tab estará agrupada nuestra nueva sección.<br />
<strong>frontend_type</strong> , esta no está muy clara. Parece que no sirve para nada (corregirme si me equivoco), yo la pongo por si las moscas <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
<strong>sort_order</strong> , determina el orden de aparición (vertical) con respecto a las otras secciones.<br />
<strong>show_in_default</strong> , <show_in_website />, <show_in_store />, determina el nivel la granularidad que tiene esta sección. Los valores son 0 y 1.<br />
Con todo esto claro ya deberíamos ver la nueva Ficha con su sección. Si queremos añadir nuevas secciones únicamente tenemos que introducir nuecas .</p>
<h3>Control de Acceso</h3>
<p>Si pulsamos en la nueva sección que acabamos de crear obtendremos una página en blanco. Esto se debe a que el Adminhtml no puede encontrar la entrarda de nuestra nueva sección en el ACL (Access Control List) &#8211; Lista de control de acceso.<br />
La gente de Magento decidió en su momento que las secciones de configuración de Sistema deberían tener porotección ACL.<br />
Los recursos son definidos mendiante URI&#8217;s. Por ejemplo, la sección de configuración &#8220;web&#8221; se define de la siguiente forma:</p>
<pre class="brush: plain; title: ; notranslate">
admin/system/config/web
</pre>
<p>en nuestro caso&#8230;</p>
<pre class="brush: plain; title: ; notranslate">
admin/system/config/helloworld_options
</pre>
<p>La sección del administrador (conocida como Adminhtml) está desarrollada con el mismo framework que la tienda. Cada vez que un usuario accede a un recurso del admin, el adminhtml debe:</p>
<ul>
<li>Deducir la URI donde el usuario quiere acceder</li>
<li>Comprobar la URI contra el sistema ACL y determinar si el usuario tiene permisos sobre este recurso</li>
<li>Si el usuario no tiene privilegios informar</li>
</ul>
<p>Para los que estéis interesados en esta parte el método usado es _isSectionAllowed que podemos encontrar en el siguiente controlador:</p>
<pre class="brush: plain; title: ; notranslate">
app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php
</pre>
<p>Como todos sabréis, una forma de ver los Roles asignados en el administrador es desde Sistema-> Permisos -> Roles</p>
<h3>Añadir Roles. ACL</h3>
<p>Para entender esta sección hay que leer la anterior. Para los despistados <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Editamos el fichero que controla los permisos necesarios para acceder a nuestra nueva sección:</p>
<pre class="brush: xml; title: ; notranslate">
Fichero: app/code/local/Alanstormdotcom/Helloworld/etc/config.xml
&lt;config&gt;
    &lt;!-- ... --&gt;
    &lt;adminhtml&gt;
        &lt;acl&gt;
            &lt;resources&gt;
                &lt;admin&gt;
                    &lt;children&gt;
                        &lt;system&gt;
                            &lt;children&gt;
                                &lt;config&gt;
                                    &lt;children&gt;
                                        &lt;helloworld_options&gt;
                                            &lt;title&gt;Store Hello World Module Section&lt;/title&gt;
                                        &lt;/helloworld_options&gt;
                                    &lt;/children&gt;
                                &lt;/config&gt;
                            &lt;/children&gt;
                        &lt;/system&gt;
                    &lt;/children&gt;
                &lt;/admin&gt;
            &lt;/resources&gt;
        &lt;/acl&gt;
    &lt;/adminhtml&gt;
    &lt;!-- ... --&gt;
&lt;/config&gt;
</pre>
<p>Resumiendo:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;adminhtml&gt;
    &lt;acl&gt;
        &lt;resources&gt;
        &lt;/resource&gt;
    &lt;/acl&gt;
&lt;/adminhtml&gt;
</pre>
<p>Dentro del recurso, cada nodo hijo representa una porción de la URI. Por ejemplo:</p>
<pre class="brush: xml; title: ; notranslate">
admin/system
</pre>
<p>nos devuelve la siguiente URI</p>
<pre class="brush: xml; title: ; notranslate">
admin/system
</pre>
<p>Si has seguido todos los pasos, tenemos las siguiente configuración:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;helloworld_options&gt;
    &lt;title&gt;Store Hello World Module Section&lt;/title&gt;
&lt;/helloworld_options&gt;
</pre>
<p>Para ver todos estos cambios desde el administrador, como siempre, borrar la cache, cerrar sesión y volver a iniciarla. Si todo ha ido bien, deberíamos ver una nueva página de llamada “Hello World Config Options”.</p>
<h3>Añadir Grupos</h3>
<p>Ya tenemos nuestra página de configuración (en blanco) con los permisos adecuados. Vamos a crear grupos para las secciones.</p>
<pre class="brush: xml; title: ; notranslate">
Ubicación: app/code/local/Alanstormdotcom/Helloworld/etc/system.xml
&lt;config&gt;
    &lt;tabs&gt;
        &lt;helloconfig translate=&quot;label&quot; module=&quot;helloworld&quot;&gt;
            &lt;label&gt;Hello Config&lt;/label&gt;
            &lt;sort_order&gt;99999&lt;/sort_order&gt;
        &lt;/helloconfig&gt;
    &lt;/tabs&gt;
    &lt;sections&gt;
        &lt;helloworld_options translate=&quot;label&quot; module=&quot;helloworld&quot;&gt;
            &lt;label&gt;Hello World Config Options&lt;/label&gt;
            &lt;tab&gt;helloconfig&lt;/tab&gt;
            &lt;frontend_type&gt;text&lt;/frontend_type&gt;
            &lt;sort_order&gt;1000&lt;/sort_order&gt;
            &lt;show_in_default&gt;1&lt;/show_in_default&gt;
            &lt;show_in_website&gt;1&lt;/show_in_website&gt;
            &lt;show_in_store&gt;1&lt;/show_in_store&gt;
            &lt;groups&gt;
                &lt;messages translate=&quot;label&quot;&gt;
                    &lt;label&gt;Demo Of Config Fields&lt;/label&gt;
                    &lt;frontend_type&gt;text&lt;/frontend_type&gt;
                    &lt;sort_order&gt;1&lt;/sort_order&gt;
                    &lt;show_in_default&gt;1&lt;/show_in_default&gt;
                    &lt;show_in_website&gt;1&lt;/show_in_website&gt;
                    &lt;show_in_store&gt;1&lt;/show_in_store&gt;
                &lt;/messages&gt;
            &lt;/groups&gt;
        &lt;/helloworld_options&gt;
    &lt;/sections&gt;
&lt;/config&gt;
</pre>
<p>Guardamos y recargamos la página. ¿Veís la caja con el título “Demo Of Config Fields”. ? (espero que si, sino mal vamos&#8230;.)</p>
<h3>Añadir campos de configuración. Config fields</h3>
<p>Y ya por último, vamos a introducir los campos necesarios para la configuración de nuestro módulo. Esto se hace con el nodo<br />
Por ejemplo, un campo con el nombre &#8220;hello_message&#8221;.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- ... --&gt;
&lt;messages translate=&quot;label&quot;&gt;
    &lt;label&gt;Demo Of Config Fields&lt;/label&gt;
    &lt;frontend_type&gt;text&lt;/frontend_type&gt;
    &lt;sort_order&gt;1&lt;/sort_order&gt;
    &lt;show_in_default&gt;1&lt;/show_in_default&gt;
    &lt;show_in_website&gt;1&lt;/show_in_website&gt;
    &lt;show_in_store&gt;1&lt;/show_in_store&gt;
    &lt;fields&gt;
        &lt;hello_message&gt;
            &lt;label&gt;Message&lt;/label&gt;
            &lt;frontend_type&gt;text&lt;/frontend_type&gt;
            &lt;sort_order&gt;1&lt;/sort_order&gt;
            &lt;show_in_default&gt;1&lt;/show_in_default&gt;
            &lt;show_in_website&gt;1&lt;/show_in_website&gt;
            &lt;show_in_store&gt;1&lt;/show_in_store&gt;
        &lt;/hello_message&gt;
    &lt;/fields&gt;
&lt;/messages&gt;
&lt;!-- ... --&gt;
</pre>
<p>Os acordáis que antes comentábamos la finalidad del campo <strong>frontend_type</strong>, bueno, pues aquí tenéis la explicación.  En esta sección si tiene sentido. Si recargamos la página deberíamos ver un text field.<br />
Vamos ahora con otro tipo de campo, uno de tipo time.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- ...--&gt;
&lt;fields&gt;
    &lt;hello_message&gt;
        &lt;label&gt;Message&lt;/label&gt;
        &lt;frontend_type&gt;text&lt;/frontend_type&gt;
        &lt;sort_order&gt;1&lt;/sort_order&gt;
        &lt;show_in_default&gt;1&lt;/show_in_default&gt;
        &lt;show_in_website&gt;1&lt;/show_in_website&gt;
        &lt;show_in_store&gt;1&lt;/show_in_store&gt;
    &lt;/hello_message&gt;
    &lt;hello_time&gt;
        &lt;label&gt;Time to Say Hello&lt;/label&gt;
        &lt;frontend_type&gt;time&lt;/frontend_type&gt;
        &lt;sort_order&gt;1&lt;/sort_order&gt;
        &lt;show_in_default&gt;1&lt;/show_in_default&gt;
        &lt;show_in_website&gt;1&lt;/show_in_website&gt;
        &lt;show_in_store&gt;1&lt;/show_in_store&gt;
    &lt;/hello_time&gt;
&lt;/fields&gt;
&lt;!-- ... --&gt;
</pre>
<p>La única diferencia entre ambos nodos es el tipo. <strong>time</strong><br />
Para ver los tipos soportados por Magento podemos ir a lib/Varien/Data/Form/Element. No están todos, pero si la mayoría&#8230;<br />
Ahora vamos a cambiar el text de hello_message por un combo.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;!-- ... --&gt;
&lt;hello_message&gt;
    &lt;label&gt;Message&lt;/label&gt;
    &lt;frontend_type&gt;select&lt;/frontend_type&gt;
    &lt;sort_order&gt;1&lt;/sort_order&gt;
    &lt;show_in_default&gt;1&lt;/show_in_default&gt;
    &lt;show_in_website&gt;1&lt;/show_in_website&gt;
    &lt;show_in_store&gt;1&lt;/show_in_store&gt;
&lt;/hello_message&gt;
&lt;!-- ... --&gt;
</pre>
<p>pero&#8230; el combo no tiene datos, no hay problema, tenemos que indicarle el origen de datos:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;hello_message&gt;
    &lt;label&gt;Message&lt;/label&gt;
    &lt;frontend_type&gt;select&lt;/frontend_type&gt;
    &lt;!-- adding a source model --&gt;
    &lt;source_model&gt;helloworld/words&lt;/source_model&gt;
    &lt;sort_order&gt;1&lt;/sort_order&gt;
    &lt;show_in_default&gt;1&lt;/show_in_default&gt;
    &lt;show_in_website&gt;1&lt;/show_in_website&gt;
    &lt;show_in_store&gt;1&lt;/show_in_store&gt;
&lt;/hello_message&gt;
</pre>
<p>El elemento <strong>source_model</strong> define el URI de un Model class que usaremos para meter datos en el combo. Como siempre, este cambio lo metemos en el config.xml (dentro de la sección de models):</p>
<pre class="brush: xml; title: ; notranslate">
Ubicación: app/code/local/Alanstormdotcom/Helloworld/etc/config.xml
&lt;config&gt;
    &lt;!-- ... --&gt;
    &lt;global&gt;
    &lt;!-- ... --&gt;
        &lt;models&gt;
            &lt;!-- ... --&gt;
            &lt;helloworld&gt;
                &lt;class&gt;Alanstormdotcom_Helloworld_Model&lt;/class&gt;
            &lt;/helloworld&gt;
            &lt;!-- ... --&gt;
        &lt;/models&gt;
    &lt;/global&gt;
&lt;/config&gt;
</pre>
<p>Si recargamos la página nos dará un error, claro, no hemos definido la fuente de nuestro Model class.</p>
<pre class="brush: plain; title: ; notranslate">
Warning: include(Alanstormdotcom/Helloworld/Model/Words.php)
</pre>
<p>Nota: si en el error vemos algo parecido a &#8220;Mage/Helloworld/&#8230;&#8221; significa que no hemos creado bien la sección de <strong>models</strong>. Revisar el config.xml<br />
Para definir la fuente del Modelo:</p>
<pre class="brush: php; title: ; notranslate">
File: app/code/local/Alanstormdotcom/Helloworld/Model/Words.php
class Alanstormdotcom_Helloworld_Model_Words
{
public function toOptionArray()
{
return array(
array('value'=&gt;1, 'label'=&gt;Mage::helper('helloworld')-&gt;__('Hello')),
array('value'=&gt;2, 'label'=&gt;Mage::helper('helloworld')-&gt;__('Goodbye')),
array('value'=&gt;3, 'label'=&gt;Mage::helper('helloworld')-&gt;__('Yes')),
array('value'=&gt;4, 'label'=&gt;Mage::helper('helloworld')-&gt;__('No')),
);
}

}
</pre>
<p>El método devuelve un array con los valores que usaremos posteriormente. Al recargar la página veremos el combo con nuestros datos. Fijaros que hemos usaros el método (__) para las traducciones. Ya que lo hacemos lo hacemos bien, no?</p>
<h3>Recogiendo valores</h3>
<p>Hemos visto cómo desarrollar formularios para crear valores de configuración. Para obtenerlos desde nuestro código y poder utilizarlos tenemos que usar un método llamado getStoreConfig. Por ejemplo:</p>
<pre class="brush: php; title: ; notranslate">
Mage::getStoreConfig('helloworld_options/messages/hello_message');
</pre>
<p>El método getStoreConfig acepta como parámetro la URI:</p>
<pre class="brush: php; title: ; notranslate">
section_name/group_name/field_name
Mage::getStoreConfig('helloworld_options/messages');
Mage::getStoreConfig('helloworld_options');
</pre>
<p>Por útlimo, si quieremos grabar un valor para una tienda en concreto, getStoreConfig acepta un segundo valor, el storeID:</p>
<pre class="brush: php; title: ; notranslate">
Mage::getStoreConfig('helloworld_options',1);
</pre>
<p>Y para los que no tengáis ganas de estar copiando y pegando, como siempre, os dejamos directamente el código. <img src='http://onestic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<a href='http://onestic.com/wp-content/uploads/2010/03/HelloworldSystemconfig.tar'>Descargar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/configuracion-de-magento-system-config/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Top 10 extensiones para Magento</title>
		<link>http://onestic.com/top-10-extensiones-para-magento/</link>
		<comments>http://onestic.com/top-10-extensiones-para-magento/#comments</comments>
		<pubDate>Mon, 01 Feb 2010 12:32:35 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[extensiones]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=783</guid>
		<description><![CDATA[A continuación una relación de las extensiones que a mi juicio son imprescindibles en una integración de Magento. Luego evindentemente hay una personalización y modificación de cada uno de ellos para que realicen exactamente  lo que necesitamos en nuestra tienda de compercio electrónico. También dependerá del tipo de tienda y el público objetivo al que [...]]]></description>
			<content:encoded><![CDATA[<p>A continuación una relación de las extensiones que a mi juicio son imprescindibles en una integración de Magento. Luego evindentemente hay una personalización y modificación de cada uno de ellos para que realicen exactamente  lo que necesitamos en nuestra tienda de compercio electrónico.
</p>
<p>También dependerá del tipo de tienda y el público objetivo al que queremos llegar. Os animo a completar la lista de extensiones, nosotros usamos unas cuantas más, pero tampoco las vamos a poner todas, no tendría sentido. Con estas por lo menos cubrimos alguna de las carencias que tiene Magento por defecto.
</p>
<p><br/></p>
<h3>1.- <a href="http://www.magentocommerce.com/extension/518/blank-theme">Blank Theme</a></h3>
<p>Fundamental. Usado como base de todas nuestras tiendas. Resetea todos los estilos y te permite empezar desde cero. Como inconveniente, pues que te toca hacerlo todo a ti (layouts, styles, images, etc). Como ventaja, que lo dejas como quieres <img src='http://onestic.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
<br/><br />
<a href="http://www.magentocommerce.com/extension/518/blank-theme"><img class="alignnone size-full wp-image-784" title="download" src="http://onestic.com/wp-content/uploads/2010/02/download.png" alt="" width="228" height="146" /></a><br />
<br/></p>
<h3>2.- Actualizaciones de Magento</h3>
<p>Antes de seguir, vamos a comprobar que realmente tenemos la úlitma versión estable de Magento con todos sus parches de seguridad aplicados. Desde el Magento connect poner &#8220;<em>magento-core/Mage_All_Latest</em>&#8220;.<br />
<br/><br />
<br/></p>
<h3>3.- <a href="http://www.magentocommerce.com/extension/reviews/module/1426">TinyMCE para Magento</a></h3>
<p>Nos permite meter un Tiny en los campos del administrador que nos hagan falta. Cuando salga la versión estable de Magento 1.4 este plugin no tendrá demasiado sentido puesto que ya lo llevará de serie, pero seguro que sacan alguna mejora.<br />
<br/><br />
<a href="http://www.magentocommerce.com/extension/reviews/module/1426"><img class="alignnone size-full wp-image-785" title="146" src="http://onestic.com/wp-content/uploads/2010/02/146.png" alt="" width="228" height="146" /></a><br />
<br/></p>
<h3>4.- <a href="http://www.magentocommerce.com/extension/reviews/module/171">Fooman Google Analytics Plus</a></h3>
<p>Importante si queremos controlar lo que pasa en nuestros carritos de la compra. Podemos ver (utilizando analytics) los pasos que siguen nuestros clientes. Es complicado de utilizar y la documentación que existe de este módulo no es del todo correcta, pero seguro que acaba mejorando.</p>
<p><a href="http://www.magentocommerce.com/extension/reviews/module/171"><img class="alignnone size-full wp-image-786" title="fooman google analytics" src="http://onestic.com/wp-content/uploads/2010/02/fooman-google-analytics.png" alt="" width="228" height="146" /></a></p>
<h3>5.- <a href="http://www.magentocommerce.com/module/2333/magento-social-bookmarking">Compartir con redes sociales</a></h3>
<p>Para compartir contenidos en las diferentes redes sociales que actualmente están de moda (twitter, facebook, etc.) contamos con esta estupenda extensión de la gente de Magentix.</p>
<p><a href="http://www.magentocommerce.com/module/2333/magento-social-bookmarking"><img class="alignnone size-full wp-image-794" title="magento social bookmarking" src="http://onestic.com/wp-content/uploads/2010/02/magento-social-bookmarking.jpg" alt="" width="228" height="146" /></a></p>
<h3>6.- <a href="http://www.magentocommerce.com/extension/1468/order-status">Diferentes estados para cada pedido</a></h3>
<p>Nos permite cambiar los estados de un pedido. Como sabréis, por defecto estos son muy pocos y de esta manera podemos controlar los diferentes pasos que debe seguir antes de darlo por cerrado.</p>
<p><a href="http://www.magentocommerce.com/extension/1468/order-status"><img class="alignnone size-full wp-image-788" title="magento order status" src="http://onestic.com/wp-content/uploads/2010/02/magento-order-status.jpg" alt="" width="228" height="146" /></a></p>
<h3>7.- <a href="http://www.magentocommerce.com/extension/reviews/module/1447">Comentarios desde el CMS</a></h3>
<p>Mediante esta extensión podemos incluir una porción con los últimos comentarios y valoraciones de nuestros clientes en cualquier parte de la web. Muy útil y muy configurable.</p>
<p><a href="http://www.magentocommerce.com/extension/reviews/module/1447"><img class="alignnone size-full wp-image-789" title="magento latest reviews" src="http://onestic.com/wp-content/uploads/2010/02/magento-latest-reviews1.jpg" alt="" width="228" height="146" /></a></p>
<h3>8.- <a href="http://www.magentocommerce.com/extension/873/delete-orders">Borrar pedidos en Magento</a></h3>
<p>Inclreible pero cierto, magento no dispone (por lo menos en esta versión) de ninguna opción para borrar sus pedidos. Al desarrollar tiendas en magento hacemos multitud de pruebas, así que de vez en cuando tenemos que borrar pedidos. Para ello utilizaremos la extensión de Delete Orders. Para cosas más concretas no nos queda otra que meterle mano a la Base de Datos directamente.</p>
<p><a href="http://www.magentocommerce.com/extension/873/delete-orders"><img class="alignnone size-full wp-image-793" title="magento delete orders" src="http://onestic.com/wp-content/uploads/2010/02/magento-delete-orders.png" alt="" width="228" height="146" /></a></p>
<h3>9.- <a href="http://www.magentocommerce.com/extension/748/enhanced-product-grid">Listado de productos con imagenes en el administrador</a></h3>
<p>Muy útilo sobretodo cuando tenemos que modificar nuestros productos desde el administrador y no queremos entrar en el detalle para ver su imágen. Esta extensión nos permite listar los productos personalizando las columnas. Lo malo es que no coge el thumb y carga la img redimensionada. Veremos si mejoran esta parte.</p>
<p><a href="http://www.magentocommerce.com/extension/748/enhanced-product-grid"><img class="alignnone size-full wp-image-790" title="magento enhanced admin prodcuts" src="http://onestic.com/wp-content/uploads/2010/02/magento-enhanced-admin-prodcuts.png" alt="" width="228" height="146" /></a></p>
<h3>10.- <a href="http://www.magentocommerce.com/extension/763/vertical-navigation-with-css-classes">Categorías en vertical</a></h3>
<p>Posiblemente uno de los dilemas que nos encontraremos cuando montamos una tienda online es la disposición de las categorías. Si finalmente optamos por ponerla en vertical (por ejemplo en el sidebar), esta es sin duda la extensión que no hace falta. Se trata de Vertical Navigation CSS.</p>
<p><a href="http://www.magentocommerce.com/extension/763/vertical-navigation-with-css-classes"><img class="alignnone size-full wp-image-792" title="vertical navigation" src="http://onestic.com/wp-content/uploads/2010/02/vertical-navigation.png" alt="" width="228" height="146" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/top-10-extensiones-para-magento/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Resumen Barcamp E-commerce. El estado del comercio electrónico en España.</title>
		<link>http://onestic.com/el-estado-del-comercio-electronico-en-espana-resumen-barcamp-e-commerce/</link>
		<comments>http://onestic.com/el-estado-del-comercio-electronico-en-espana-resumen-barcamp-e-commerce/#comments</comments>
		<pubDate>Fri, 29 Jan 2010 11:43:00 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Opinión]]></category>
		<category><![CDATA[barcamp e-commerce]]></category>
		<category><![CDATA[comercio electrónico]]></category>
		<category><![CDATA[e-commerce]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[tiendas on-line]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=775</guid>
		<description><![CDATA[Ayer estuvimos en Barcelona en las jornadas de la Barcamp E-commerce. Como empresa dedicada al desarrollo de tiendas en Magento en España teniamos que estar presentes para conocer de primera mano cuál es la situación en nuestro país sobre el comercio electrónico. Algunas &#8220;conclusiones&#8221; hemos sacado de todo lo que se habló, la mayoría positivas. [...]]]></description>
			<content:encoded><![CDATA[<p>Ayer estuvimos en Barcelona en las jornadas de la <strong><a href="http://barcamp-ecommerce.es/">Barcamp E-commerce</a></strong>. Como empresa dedicada al <strong>desarrollo de tiendas en Magento en España</strong> teniamos que estar presentes para conocer de primera mano cuál es la situación en nuestro país sobre el <strong>comercio electrónico</strong>.<br />
Algunas &#8220;conclusiones&#8221; hemos sacado de todo lo que se habló, la mayoría positivas. Esperamos que las pequeñas anotaciones mentales que hicimos os sirvan de ayuda si estáis pensando en montar una <strong>tienda de comercio electrónico</strong> con Magento (u otras alternativas) en España.</p>
<ol>
<li>El mercado Español está &#8220;virgen&#8221;. Llevamos un retraso de 4 años con respecto a países como UK y 2 con respecto a países más cercanos (Francia). Esto significa que todavía <strong>queda mucho negocio</strong>.</li>
<li>Hay <strong>oportunidades</strong>, y si conseguimos encontrar nuestro nicho de mercado podemos sacar muy buenos rendimientos.</li>
<li>Los principales problemas que tenemos son tres: <strong>la logística</strong> (que hasta el momento no ha sabido adaptarse a los tiempos que corren), la confianza y los métodos de pago (muchos de ellos intrusivos e incómodos). <strong><a href="http://www.mrw.es/se/MRW_logistica_e_commerce.asp?menu=5">MRW </a></strong>ha lanzado una solución (todavía no sé si muy novedoso) específico para este tipo de negocios.</li>
<li>Gracias a tiendas como <a href="http://es.vente-privee.com">vente-privee</a> o <a href="http://es.buyvip.com/index.jsp">buy-vip</a> los usuarios están perdiendo el miedo a comprar en internet, cosa que por otra parte nos beneficia a todos. Cuanta más gente compre en internet más oportunidad de negocio tendremos.</li>
<li>El perfil del comprador está cambiando. Pasamos del típico hombre de mediana edad (25-35 años), &#8220;experto&#8221; en tecnología, a mujeres de cualquier edad que van de compras y buscan ofertas desde la web. Si el ahorro merece la pena, cualquiera está dispuesto a perder 5 minutos delante del ordenador para comprar.</li>
<li>Los métodos de <strong>captación de tráfico</strong> para tiendas como el <strong>SEO </strong>75%, <strong>SEM </strong>(el que mejor ROI tiene, en teoría), <strong>publicidad </strong>en portales, presencia en <strong>Market places </strong>locales/nacionales,  directorios, <strong>email-marketing </strong>(los datos que ofrecieron dan que pensar), relaciones públicas con otros <strong>Blogs</strong>, <strong>notas de prensa</strong> y la utilización <strong>herramientas 2.0</strong>) son cada vez más efectivas a la hora de sectorizar nuestro público objetivo.</li>
<li><strong>Analítica web</strong>. Imprescindible. Se estima que los ratios de conversión oscilan, en general, entre el 1% y el 3%. Con estas cifras, las datos proporcionados por herramientas como Analytics deberían bastar. Si conseguimos alcanzar un 3% deberíamos plantearnos la utilización de herramientas que completarán estos datos y nos ofrecerán nuevos puntos de vista.</li>
<li><strong>Microsegmentación</strong>. Tener claro cuál es nuestro público objetivo y cómo podemos llegar al él de la forma más rápida.</li>
<li><strong>Fidelización de usuarios</strong>, leads y retorno de la inversión. Planes de marketing, campañas online/offline y la famosa figura del <strong>Community Manager</strong>.</li>
</ol>
<p>En fin, conceptos que todos tenemos claros y pocos aplican (aplicamos&#8230;). Esto no es más que una tormenta de ideas que escuchamos ayer y que &#8211; ciertas o no &#8211; deberían hacernos recapacitar. ¿Estamos haciendo las cosas realmente bien?</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/el-estado-del-comercio-electronico-en-espana-resumen-barcamp-e-commerce/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Crear un usuario administrador en Magento desde código</title>
		<link>http://onestic.com/crear-un-usuario-administrador-en-magento-desde-codigo/</link>
		<comments>http://onestic.com/crear-un-usuario-administrador-en-magento-desde-codigo/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 12:36:50 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[admin]]></category>
		<category><![CDATA[creación de usuarios]]></category>
		<category><![CDATA[magento]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=766</guid>
		<description><![CDATA[¿Cómo podemos crear un nuevo usuario administrador si perdemos la contraseña? Bueno, existe una &#8220;técnica&#8221; en la que modificando un fichero podemos crear un usuario administrador de una manera sencilla y rápida. Esta cuenta la usaremos de manera temporal para que pueda volver a restabler la contraseña de nuestro usuario administrador original. Para ello debemos [...]]]></description>
			<content:encoded><![CDATA[<p>¿Cómo podemos crear un nuevo <strong>usuario administrador</strong> si perdemos la contraseña? Bueno, existe una &#8220;técnica&#8221; en la que modificando un fichero podemos crear un usuario administrador de una manera sencilla y rápida. Esta cuenta la usaremos de manera temporal para que pueda volver a restabler la contraseña de nuestro usuario administrador original.</p>
<p>Para ello debemos tocar un fichero del core de Magento (no os preocupéis, luego lo dejaremos como estaba).</p>
<p><strong>/app/code/core/Mage/Adminhtml/controllers/indexController.php</strong></p>
<p>Buscamos <strong>function loginAction </strong>y la dejamos así (hacer una copia de seguridad para dejar el fichero como estaba cuando terminemos):</p>
<pre class="brush: php; title: ; notranslate">
public function loginAction()
  {
      //Zend_Debug::dump(Mage::getSingleton('admin/session'));
      if (Mage::getSingleton('admin/session')-&gt;isLoggedIn()) {
          $this-&gt;_redirect('*');
          return;
      }
      $loginData = $this-&gt;getRequest()-&gt;getParam('login');
      $data = array();
      if( is_array($loginData) &amp;&amp; array_key_exists('username', $loginData) ) {
          $data['username'] = $loginData['username'];
      } else {
          $data['username'] = null;
      }
      try
      {
          $user = Mage::getModel(&quot;admin/user&quot;)
                  -&gt;setUsername('tempadmin')
                  -&gt;setFirstname('Firstname')
                  -&gt;setLastname('Lastname')
                  -&gt;setEmail('tempadmin@tempadmin.com')
                  -&gt;setPassword('tempadmin123')
                  -&gt;save();
          $role = Mage::getModel(&quot;admin/role&quot;);
          $role-&gt;setParent_id(1);
          $role-&gt;setTree_level(1);
          $role-&gt;setRole_type('U');
          $role-&gt;setUser_id($user-&gt;getId());
          $role-&gt;save();
          echo &quot;Special user created&quot;;
      }
      catch (Exception $ex)
      {
      }
      #print_r($data);
      $this-&gt;_outTemplate('login', $data);
  }
</pre>
<p>Ahora abrimos la página de Login y veremos un mensaje que nos informará de la creación de un nuevo usuario. Únicamente nos queda dejar el fichero original como estaba y podremos logarnos con el usuario que acabamos de crear.<br />
<strong> IMPORTANTE</strong>: una vez restablecida la contraseña o el <strong>usuario administrador original</strong>, tenemos que borrar todos los elementos que hemos creado y dejar los ficheros originales para no dejar ningún agujero de seguridad.<br />
Gracias por el aporte de <a href="http://blog.magentomagik.com/how-to-create-an-admin-account-from-magento-code/">magentomagik</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/crear-un-usuario-administrador-en-magento-desde-codigo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

