<?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>Programación | Programador Magento</title>
	<atom:link href="https://upgrade.dinaweb.net/programacion/feed/" rel="self" type="application/rss+xml" />
	<link>https://upgrade.dinaweb.net</link>
	<description>Federico Chulilla &#124; Valencia / Teruel &#124; Tel.650594708</description>
	<lastBuildDate>Sun, 11 Sep 2022 09:34:37 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>
	<item>
		<title>Cómo habilitar o deshabilitar extensión en Magento 2</title>
		<link>https://upgrade.dinaweb.net/habilitar-o-deshabilitar-extension-en-magento-2/</link>
					<comments>https://upgrade.dinaweb.net/habilitar-o-deshabilitar-extension-en-magento-2/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Fri, 05 Feb 2021 14:57:00 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://upgrade.dinaweb.net/?p=2464</guid>

					<description><![CDATA[<p>En el siguiente post se explican dos formas para deshabilitar o habilitar un plugin tras instalarlo. Esta información viene en la documentación oficial y se ha hecho un resumen Usando línea de comandos CLI Una vez logeados en el sistema ejecutamos&#160;en la raíz del proyecto: php bin/magento module:status Esto nos dirá las extensiones habilitadas y [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/habilitar-o-deshabilitar-extension-en-magento-2/">Cómo habilitar o deshabilitar extensión en Magento 2</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>En el siguiente post se explican dos formas para deshabilitar o habilitar un plugin tras instalarlo. Esta información viene en la documentación oficial y se ha hecho un resumen</p>



<h2 class="wp-block-heading">Usando línea de comandos CLI</h2>



<p>Una vez logeados en el sistema ejecutamos&nbsp;en la raíz del proyecto:</p>



<pre class="wp-block-preformatted">php bin/magento module:status</pre>



<p>Esto nos dirá las extensiones habilitadas y deshabilitadas y saber si realmente está activo o no el plugin en cuestión.</p>



<p>Para habilitar o deshabilitar usaremos una de las siguientes instrucciones:</p>



<pre class="wp-block-preformatted">magento module:enable [-c|--clear-static-content] [-f|--force] [--all] &lt;module-list&gt;</pre>



<pre class="wp-block-preformatted">magento module:disable [-c|--clear-static-content] [-f|--force] [--all] &lt;module-list&gt;</pre>



<p>dónde</p>



<ul class="wp-block-list"><li><strong>&lt;module-list&gt;</strong> será la extensión (o lista de extensiones separado por espacio) que queremos deshabilitar o habilitar.</li><li><strong>&#8211;all</strong> para habilitar/deshabilitar al mismo tiempo.</li><li><strong>-f</strong> or <strong>&#8211;force</strong> para forzar la instrucción aunque tenga dependencias.</li><li><strong>-c</strong> o <strong>&#8211;clear-static-content</strong> limpia los ficheros estáticos generados. </li></ul>



<p>Un ejemplo simple para deshabilitar  Magento_TwoFactorAuth sería:</p>



<pre class="wp-block-preformatted">php bin/magento module:disable Magento_TwoFactorAuth</pre>



<p>Finalmente ejecutaremos:</p>



<pre class="wp-block-preformatted">php bin/magento setup:upgrade</pre>



<p>para actualizar la base de datos.</p>



<h2 class="wp-block-heading"><strong>Editando archivo /app/etc/config.php</strong></h2>



<p>Dentro del directorio /app/etc/ hay un archivo <strong>config.php</strong> dónde podrás ver un listado de extensiones y un valor asignado 0/1. </p>



<p>1 significa que está <strong>habilitado </strong>en ese momento y 0 en caso contrario. Modificando ese valor, guardando el fichero y ejecutando&nbsp;</p>



<pre class="wp-block-preformatted">php bin/magento setup:upgrade</pre>



<pre class="wp-block-preformatted">php bin/magento cache:clean</pre>



<p>estaremos también habilitando/deshabilitando la extensión.</p>



<p><em>Atención especial a las <strong>dependencias</strong>. Hay extensiones que dependen unas de otras por lo que se tendrá que investigar si hay dependencias para evitar conflictos al hacer el deshabilitado.</em></p>



<h3 class="wp-block-heading">¿Por qué deberías deshabilitar las extensiones innecesarias de <strong>Magento</strong> 2?</h3>



<p>A veces, su tienda <strong>Magento</strong> 2 puede  tener extensiones innecesarias instaladas y que no están en uso  y pueden afectar su rendimiento. Extensiones con errores, de pruebas, no actualizadas, etc. son comunes en este tipo de proyectos. </p>



<p>Para mantener el rendimiento óptimo de  su tienda, sería conveniente eliminarlas, pero si planea usarlos de nuevo en el  futuro, deshabilitarlas es una excelente opción.</p>



<p><br></p><p>The post <a href="https://upgrade.dinaweb.net/habilitar-o-deshabilitar-extension-en-magento-2/">Cómo habilitar o deshabilitar extensión en Magento 2</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/habilitar-o-deshabilitar-extension-en-magento-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Solución a emails vacíos en Magento 2.3.3</title>
		<link>https://upgrade.dinaweb.net/solucion-a-emails-vacios-en-magento-2-3-3/</link>
					<comments>https://upgrade.dinaweb.net/solucion-a-emails-vacios-en-magento-2-3-3/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Sun, 15 Dec 2019 10:45:00 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">https://upgrade.dinaweb.net/?p=2409</guid>

					<description><![CDATA[<p>Misteriosamente en esta versión de Magento, los email transaccionales enviados por la tienda aparecen vacíos y con un fichero adjunto llamado attachement.html. Este fichero adjunto contiene el contenido del email. Esto es realmente molesto y no usable de cara a los usuarios al obligarlos a abrir el archivo adjunto con el consecuente problema para algunos [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/solucion-a-emails-vacios-en-magento-2-3-3/">Solución a emails vacíos en Magento 2.3.3</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p> Misteriosamente en esta versión de Magento, los email transaccionales enviados por la tienda aparecen <strong>vacíos y con un fichero adjunto</strong> llamado <strong>attachement.html</strong>. Este fichero adjunto contiene el contenido del email.</p>



<p>Esto es realmente molesto y no usable de cara a los usuarios al obligarlos a abrir el archivo adjunto con el consecuente problema para algunos tipos de usuarios.</p>



<p>Por lo que parece es un problema de Zend framework que se repara en las siguientes versiones.</p>



<p>En las siguientes versiones parece solucionado este bug.</p>



<p>Este error es reportado en varios ocasiones:</p>



<p>github.com/magento/magento2/issues/25171</p>



<p>github.com/magento/magento2/issues/25076</p>



<p>y uno de los <strong>parches </strong>que se pueden aplicar es modificar el siguiente archivo</p>



<p>vendor/zendframework/zend-mail/src/Headers.php</p>



<p>con los siguientes cambios:</p>



<p>$current = $headers;</p>



<p>&#8211;&nbsp; &nbsp; &nbsp; &nbsp; $current-&gt;setEncoding($encoding); // Delete this line under $current = $headers;</p>



<p>+&nbsp; &nbsp; &nbsp; &nbsp; // PATCH</p>



<p>+&nbsp; &nbsp; &nbsp; &nbsp; //$current-&gt;setEncoding($encoding);</p>



<p>+&nbsp; &nbsp; &nbsp; &nbsp; $current-&gt;setEncoding($key === &#8216;contentdisposition&#8217; &amp;&amp; $current-&gt;getFieldValue(false) === &#8216;inline&#8217; ? &#8216;ASCII&#8217; : $encoding);</p>



<p>+&nbsp; &nbsp; &nbsp; &nbsp; // ~PATCH</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;headers[$index] = $current;</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return $current;</p>



<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</p><p>The post <a href="https://upgrade.dinaweb.net/solucion-a-emails-vacios-en-magento-2-3-3/">Solución a emails vacíos en Magento 2.3.3</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/solucion-a-emails-vacios-en-magento-2-3-3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>¿Cómo limpiar la caché en Magento?</title>
		<link>https://upgrade.dinaweb.net/como-limpiar-la-cache-en-magento/</link>
					<comments>https://upgrade.dinaweb.net/como-limpiar-la-cache-en-magento/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Fri, 11 Oct 2019 11:36:20 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=2077</guid>

					<description><![CDATA[<p>Continuamente nos encontramos antes situaciones donde aplicamos cambios en el administrador o en ficheros de Magento y no se reflejan en el frontend. Un caso típico es un cambio en el footer donde subimos el cambio pero no hay manera de ver la modificación. CACHÉ es la culpable. Magento guarda ficheros intermedios que son ejecutados [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/como-limpiar-la-cache-en-magento/">¿Cómo limpiar la caché en Magento?</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Continuamente nos encontramos antes situaciones donde aplicamos cambios en el administrador o en ficheros de Magento y no se reflejan en el frontend. Un caso típico es un cambio en el footer donde subimos el cambio pero no hay manera de ver la modificación. <strong>CACHÉ es la culpable</strong>.</p>
<p>Magento guarda ficheros intermedios que son ejecutados de una forma más eficiente que los originales. También guarda variables, combina ficheros de configuración de las extensiones del sistema, traducciones, bloques, layouts de las plantillas, etc.. Todos estos ficheros ayudan a mejorar la velocidad de una página.</p>
<p>Si <strong>quieres vaciar la caché</strong> en Magento tenemos varias opciones dependiendo de la versión de Magento y el sistema que queramos usar:</p>
<h3>Magento 1.9 o anteriores:</h3>
<ul>
<li>Desde el administrador:</li>
</ul>
<ol>
<li>Entramos en el administrador</li>
<li>Ir a sistema- Gestión Caché</li>
<li>Click en <b>Flush Magento Cache</b></li>
</ol>
<ul>
<li>Desde FTP:</li>
</ul>
<ol>
<li>Entramos al FTP nos dirigimos a /var/cache y borramos todo su contenido</li>
</ol>
<ul>
<li>Desde consola/ssh con la siguiente intrucción:</li>
</ul>
<ol>
<li>rm -rf var/cache/*</li>
</ol>
<h2>Magento 2:</h2>
<ul>
<li><b>Desde consola/SSH:</b></li>
</ul>
<ol>
<li>Para Flush Cache Storage</li>
</ol>
<p>php bin/magento cache:clean ó php bin/magento c:c</p>
<ol>
<li>Flush Magento cache</li>
</ol>
<p>php bin/magento cache:flush ó php bin/magento c:f</p>
<ul>
<li>Desde FTP:</li>
</ul>
<ol>
<li>Entramos al FTP nos dirigimos a /var/cache y borramos todo su contenido</li>
</ol>
<ul>
<li>Desde consola/ssh:</li>
</ul>
<ol>
<li>rm -rf var/cache/*</li>
</ol>
<h3><b>Diferencia Flush Magento Cache vs Flush Cache Storage</b></h3>
<p><strong>Flush Magento Cache</strong></p>
<p>Borra ficheros del directorio (var/cache) asociados a Magento</p>
<p><strong>Flush Cache Storage</strong></p>
<p>Borra ficheros del directorio (var/cache) y otros posibles sistemas de cache alternativos usados por otras aplicaciones</p>
<p><strong>Flush Catalog Images Cache</strong></p>
<p>Borra todas las imágenes redimensionadas localizadas en media/catalog/product/cache.</p>
<p><strong>Flush JavaScript/CSS Cache</strong></p>
<p>Borra archivos css y javascript comprimidos.<br />
Cuando estamos trabajando en desarrollo se recomienda tener la caché desactivada para evitar tener que hacer esta tarea frecuentemente.</p><p>The post <a href="https://upgrade.dinaweb.net/como-limpiar-la-cache-en-magento/">¿Cómo limpiar la caché en Magento?</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/como-limpiar-la-cache-en-magento/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mage::log()</title>
		<link>https://upgrade.dinaweb.net/magelog/</link>
					<comments>https://upgrade.dinaweb.net/magelog/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Sat, 13 Oct 2018 09:46:55 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1994</guid>

					<description><![CDATA[<p>Para trabajar en la depuración de código o en la generación de un log autónomo, Magento nos ofrece la posibilidad de imprimir en archivo mediante la función Mage::log. Es similar a las opciones print_r, var_dump o error_log de Php. Mage::log ('mensaje'); Mage::log ('Mensaje:'. $Variable); Mage::log ($array); Mage::log ($objeto); Mage::LogException ($e); Si queremos que se generen [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/magelog/">Mage::log()</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Para trabajar en la depuración de código o en la generación de un log autónomo, Magento nos ofrece la posibilidad de imprimir en archivo mediante la función Mage::log.<br />
Es similar a las opciones print_r, var_dump o error_log de Php.</p>
<pre name="code" class="php">Mage::log ('mensaje');
Mage::log ('Mensaje:'. $Variable);
Mage::log ($array);
Mage::log ($objeto);
Mage::LogException ($e);</pre>
<p>Si queremos que se generen los logs primero necesitamos que estén habilitados para ello iremos a la sección System-Configuration-Developer y habilitaremos los logs.</p>
<p>La función Mage::log tiene cuatro parámetros y puede ser llamada en función de nuestras funcionalidades:</p>
<pre name="code" class="php">Mage::log('Hola');
Mage::log($var);</pre>
<p>Forma simple, imprimimos texto o variables.</p>
<pre name="code" class="php">Mage::log('Hola', Zend_Log::INFO);</pre>
<p>El segundo parámetro le indica el nivel del log. Puede ser valor numérico o llamar a las constantes localizadas en en /lib/Zend/Log.php</p>
<pre name="code" class="php">Mage::log('Hola', Zend_Log::INFO, 'log-extra.log');</pre>
<p>En el tercer parámetro le podemos indicar que escriba en un archivo distinto a var/log/system.log por si queremos tener un log independiente.</p>
<pre class="php">Mage::log('Hola', Zend_Log::INFO, 'log-extra.log', true);</pre>
<p>El cuarto parámetro fuerza que se escriba este log aunque en la configuración no esté activa la escritura.</p>
<h3>Magento 2</h3>
<p>n Magento 2 la cosa ha cambiado. Magento 2 compila con PSR-3 y es necesario usar la librería Monolog Para escribir en el log<br />
Puedes encontrar más info en este <a href="https://www.mageplaza.com/devdocs/how-write-log-magento-2.html">enlace</a>.</p>
<h3>Imprimir errores por pantalla</h3>
<p>Si queremos que los errores se muestren por pantalla y no tengamos que revisar los diferentes ficheros log podemos añadir la siguiente variable en el .htaccess.</p>
<pre name="code" class="php">SetEnv MAGE_IS_DEVELOPER_MODE "1"</pre>
<p>que cambia el sistema a modo desarrollo.</p>
<p>En Magento 2 es necesario compilar en modo desarrollo:</p>
<pre name="code" class="php">php bin/magento deploy:mode:set developer</pre><p>The post <a href="https://upgrade.dinaweb.net/magelog/">Mage::log()</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/magelog/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Invalid Form Key Error</title>
		<link>https://upgrade.dinaweb.net/invalid-form-key-error/</link>
					<comments>https://upgrade.dinaweb.net/invalid-form-key-error/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Tue, 29 Nov 2016 09:36:48 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1886</guid>

					<description><![CDATA[<p>Este es un error típico que puede ser causado por diferentes motivos: no existe la clave en el formulario enviado, desconfiguración de las cookies, login, etc. En esta ocasión vamos a tratar este error que sucede en el administrador de Magento al gestionar el catálogo. ¿Cuándo sucede? Lo que he descubierto por mí mismo es [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/invalid-form-key-error/">Invalid Form Key Error</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Este es un error típico que puede ser causado por diferentes motivos: no existe la clave en el formulario enviado, desconfiguración de las cookies, login, etc.</p>
<p>En esta ocasión vamos a tratar este error que sucede en el administrador de Magento al <strong>gestionar el catálogo</strong>.</p>
<h3>¿Cuándo sucede?</h3>
<p>Lo que he descubierto por mí mismo es que puede aparecer:</p>
<ol>
<li>Cuando buscamos un producto en una categoría con una cantidad importante de referencias</li>
<li>Cuando cambiamos el orden de los productos de una categoría e intentamos guardarla.</li>
<li>Intentemos guardar un producto con múltiples opciones.</li>
</ol>
<h3> ¿Por qué sucede?</h3>
<p>El error aparece porque no es enviada el valor de la key al hacer la búsqueda o guardar (a través de ajax).</p>
<p>Y no es enviada  porque este valor es truncado al sobrepasar el límite de variables que podemos enviar al servidor. Este límite está configurado dentro del servidor para <strong>prevenir ataques DDOS</strong> pero ante categorías con cientos o miles de productos podemos sobrepasar fácilmente este valor y, como hemos dicho, nos devolverá un error en forma de alerta.</p>
<h3>¿Cómo solucionarlo?</h3>
<p>Una útil solución es cambiar la configuración de Apache, aumentando el límite de la variable <strong>max_input_vars</strong>. Además si esta configuración afecta sólo al administrador de Magento tendremos más seguridad ante ataques DDOS que si afecta a la totalidad de la tienda.</p>
<p>Este sería una posible opción  añadiéndolo al php.ini :</p>
<pre>&lt;LocationMatch "/(index\.php/)?admin/"&gt;</pre>
<pre>  &lt;IfModule mod_php5.c&gt;</pre>
<pre>    php_value max_input_vars X</pre>
<pre>  &lt;/IfModule&gt;</pre>
<pre>&lt;/LocationMatch&gt;</pre>
<p>Y para .htaccess (afectando a la totalidad de la tienda):</p>
<pre>php_value max_input_vars <em>X</em></pre>
<p>Donde X es el número de variables que queramos establecer y admin es la ruta donde tenemos el administrador de la tienda online. El valor X también dependerá del mayor número de productos asociados a una misma categoría. Si tenemos una categoría con 800 productos podemos establecer este valor a 1000 para tener cierta holgura. Si tenemos una categoría con grandes cambios se puede subir este cambio al valor que consideremos deseado en función de nuestras expectativas.</p>
<p>También puedes <strong>contactar con el hosting</strong> para que se ocupen ellos de incrementar la variables si no tenéis conocimientos o no tenéis privilegios para cambiar el php.ini.</p>
<p>Si tienes otros síntomas este <a href="https://support.hypernode.com/knowledgebase/fixing-invalid-form-key-ongeldige-formuliersleutel/">post  </a>puede ser de ayuda.</p><p>The post <a href="https://upgrade.dinaweb.net/invalid-form-key-error/">Invalid Form Key Error</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/invalid-form-key-error/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Como eliminar el comparador de productos</title>
		<link>https://upgrade.dinaweb.net/como-eliminar-comparador-productos/</link>
					<comments>https://upgrade.dinaweb.net/como-eliminar-comparador-productos/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Sun, 30 Aug 2015 21:17:35 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1671</guid>

					<description><![CDATA[<p>La funcionalidad de comparación de productos está integrada por defecto en Magento. Su función es poder comparar diferentes productos a través de los atributos que deseemos como precio, características, disponibilidad, etc. Esta opción puede ser interesante en tiendas online con catálogo con productos similares y múltiples atributos, como puede ser electrónica, electrodomésticos, imagen y sonido, [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/como-eliminar-comparador-productos/">Como eliminar el comparador de productos</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>La funcionalidad de comparación de productos está integrada por defecto en Magento. Su función es poder comparar diferentes productos a través de los atributos que deseemos como precio, características, disponibilidad, etc.</p>
<p>Esta opción puede ser interesante en tiendas online con catálogo con productos similares y múltiples atributos, como puede ser electrónica, electrodomésticos, imagen y sonido,  pero en otros muchos casos (la mayoría) no es necesario ya que el usuario no la va a utilizar y lo mejor es desactivarla.</p>
<p>Al contrario que la lista de deseos (whislist), Magento no permite desactivar el comparador de productos a través de la configuración vía administrador por lo que tenemos que recurrir a <strong>modificar código o añadir una extensión</strong>. Tenemos, pues, dos maneras distintas de proceder:</p>
<h2>Deshabilitar «comparar productos» mediante extensión</h2>
<p>En este <a href="http://www.magentocommerce.com/magento-connect/catalog/product/view/id/16044/">enlace</a> dispones de una extensión gratuita y compatible para todas las versiones para tal propósito.</p>
<h2>Eliminar comparación de productos mediante código</h2>
<p>Primero <strong>eliminaremos el bloque lateral</strong> del comparador. Para ello localizaremos el archivo catalog.xml, customer.xml y reports.xml dentro de nuestra plantilla en el directorio <code>app/design/frontend/X/Y/layout/</code> donde X es el paquete e Y la plantilla. Si no tuviéramos estos archivos se copiarían de la plantilla padre (<code>app/design/frontend/X/default/layout/</code>) o, en su defecto, plantilla base (<code>app/design/frontend/base/default/layout/</code>) para respetar la herencia entre paquetes/plantillas.<br />
En el fichero <code>catalog.xml</code>  dentro de la etiqueta <code>&lt;default&gt;</code> se eliminará dentro de la etiqueta <code></code> la línea:</p>
<pre class="xml"></pre>
<p>En el archivo <code>customer.xml</code>  dentro de la etiqueta <code>&lt;customer_account&gt;</code> se eliminará la línea:</p>
<pre class="xml"></pre>
<p>Por ultimo en el fichero <code>reports.xml</code> dentro de la etiqueta <code>&lt;default&gt;</code> se eliminará dentro de la etiqueta <code></code>:</p>
<pre class="xml"></pre>
<p>Con esto nos habremos deshecho de la representación del comparador en los laterales de la tienda online pero falta quitar los enlaces de “<strong>Añadir al comparador</strong>” que tenemos en el listado de productos, ficha de productos, etc. Para ello podemos hacerlo:</p>
<p>2.1. Buscar en los archivos .phtml, las apariciones de la cadena “<strong>Add to compare</strong>” y eliminar o comentar el código pertinente. Esta opción puede ser más farragosa.</p>
<p>2.2. <strong>Deshabilitar la funcionalidad de comparación en Magento</strong> (recomendada). Crearemos el directorio <code>app/code/local/Mage/Catalog/Helper/Product/</code> Y copiaremos el fichero <code>app/code/core/Mage/Catalog/Helper/Product/Compare.php</code> al directorio creado y lo editaremos. La función <code>getAddUrl()</code> quedará de la siguiente manera:</p>
<pre class="php">public function getAddUrl($product)
    {
        #return $this-&gt;_getUrl('catalog/product_compare/add', $this-&gt;_getUrlParams($product));
        return false;
    }</pre>
<p>Quedando eliminada la funcionalidad inicial sin tener que tocar ningún archivo de la plantilla.</p>
<p>Guardamos el fichero, refrescamos la caché y nos habremos desecho de esta funcionalidad.</p><p>The post <a href="https://upgrade.dinaweb.net/como-eliminar-comparador-productos/">Como eliminar el comparador de productos</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/como-eliminar-comparador-productos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Error Mage registry key “current_category_filter” already exists</title>
		<link>https://upgrade.dinaweb.net/error-mage-registry-key-current_category_filter-already-exists/</link>
					<comments>https://upgrade.dinaweb.net/error-mage-registry-key-current_category_filter-already-exists/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Sat, 09 Aug 2014 16:30:01 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1345</guid>

					<description><![CDATA[<p>Si al navegar por el filtro de atributos en las categorias de nuestra tienda online Magento se muestra este error: Mage registry key “current_category_filter” already exists Una posible solución es cambiar el fichero /app/code/core/Mage/Catalog/Model/Layer/Filter/Category.php . Para ello lo copiaremos dentro del directorio /app/code/local/Mage/Catalog/Model/Layer/Filter/Category.php y sobre la línea 90-100 modificaremos la línea: Mage::register('current_category_filter', $category); como Mage::register('current_category_filter', $category, true); añadiéndole [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/error-mage-registry-key-current_category_filter-already-exists/">Error Mage registry key “current_category_filter” already exists</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Si al navegar por el filtro de atributos en las categorias de nuestra <strong>tienda online Magento</strong> se muestra este error:</p>
<p><strong>Mage registry key “current_category_filter” already exists</strong></p>
<p>Una posible solución es cambiar el fichero <i>/app/code/core/Mage/Catalog/Model/Layer/Filter/Category.php</i> . Para ello lo copiaremos dentro del directorio <i>/app/code/local/Mage/Catalog/Model/Layer/Filter/Category.php</i> y sobre la línea 90-100 modificaremos la línea:</p>
<div><code> Mage::register('current_category_filter', $category); </code></div>
<p>como</p>
<div><code> Mage::register('current_category_filter', $category, true); </code></div>
<p>añadiéndole el tercer atributo. Este error parece que se da más en versiones antiguas de la plataforma o cuando se han añadido extensiones externas relacionadas con la navegación; en las versiones nuevas el código ha cambiado y ya viene incorporado el tercer atributo:</p>
<p>Mage::register(&#8216;current_category_filter&#8217;, $this-&gt;getCategory(), true);</p>
<p>Esta función es declarada en el archivo app/Mage.php</p>
<p>public static function register($key, $value, $graceful = false)</p><p>The post <a href="https://upgrade.dinaweb.net/error-mage-registry-key-current_category_filter-already-exists/">Error Mage registry key “current_category_filter” already exists</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/error-mage-registry-key-current_category_filter-already-exists/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magento :Cambiar saludo en emails transaccionales</title>
		<link>https://upgrade.dinaweb.net/magento-cambiar-emails-transaccionales/</link>
					<comments>https://upgrade.dinaweb.net/magento-cambiar-emails-transaccionales/#comments</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Sat, 26 Jul 2014 10:09:03 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1333</guid>

					<description><![CDATA[<p>En algunas ocasiones es posible que necesitemos cambiar los emails transaccionales para que sean coherentes con nuestro tipo de negocio. Imaginemos que somos una empresa que tiene un tienda online B2B Magento en cuyo proceso de compra no necesita el campo apellido pues sus clientes son empresas, no personas físicas. En el formulario se utiliza [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/magento-cambiar-emails-transaccionales/">Magento :Cambiar saludo en emails transaccionales</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>En algunas ocasiones es posible que necesitemos cambiar los emails transaccionales para que sean coherentes con nuestro tipo de negocio.</p>
<p>Imaginemos que somos una empresa que tiene un <strong>tienda online B2B Magento</strong> en cuyo proceso de compra no necesita el campo apellido pues sus clientes son empresas, no personas físicas. En el formulario se utiliza y se transforma el campo Nombre por Nombre Fiscal y el campo Apellido por Nombre Comercial por lo tanto al recibir un email transaccional (de registro, pedido, factura) el saludo viene de la siguiente manera por defecto con Magento:</p>
<p><em>«Estimado Nombre Apellidos,»</em></p>
<p>Y si hemos rellanado el formulario con los campos <em>Empresa S.L.</em> y <em>Miempresa</em> quedaría así:</p>
<p><em>«Hola Empresa S.L. Miempresa,»</em></p>
<p>Pero  nosotros deseamos que este saludo fuera por ejemplo:</p>
<p><em>«Estimado(a)s responsables de Empresa S.L.,»</em></p>
<p>Por lo tanto tenemos que realizar cambios en los emails para que tengan coherencia y no confundan al cliente.</p>
<p>Estos cambios los podemos hacer de dos maneras, editando directamente las plantillas de email  o importándolas desde el <strong>panel de administración de Magento</strong> y editarlas allí.</p>
<p>Si optamos por la primera forma los emails se encuentran en el directorio del servidor app/locale/es_ES/template/email y app/locale/es_ES/template/email /sales donde es_ES es el código del idioma de la tienda.</p>
<p>Si optamos por la segunda forma deberemos ir a la sección Sistema – Correos electrónicos transaccionales de nuestro Magento, importar la plantilla en cuestión, editarla, guardarla y luego, en el apartado de configuración correspondiente, indicarle al sistema que no utilice la plantilla por defecto si no que utilice la que acabamos de guardar.</p>
<p><img decoding="async" class="alignnone size-medium wp-image-1335" alt="emails-magento" src="https://upgrade.dinaweb.net/wp-content/uploads/2014/07/emails-magento-300x74.jpg" width="500" srcset="https://upgrade.dinaweb.net/wp-content/uploads/2014/07/emails-magento-300x74.jpg 300w, https://upgrade.dinaweb.net/wp-content/uploads/2014/07/emails-magento.jpg 1020w" sizes="(max-width: 300px) 100vw, 300px" /></p>
<p>En <strong>ambos métodos</strong>  podemos cambiar el saludo al inicio del email, de la siguiente manera.</p>
<p><span style="text-decoration: underline;">Ejemplo 1</span></p>
<p>En la plantilla de pedido como invitado (order_new_guest) sustituir</p>
<p>Hola, {{htmlescape var=$order.getBillingAddress().getName()}}</p>
<p>por</p>
<p>Estimado(a)s responsables de {{htmlescape var=$order.getBillingAddress().getFirstname()}}</p>
<p><span style="text-decoration: underline;">Ejemplo 2</span></p>
<p>En la plantilla de pedido como registrado (order_new) sustituir</p>
<p>Hola, {{htmlescape var=$order.getCustomerName()}}</p>
<p>por</p>
<p>Estimado(a)s responsables de <code>{{htmlescape </code><code>var=</code><code>$order</code><code>.</code><code>getCustomerFirstname</code><code>()</code><code>}}</code></p>
<p><span style="text-decoration: underline;">Ejemplo 3</span></p>
<p>En la plantilla de registro de usuario (account_new) sistituir</p>
<p>Estimado/a, {{htmlescape var=$customer.name}}</p>
<p>Por</p>
<p>Estimado(a)s responsables de {{htmlescape var=$customer.firstname}}</p>
<p>Se observa como la función getName() , getCustomerName() y $customer.name  devuelve el nombre y apellidos juntos y la funcion getFirstname(),  <code>getCustomerFirstname</code> () y $customer.firstname devuelve sólo el nombre.</p>
<p>Con lo cual habrá que ir <strong>sustituyendo estas funciones</strong> en todos los emails transacciones necesarios (facturas, envíos, actualizaciones, etc.). Aconsejable revisad el <strong>asunto del email</strong> ya que es posible que utilicen estas variables a sustituir.</p>
<p>Para la parte del frontend también es aconsejable revisar nuestra plantilla y si es necesario cambiar los archivos necesarios para que el texto sea coherente.</p>
<p>Por ejemplo al logearte o registrarte podrás acceder a la sección Mi cuenta donde, por defecto, viene un texto de bienvenido que conviene cambiar. Este texto se encuentra en la ruta app/template/customer/account/dashboard/hello.phtml donde template es la plantilla donde trabajamos (si no tenemos estar archivo lo copiaremos desde la plantilla base).</p>
<p>Cambiaremos el código:</p>
<p>&lt;p class=»hello»&gt;&lt;strong&gt;&lt;?php echo $this-&gt;__(&#8216;Hello, %s!&#8217;, $this-&gt;htmlEscape($this-&gt; getCustomerName ())) ?&gt;&lt;/strong&gt;&lt;/p&gt;</p>
<p>por</p>
<p>&lt;p class=»hello»&gt;&lt;strong&gt;&lt;?php echo $this-&gt;__(&#8216;Hello, %s!&#8217;, $this-&gt;escapeHtml($this-&gt; getCustomerFirstname ())) ?&gt;&lt;/strong&gt;&lt;/p&gt;</p>
<p>para que sólo muestre el campo nombre.</p>
<p><strong>Seguiremos este procedimiento en todas las secciones de nuestra tienda online que queramos modificar.</strong></p><p>The post <a href="https://upgrade.dinaweb.net/magento-cambiar-emails-transaccionales/">Magento :Cambiar saludo en emails transaccionales</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/magento-cambiar-emails-transaccionales/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Extraer-exportar árbol de categorías en Magento</title>
		<link>https://upgrade.dinaweb.net/extraer-exportar-arbol-categorias-magento/</link>
					<comments>https://upgrade.dinaweb.net/extraer-exportar-arbol-categorias-magento/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Sat, 16 Nov 2013 18:38:57 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1095</guid>

					<description><![CDATA[<p>Si buscas un script que te ayude a obtener el listado de categorías de tu tienda online Magento el siguiente código te podría ayudar. En este caso saca todo el árbol de categorías en forma de tabla; la primera columna corresponde al path de la categoría y la segunda columna al nombre. Puedes cambiar el [&#8230;]</p>
<p>The post <a href="https://upgrade.dinaweb.net/extraer-exportar-arbol-categorias-magento/">Extraer-exportar árbol de categorías en Magento</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>Si buscas un script que te ayude a obtener el listado de categorías de tu <strong>tienda online Magento</strong> el siguiente código te podría ayudar. En este caso saca todo el árbol de categorías en forma de tabla; la primera columna corresponde al path de la categoría y la segunda columna al nombre.</p>
<p>Puedes cambiar el script para adaptarlo a tus necesidades obteniendo otros atributos de la categoría como si está visible o si se muestra en el menú principal. También se podría exportar en formato .xls para un posterior tratamiento.</p>
<pre name="code"  class="php">
define('MAGENTO', realpath(dirname(__FILE__)));
require_once MAGENTO . '/app/Mage.php';
Mage::app();

$rootCatId = Mage::app()->getStore()->getRootCategoryId();
$catlistHtml = getTreeCategories($rootCatId, false);

echo '&lt;table&gt;';
echo $catlistHtml;
echo '&lt;/table&gt;';


function getTreeCategories($parentId, $isChild){
	
	$allCats = Mage::getModel('catalog/category')->getCollection()
                ->addAttributeToSelect('*')               
                ->addAttributeToFilter('parent_id',array('eq' => $parentId))
                ->addAttributeToSort('position', 'asc');
               
    

	foreach($allCats as $category)
	{
	$html .= '&lt;tr&gt;&lt;td&gt;'.$category->getPath().'&lt;/td&gt;&lt;td&gt;'.utf8_decode($category->getName()).'&lt;/td&gt;&lt;/tr&gt;';
	$subcats = $category->getChildren();
		if($subcats != '')
		$html .= getTreeCategories($category->getId(), true);
	}

   return $html;
}</pre><p>The post <a href="https://upgrade.dinaweb.net/extraer-exportar-arbol-categorias-magento/">Extraer-exportar árbol de categorías en Magento</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/extraer-exportar-arbol-categorias-magento/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Magento: Reconocer si estamos en Home</title>
		<link>https://upgrade.dinaweb.net/magento-reconocer-home/</link>
					<comments>https://upgrade.dinaweb.net/magento-reconocer-home/#respond</comments>
		
		<dc:creator><![CDATA[Federico Chulilla]]></dc:creator>
		<pubDate>Tue, 29 Oct 2013 20:29:47 +0000</pubDate>
				<category><![CDATA[Programación]]></category>
		<guid isPermaLink="false">http://upgrade.dinaweb.net/?p=1061</guid>

					<description><![CDATA[<p>En algunas ocasiones nos interesa que cierto listado de productos, enlaces, banners, etc. aparezca solo en la página principal de nuestra tienda online Magento. Para ello inserta el siguiente código en el archivo de la plantilla donde lo necesites: if(Mage::getSingleton('cms/page')->getIdentifier() == 'home' &#038;&Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms') : //código que necesites endif;</p>
<p>The post <a href="https://upgrade.dinaweb.net/magento-reconocer-home/">Magento: Reconocer si estamos en Home</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>En algunas ocasiones nos interesa que cierto listado de productos, enlaces, banners, etc. aparezca solo en la página principal de nuestra tienda online Magento.</p>
<p>Para ello inserta el siguiente código en el archivo de la plantilla donde lo necesites:</p>
<pre name="code" class="php">if(Mage::getSingleton('cms/page')->getIdentifier() == 'home'  &&Mage::app()->getFrontController()->getRequest()->getRouteName() == 'cms') :

//código que necesites

endif;</pre><p>The post <a href="https://upgrade.dinaweb.net/magento-reconocer-home/">Magento: Reconocer si estamos en Home</a> first appeared on <a href="https://upgrade.dinaweb.net">Programador Magento</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://upgrade.dinaweb.net/magento-reconocer-home/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Almacenamiento en caché de páginas con Disk: Enhanced 
Carga diferida (feed)
Minified using Disk

Served from: upgrade.dinaweb.net @ 2026-04-06 18:23:14 by W3 Total Cache
-->