Magento redirects a la vieja URL luego de mover un site

junio 27th, 2013 Posted by magento 0 thoughts on “Magento redirects a la vieja URL luego de mover un site”

Mover un site Magento (casi) siempre es problemático. Y una de las cosas más aburridas es actualizar las URLs de las tiendas luego de mover un site.

Por lo cual me hice un pequeño script para automatizar un poco esto.

Para ejecutarlo hay que crear un carpeta llamada [MAGE_ROOT]/scripts/update-stores_urls y meter este php (update-stores-urls.php):

<?php

/*
* Luego de importar el SQL de un website Magento actualiza las URLs de las tiendas.
*
* 1. Setear el host para las urls unsecure.
* 2. Setear el host para las urls secure.
* 3. Setear los datos de conexión a la base de datos.
* 4. Ejecutar desde la línea de comandos:
*
* $ sh run.sh
*
*/

define ('SOURCE_HOST_UNSECURE', 'http://www.mysite.com/');
define ('SOURCE_HOST_SECURE', 'https://www.mysite.com/');

define ('TARGET_HOST_UNSECURE', 'http://new.mysite.local/');
define ('TARGET_HOST_SECURE', 'http://new.mysite.local/');

$db['name'] = 'db_magento';
$db['user'] = 'db_user';
$db['pass'] = 'db_pass';
$db['host'] = 'db_host';

$conn = mysql_connect($db['host'],$db['user'],$db['pass']);
@mysql_select_db($db['name']) or die(mysql_error());

// Se actualizan las URLs no seguras
$query = "SELECT config_id, value FROM core_config_data WHERE path LIKE 'web/unsecure/%'";

$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result)) {
$config_id = $row['config_id'];
$value = str_replace(SOURCE_HOST_UNSECURE, TARGET_HOST_UNSECURE, $row['value']);

$query = "UPDATE core_config_data SET value = '$value' WHERE config_id = $config_id";

echo $query . "n";

mysql_query($query);
}


// luego actualizo los configs secure
$query = "SELECT config_id, value FROM core_config_data WHERE path LIKE 'web/secure/%'";

$result = mysql_query($query);

while ($row = mysql_fetch_assoc($result)) {
$config_id = $row['config_id'];
$value = str_replace(SOURCE_HOST_SECURE, TARGET_HOST_SECURE, $row['value']);

$query = "UPDATE core_config_data SET value = '$value' WHERE config_id = $config_id";

echo $query . "n";

mysql_query($query);
}

echo "Actualizadas las URLs de las tiendas :)n";

?>

Y el siguiente sh (run.sh):

# actualizacion de las urls en la bd
php update-stores-urls.php

