<?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>blog de onestic</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:40:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Tienda de Conserva Selección en Magento</title>
		<link>http://onestic.com/tienda-de-conservas-seleccion-en-magento/</link>
		<comments>http://onestic.com/tienda-de-conservas-seleccion-en-magento/#comments</comments>
		<pubDate>Fri, 11 Feb 2011 08:44:41 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Destacado]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Proyectos]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=1034</guid>
		<description><![CDATA[Una vez más nos demoramos en la publicación de nuestros trabajos. Como asignatura pendiente para este 2011 queda la actualización de la web tanto de su estructura como de su contenido Dicho esto nos gustaría presentaros uno de nuestros últimos trabajos desarrollados en Magento. Se trata de una tienda de Conservas de alta gama cuya [...]]]></description>
			<content:encoded><![CDATA[<p>Una vez más nos demoramos en la publicación de nuestros trabajos. Como asignatura pendiente para este 2011 queda la actualización de la web tanto de su estructura como de su contenido <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Dicho esto nos gustaría presentaros uno de nuestros últimos trabajos <a href="http://onestic.com/servicios/">desarrollados en Magento</a>. Se trata de una tienda de Conservas de alta gama cuya principal característica es como no podía ser de otra forma, la calidad de sus productos.</p>
<p>Aprovecho esta entrada para responder a todos aquellos que nos preguntan sobre la importancia del diseño en las tiendas. Para nosotros es algo muy importante, es algo que nos gusta cuidar, pero más allá de una buena impletanción y de una interfaz de compra intuitiva sin duda alguna el éxito de una tienda radica en dos pilares fundamentales: el producto y la atención al cliente. Ya está, si no lo digo reviento. No olvidemos que una <a href="http://onestic.com/tag/tienda-en-magento/">tienda online</a> exige el mismo esfuerzo que cualquier otro negocio.</p>
<p>Retomando el tema de la nueva <strong>tienda hecha en Magento </strong>cabe destacar la integración del archi conocido módulo de compra en un paso,onestepcheckout (el día menos pensado desarrollaremos nuestra versión de este módulo&#8230;), generación de una página automática para las marcas con las que se trabaja, inserción automática de videos en las fichas de producto (funcionalidad que esperamos un día de estos esté integrada en <strong>Magento</strong>), Slide en jQuery para la portada, utilización del autocompletado que ya viene de serie con las <strong><a href="http://www.magentocommerce.com/download">nuevas versiones de Magento</a></strong>, integración del Blog realizado en <strong>WordPress con Magento</strong> (recordemos que existen varias técnicas, nosotros personalmente preferimos leer el feed y empotrarlo en el footer &#8220;a mano&#8221;).</p>
Por lo demás como siempre un diseño y una estética muy cuidadas.
Esperamos que os gueste! Y como siempre cualquier comentario será bien recibido!]]></content:encoded>
			<wfw:commentRss>http://onestic.com/tienda-de-conservas-seleccion-en-magento/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Tienda de Zapatillas Satorisan en Magento</title>
		<link>http://onestic.com/tienda-de-zapatillas-satorisan-en-magento/</link>
		<comments>http://onestic.com/tienda-de-zapatillas-satorisan-en-magento/#comments</comments>
		<pubDate>Fri, 15 Oct 2010 09:56:48 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[tienda en magento]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=938</guid>
		<description><![CDATA[Nuevo desarrollo de una tienda en Magento. En este caso se trata de una tienda de Zapatillas llamada Satorisan. Poco a poco nos vamos posicionando en el mercado como empresa especialista en comercio electrónico y desarrollo de tiendas ecommerce. Para esta tienda se han realizado las siguientes mejoras o extensiones desarrolladas a medida de las [...]]]></description>
			<content:encoded><![CDATA[<p>Nuevo desarrollo de una tienda en Magento. En este caso se trata de una tienda de Zapatillas llamada <a href="http://satorisan.com">Satorisan</a>. Poco a poco nos vamos posicionando en el mercado como <a href="http://onestic.com/servicios/#Tiendas%20con%20Magento">empresa especialista en comercio electrónico y desarrollo de tiendas ecommerce.</a></p>
<p>Para esta tienda se han realizado las siguientes mejoras o extensiones desarrolladas a medida de las necesidades del cliente:</p>
<ul>
	<li><strong>Carro de compra personalizado.</strong> Se ha modificado el clásico paso en horizontal para hacerlos verticales. Para ello se ha modificado todo el onestep y los javascript de varien para saltar de paso en paso. Por otro lado se han modificado los datos de registro personalizando los campos y su disposición. </li>
<li><strong>Facturas personalizadas.</strong> Personalización de las facturadas generadas, envío de pdf tanto en las facturas rectificativas como en las facturas de pedido.</li>
<li><strong>Creación de pasos intermedios de un pedido.</strong> Para su correcto seguimiento se han creado nuevos estados asociados a eventos y acciones. En realidad hemos dejado bastante poco del funcionamiento original.</li>
<li><strong>Multiidioma en magento para la tienda.</strong> Soporte para dos idiomas, inglés y castellano.</li>
<li><strong>Nuevos productos.</strong> Módulo en portada para nuevos productos integrado con un carrusel en jQuery.</li>
<li><strong>Zoom para productos.</strong> Para el detalle de los productos se ha utilizado un zoom hecho en flash que permite ver las imágenes del producto a 4000&#215;4000 (más que suficiente no?)</li>
<li><strong>Carro de compra jQuery.</strong> En la cabecera de la tienda podéis ver el efecto al añadir y mostrar los productos.</li>
<li><strong>Integración de Magento con DHL España. </strong> Hemos realizado un módulo para integrar la tienda con DHL y AZA Logistics. Con esto conseguimos sincronizar los estados de los pedidos en tiempo real, notificar desde Magento con los tracking numbers, generar las facturas cuando los pedidos son entregados, pasarlos a un estado completado y notificar a los clientes ante cualquier imprevisto. La verdad es que este ha sido un módulo muy costoso pero finalmente el resultado ha sido excelente.</strong>
<li><strong>Integración de Magento con SEUR.</strong> Para una nueva fase vamos a realizar un desarrollo para Magento y SEUR, con esto completaremos los anteriores desarrollos hechos para MRW y Magento.</li>
<li><strong>Integración de módulo de 4b para el Banco popular con Magento.</strong> Desarrollo y ampliación de nuevas funcionalidades específicas para el pago a través de TPV.</li>
<li><strong>Integración de Paypal Standar con Magento.</strong> Desde los últimos cambios hechos en la versión 1.4.1.1 todo han sido problemas. Finalmente hemos podido controlar los estados y acciones automáticas que realiza Paypal a través de su IPN. Todo un mundo creerme&#8230; </li>
<li><strong>Cron en Magento.</strong> Creación de disparadores y acciones programadas para la ejecución y sincronización de stocks, estados de pedidos y envíos automáticos con los números de seguimiento.<li>
<li><strong>HelpDesk para Magento.</strong> Soporte para tickets de ayuda y control de incidencias. Control a través de tickets de los correos procesados en la tienda así como sus estados.</li>
<li><strong>RMA para Magento.</strong> La verdad es que en este sentido nos decidimos por adquirir uno ya desarrollado y la verdad es que el resultado no podía haber sido peor. Muy malas experiencias con el proveedor, un montón de fallos y una funcionalidad mal rematada. Así que posiblemente acabemos desarrollando nosotros un módulo de RMA (gestión de devoluciones).</li>
</ul>
<p>La lista de cambios además de todas estas es interminable, así que mejor os dejamos descubrirlas. El resultado es una tienda en Magento a gusto del consumidor  que esperamos funcione a las mil maravillas <img src='http://onestic.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> <p>
Esperamos que os guste <a href="http://satorisan.com">Satorisan</a>!
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/tienda-de-zapatillas-satorisan-en-magento/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Quelovendan.com &#8211; Nueva tienda E-commerce desarrollada en Magento</title>
		<link>http://onestic.com/quelovendan-com-nueva-tienda-e-commerce-desarrollada-en-magento/</link>
		<comments>http://onestic.com/quelovendan-com-nueva-tienda-e-commerce-desarrollada-en-magento/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 11:23:42 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[tienda en magento]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=904</guid>
		<description><![CDATA[Hoy por fin hemos publicado nuestro último trabajo, quelovendan.com. La tienda oficial de nopuedocreer.com. Lo nuestro nos ha costado. Una vez más tenemos que dar la gracias a @Danitroy (nopuedocreer.com) y @jlhortelano (tecnorantes.com). Esta nueva tienda desarrollada con Magento lleva muchas mejoras y alguna que otra extensión a medida. Integración con la pasarela de pago [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy por fin hemos publicado nuestro último trabajo, <a href="http://quelovendan.com">quelovendan.com</a>. La tienda oficial de <a href="http://nopuedocreer.com">nopuedocreer.com</a>. Lo nuestro nos ha costado. Una vez más tenemos que dar la gracias a @Danitroy (<a href="http://nopuedocreer.com/">nopuedocreer.com</a>) y @jlhortelano (<a href="http://www.tecnorantes.com/">tecnorantes.com</a>).</p>
<p>Esta nueva <strong>tienda desarrollada con Magento</strong> lleva muchas mejoras y alguna que otra extensión a medida. Integración con la pasarela de pago de <strong>La Caixa para Magento</strong>, <strong>LiveChat</strong> para atención personalizada, notificaciones, módulo de SEO para Magento, canonical urls, optimización y performance específicos en el Core de Magento para esta tienda, la integración con el <strong>sistema de envío de Magento para MRW</strong>, etc.</p>
<p>Como veréis hemos tenido en cuenta el publico objetivo, y por tanto, la estética. Los colores y la navegación están hechos a medida. ¡Esperamos que os guste y que compréis mucho!</p>
]]></content:encoded>
			<wfw:commentRss>http://onestic.com/quelovendan-com-nueva-tienda-e-commerce-desarrollada-en-magento/feed/</wfw:commentRss>
		<slash:comments>16</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 13:45:04 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<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 size-full wp-image-898" title="tiendas magento logo" src="http://onestic.com/wp-content/uploads/2010/06/logo-magento-1.jpg" alt="" width="300" height="275" /></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: ;">&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: ;">&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 09:46:42 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Onestic]]></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: ;">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: ;">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: ;">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: ;">chmod -R o+w media</pre></li>
	<li>Configuramos la instalación de Magento y buscamos las últimas actualizaciones:<pre class="brush: plain; title: ;">./pear mage-setup .</pre>[code]./pear install magento-core/Mage_All_Latest-stable[/code]</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: ;">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: ;">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: ;">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: ;">$ mysql -u root</pre></li>
	<li>Ejecutamos: <pre class="brush: plain; title: ;">mysql&amp;gt; create database nombre_de_la_db;</pre></li>
	<li>Creamos el usuario: <pre class="brush: plain; title: ;">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: ;">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>2</slash:comments>
		</item>
		<item>
		<title>Tienda en Magento multiidioma. Botas Sendra en japonés</title>
		<link>http://onestic.com/tienda-en-magento-multiidioma-botas-sendra-en-japones/</link>
		<comments>http://onestic.com/tienda-en-magento-multiidioma-botas-sendra-en-japones/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 11:39:13 +0000</pubDate>
		<dc:creator>Sergio Baixauli</dc:creator>
				<category><![CDATA[Destacado]]></category>
		<category><![CDATA[Proyectos]]></category>
		<category><![CDATA[magento]]></category>
		<category><![CDATA[magento japan]]></category>
		<category><![CDATA[magento multiidioma]]></category>
		<category><![CDATA[tienda en magento]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=834</guid>
		<description><![CDATA[Hemos ido liados estas semanas con el lanzamiento de un nuevo proyecto realizado con Magento. En este caso se trata de una versión de la actual tienda en Magento de Sendra Boots. (www.sendra.jp) Para esta nueva tienda online además de los problemas con el idioma como es normal, hemos tenido que llevar a cabo una [...]]]></description>
			<content:encoded><![CDATA[Hemos ido liados estas semanas con el lanzamiento de un nuevo proyecto realizado con Magento. En este caso se trata de una versión de la <a href="http://sendravalencia.com">actual tienda</a> en Magento de Sendra Boots. (www.sendra.jp)
Para esta <strong>nueva tienda</strong> online además de los problemas con el idioma como es normal, hemos tenido que llevar a cabo una personalización de Magento muy intensa, mucho más de lo que en un principio analizamos. No sólo cambia el idioma, cambian los requisitos del usuario y el trato con la moneda (los japoneses no usan decimales). Además, el registro de usuarios y pedidos (junto con los correos electrónicos de notificación) requiere sobrescribir alguna de las funciones del Core de Magento.
Para llevar a cabo esta tarea nos hemos seguido los pasos para configurar una tienda de <a href="http://onestic.com/configurar-multiples-tiendas-con-magento/">Magento en múltiples dominios</a> y hemos aprovechado la potencia de la multitienda en Magento. 
Esperamos que os guste. <a href="http://sendra.jp">Sendra Boots Japan</a>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/tienda-en-magento-multiidioma-botas-sendra-en-japones/feed/</wfw:commentRss>
		<slash:comments>1</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: Mage::Log($variable); [...]]]></description>
			<content:encoded><![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: 
<pre class="brush: php; title: ;"> Mage::Log($variable); </pre>
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;.
El logging por defecto viene desactivado, hay que cambiar las siguientes opciones:
<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>
Desafortunadamente, Magento no crea los ficheros de log por ti. Por defecto los ficheros están en:
<pre class="brush: plain; title: ;">
var/log/system.log
var/log/exception.log
</pre>
Si el fichero no existe y asegurate de que apache tiene permisos de escritura.
Las llamadas usando <strong>Mage::Log</strong> se guardarán en system.log. Las excepciones en exception.log

<h3>Activar el modo desarrollador. Magento Developer Mode</h3>
Básicamente consiste en añadir o descomentar las siguientes líneas en el index.php
<pre class="brush: php; title: ;">
#Mage::setIsDeveloperMode(true);
#ini_set('display_errors', 1);
</pre>
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;.
]]></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[Onestic]]></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.
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>
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' />  )
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.
Vamos por partes:
<h3>Creación del fichero de configuración</h3>
Lo primero que vamos a necesitar es un fichero para la configuración del sistema llamado system.xml (no confundir con config.xml)
<pre class="brush: plain; title: ;">app/code/local/Alanstormdotcom/Helloworld/etc/system.xml</pre>
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:
<pre class="brush: php; title: ;">
//header('Content-Type: text/xml');         
header('Content-Type: text/plain');         
echo $config = Mage::getConfig()
-&gt;loadModulesConfiguration('system.xml')        
-&gt;getNode()
-&gt;asXML();          
exit;
</pre>
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).

<h3>Añadir una solapa en el administrador de Magento</h3>
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.
Ahora vamos a crear una nuevo llamada &#8220;Hello Config&#8221;.
<pre class="brush: php; title: ;">
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>

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.
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.
<h3>Breve ayuda sobre las Helper Classes</h3>
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).
Lo primero será añadirlo en el fichero config.xml (ojo, no el system.xml)
<pre class="brush: xml; title: ;">
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>

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:
<pre class="brush: plain; title: ;">
Nombredelpaquete_Nombredelmodulo_Helper
</pre>

Los Helpers se cargaran en el global Mage. La siguiente llamada servirá (teniendo en cuenta la configuración que hemos ido dando)
<pre class="brush: plain; title: ;">
Mage::helper('helloworld/foo');
</pre>

&#8230;cargará la siguiente clase
<pre class="brush: plain; title: ;">
app/code/local/Alanstormdorcom/Helper/Foo.php
class Alanstormdotcom_Helloworld_Helper_Foo
</pre>

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:
<pre class="brush: plain; title: ;">
Mage::helper('helloworld');
</pre>

lo que hubiera provocado que se hubiera buscado en:
<pre class="brush: plain; title: ;">
app/code/local/Alanstormdorcom/Helper/Data.php
class Alanstormdotcom_Helloworld_Helper_Dara
</pre>

Con esto llegamos a la conclusión de que es lo mismo poner estas dos líneas:
<pre class="brush: plain; title: ;">
Mage::helper('helloworld');
Mage::helper('helloworld/data');
</pre>

Supongo que estas líneas os habrán aclarado más de una duda (o eso espero)
Por último tenemos que añadir el Helper class actual.
<pre class="brush: plain; title: ;">
Fichero: app/code/local/Alanstormdorcom/Helper/Data.php
class Alanstormdotcom_Helloworld_Helper_Data extends Mage_Core_Helper_Abstract
{
}
</pre>

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.

<h3>Añadir una Nueva Sección</h3>
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.
Si creamos un Tab sin secciones no se mostrará, por eso vamos a añadir un nodo llamado :
<pre class="brush: xml; title: ;">
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>

<strong>helloworld_options</strong>, como antes, un nombre arbitrario, usado para identificar nuestra nueva sección.
<strong>label</strong> , define lo que se mostrará en la interfaz. Es decir, la etiqueta.
<strong>tab</strong> , identifica bajo que Tab estará agrupada nuestra nueva sección.
<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' /> 
<strong>sort_order</strong> , determina el orden de aparición (vertical) con respecto a las otras secciones.
<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.
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 .

<h3>Control de Acceso</h3>
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.
La gente de Magento decidió en su momento que las secciones de configuración de Sistema deberían tener porotección ACL.
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:
<pre class="brush: plain; title: ;">
admin/system/config/web
</pre>

en nuestro caso&#8230;
<pre class="brush: plain; title: ;">
admin/system/config/helloworld_options
</pre>

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:
<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>
Para los que estéis interesados en esta parte el método usado es _isSectionAllowed que podemos encontrar en el siguiente controlador:
<pre class="brush: plain; title: ;">
app/code/core/Mage/Adminhtml/controllers/System/ConfigController.php
</pre>

Como todos sabréis, una forma de ver los Roles asignados en el administrador es desde Sistema-> Permisos -> Roles

<h3>Añadir Roles. ACL</h3>
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' /> 
Editamos el fichero que controla los permisos necesarios para acceder a nuestra nueva sección:
<pre class="brush: xml; title: ;">
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>

Resumiendo:
<pre class="brush: xml; title: ;">
&lt;adminhtml&gt;
    &lt;acl&gt;
        &lt;resources&gt;
        &lt;/resource&gt;
    &lt;/acl&gt;
&lt;/adminhtml&gt;
</pre>

Dentro del recurso, cada nodo hijo representa una porción de la URI. Por ejemplo:
<pre class="brush: xml; title: ;">
admin/system
</pre>

nos devuelve la siguiente URI
<pre class="brush: xml; title: ;">
admin/system
</pre>

Si has seguido todos los pasos, tenemos las siguiente configuración:
<pre class="brush: xml; title: ;">
&lt;helloworld_options&gt;
    &lt;title&gt;Store Hello World Module Section&lt;/title&gt;
&lt;/helloworld_options&gt;
</pre>

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”.
<h3>Añadir Grupos</h3>
Ya tenemos nuestra página de configuración (en blanco) con los permisos adecuados. Vamos a crear grupos para las secciones.
<pre class="brush: xml; title: ;">
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>

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;.)

<h3>Añadir campos de configuración. Config fields</h3>
Y ya por último, vamos a introducir los campos necesarios para la configuración de nuestro módulo. Esto se hace con el nodo
Por ejemplo, un campo con el nombre &#8220;hello_message&#8221;.
<pre class="brush: xml; title: ;">
&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>

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.
Vamos ahora con otro tipo de campo, uno de tipo time.
<pre class="brush: xml; title: ;">
&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>

La única diferencia entre ambos nodos es el tipo. <strong>time</strong>
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;
Ahora vamos a cambiar el text de hello_message por un combo.
<pre class="brush: xml; title: ;">
&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>

pero&#8230; el combo no tiene datos, no hay problema, tenemos que indicarle el origen de datos:
<pre class="brush: xml; title: ;">
&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>

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):
<pre class="brush: xml; title: ;">
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>

Si recargamos la página nos dará un error, claro, no hemos definido la fuente de nuestro Model class.
<pre class="brush: plain; title: ;">
Warning: include(Alanstormdotcom/Helloworld/Model/Words.php)
</pre>

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
Para definir la fuente del Modelo:
<pre class="brush: php; title: ;">
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>

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?

<h3>Recogiendo valores</h3>
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:
<pre class="brush: php; title: ;">
Mage::getStoreConfig('helloworld_options/messages/hello_message');
</pre>