# limpieza de la cache
rm -fr ../../var/cache/*
rm -fr ../../var/session/*

Para ejecutarlo correr desde línea de comandos:

$ sh run.sh

Para más info de cómo acá hice un mini tutorial sobre los pasos a seguir para mover / copiar un site Magento a un servidor MAMP.

Uncaught exception ‘Zend_Exception’ with message ‘dbModel read resource does not implement Zend_Db_Adapter_Abstract’

junio 14th, 2013 Posted by magento 0 thoughts on “Uncaught exception ‘Zend_Exception’ with message ‘dbModel read resource does not implement Zend_Db_Adapter_Abstract’”

Simple 🙂


# rm var/cache/*
# rm var/session/*

Cómo quitar la nueva caja de componer email de Gmail | How to come back to old compose gmail

mayo 29th, 2013 Posted by gmail 0 thoughts on “Cómo quitar la nueva caja de componer email de Gmail | How to come back to old compose gmail”

La verdad es que la nueva caja de componer email de Gmail es una porquería (al menos en mi humilde opinión).

Te volvés loco para ver en esa cajita tan diminuta, y si querés poner una lista y alinearla tenés que hacer 10 mil clicks.
Así que volví a usar el viejo compose de Gmail que por el momento se puede volver a usar.
Para ello hay que hacer los siguientes pasos.

1) Hacer click en el triangulito y seleccionar “Volver temporalmente a la interfaz de redacción antigua”.

2) Hacer click en “Volver a la anterior temporalmente”.

Cómo eliminar la caja de comparar productos del sidebar de Magento.

mayo 28th, 2013 Posted by magento 0 thoughts on “Cómo eliminar la caja de comparar productos del sidebar de Magento.”

Una vez más se puede utilizar el local.xml para modificar el layout y así eliminar la caja de comparar productos en el sidebar de Magento.

Para eliminar dicha caja de todo tu site de Magento tenés que poner lo siguiente:


<default>
<remove name="catalog.compare.sidebar"/>
</default>

Cómo eliminar CSS de ciertas páginas en Magento

mayo 27th, 2013 Posted by magento 0 thoughts on “Cómo eliminar CSS de ciertas páginas en Magento”

Puede ser que tengas un css en tu layout que quieras que no esté en determinada página de Magento.

Para esto se puede utilizar el sistema de layouts de Magento poniendo lo siguiente:


<reference name="head">
<action method="removeItem">
<type>skin_css</type>
<name>filename.css></name>
<params />
</action>
</reference>

Esto se puede poner en el local.xml o también si es una página del CMS de Magento en CMS > Custom Design > Layout Update XML.

Algo similar se puede hacer si necesitás eliminar JS de ciertas páginas.

Cómo actualizar los índices de Magento desde consola

mayo 26th, 2013 Posted by magento 0 thoughts on “Cómo actualizar los índices de Magento desde consola”

Los índices de Magento se pueden actualizar desde el backend (Sistema > Index Management) o mediante un comando por consola.

Para actualizar los índices por consola hay que situarse en el directorio “shell” y lanzar el siguiente comando:


# php indexer.php reindexall

Cómo deshabilitar productos en Magento.

mayo 25th, 2013 Posted by magento 0 thoughts on “Cómo deshabilitar productos en Magento.”

Si bien se puede deshabilitar uno a uno los productos en Magento, o también hay algunos módulos que permiten hacer batch update, o incluso se pueden utilizar los perfiles de importación para actualizar los productos, hacerlo de manera programática consume muchos recursos y muchas veces al hacer actualizaciones de muchos productos Magento explota.

Entonces, para hacerlo de manera rápida se puede lanzar un query que actualice el atributo “status” al valor 2 (deshabilitado).

Para ello se puede utilizar el siguiente query:

UPDATE catalog_product_entity_int cpei, catalog_product_entity cpe
SET cpei.value = "2"
WHERE cpe.entity_id = cpei.entity_id
AND cpe.sku LIKE '%SKU%'
AND cpei.attribute_id = 273

Luego de lanzar el query hay que actualizar los índices de Magento. Esto se puede hacer desde el backend o por consola (hay que situarse en el directorio shell):

# php indexer.php reindexall

Importante: el id del atributo status (273 en mi ejemplo) puede variar según la instalación de Magento.

Para saber el id del atributo “status” se puede ir a Catálogo > Atributos > Gestionar los atributos > buscar por código el atributo status > hacer click sobre el mismo > copiar el id que aparece en la url.

Por ejemplo: admin/catalog_product_attribute/edit/attribute_id/273

Cómo hacer URL encode en Javascript.

mayo 24th, 2013 Posted by javascript 0 thoughts on “Cómo hacer URL encode en Javascript.”

Para hacer URL encode Javascript tiene las siguientes funciones:

  • escape() < deprecado desde ECMAScript v3
  • encodeURI()
  • encodeURIComponent()

Más en stackoverflow

NSData to NSString

abril 6th, 2013 Posted by iphone, objective-c 0 thoughts on “NSData to NSString”

En Objective C para castear un objeto NSData a un objeto NSString se realiza de dos maneras:

Si el objeto no termina en null hay que usar el método -initWithData:encoding:

    NSString* newStr = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];

Si el objeto termina en null hay que usar el método -stringWithUTF8String para eliminar el al final de la cadena.

    NSString* newStr = [NSString stringWithUTF8String:[data bytes]];

Cómo instalar wget en Mac

abril 6th, 2013 Posted by gnu, mac, mountain lion, unix 0 thoughts on “Cómo instalar wget en Mac”

Un prerrequisito para instalar wget en Mac es tener instaladas las command line tools.

Wget es una herramienta que permite descargas desde servidores. Su nombre proviene de www (w) y obtener en inglés (get).

Para instalarlo:

1. Descargar wget desde http://ftp.gnu.org/gnu/wget/wget-1.13.tar.gz

2. Abrir una terminal de Mac y lanzar los siguientes comandos:

$ mkdir ~/Development
$ mv ~/Downloads/wget-1.13.tar.gz ~/Development
$ cd ~/Development
$ tar -xzvf wget-1.13.tar.gz
$ cd wget-1.13
$ ./configure --with-ssl=openssl
$ make
$ sudo make install
$ which wget # deberia salir /usr/local/bin/wget

Copyright © 2018 programadorfreelanceargentina.com

Programador Freelance Argentina