El método getStoreConfig acepta como parámetro la URI:
<pre class="brush: php; title: ;">
section_name/group_name/field_name
Mage::getStoreConfig('helloworld_options/messages');
Mage::getStoreConfig('helloworld_options');
</pre>

Por útlimo, si quieremos grabar un valor para una tienda en concreto, getStoreConfig acepta un segundo valor, el storeID:
<pre class="brush: php; title: ;">
Mage::getStoreConfig('helloworld_options',1);
</pre>

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' /> 
<a href='http://onestic.com/wp-content/uploads/2010/03/HelloworldSystemconfig.tar'>Descargar</a>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/configuracion-de-magento-system-config/feed/</wfw:commentRss>
		<slash:comments>2</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>
<br/>
<h3>1.- <a href="http://www.magentocommerce.com/extension/518/blank-theme">Blank Theme</a></h3>
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/>
<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/>
<h3>2.- Actualizaciones de Magento</h3>
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/>
<h3>3.- <a href="http://www.magentocommerce.com/extension/reviews/module/1426">TinyMCE para Magento</a></h3>
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/>
<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/>
<h3>4.- <a href="http://www.magentocommerce.com/extension/reviews/module/171">Fooman Google Analytics Plus</a></h3>
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.

<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>
<h3>5.- <a href="http://www.magentocommerce.com/module/2333/magento-social-bookmarking">Compartir con redes sociales</a></h3>
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.

<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>
<h3>6.- <a href="http://www.magentocommerce.com/extension/1468/order-status">Diferentes estados para cada pedido</a></h3>
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.

<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>
<h3>7.- <a href="http://www.magentocommerce.com/extension/reviews/module/1447">Comentarios desde el CMS</a></h3>
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.

<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>
<h3>8.- <a href="http://www.magentocommerce.com/extension/873/delete-orders">Borrar pedidos en Magento</a></h3>
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.

<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>
<h3>9.- <a href="http://www.magentocommerce.com/extension/748/enhanced-product-grid">Listado de productos con imagenes en el administrador</a></h3>
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.

<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>
<h3>10.- <a href="http://www.magentocommerce.com/extension/763/vertical-navigation-with-css-classes">Categorías en vertical</a></h3>
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.

<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>]]></content:encoded>
			<wfw:commentRss>http://onestic.com/top-10-extensiones-para-magento/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

