Archivo de la categoría: Magento

MWI: Integrando Magento y WordPress

MWI (http://mwi-plugin.com/) es un plugin gratuito para WordPress que nos permite mostrar bloques de Magento en nuestro blog. Es muy útil para proyectos en los que necesitamos un buen CMS como WordPress para manejar todas las secciones de texto del sitio y dejar a Magento solo a cargo de los productos y el carrito de compras.

No entrare en mucho detalle sobre la instalación (ya el plugin incorpora su guia), si no en los problemas que he encontrado y como los he solucionado:

  1. Magento y WordPress no comparten las cookies: Este problema hace que básicamente, no se puedan agregar productos al carrito de compras desde ninguna pagina de WordPress. Para solucionarlo es necesario modificar el archivo wp-config.php en la instalación de wordpress y agregar la linea:
    define( 'COOKIE_DOMAIN', '.tu-dominio.com' );

    No importa si la dirección de tu pagina es un subdominio y si empieza o no con «www».
    En en administrador de magento, en System > Configuration > Web > Session Cookie Management editar las configuraciones para que sean:

    Cookie Path "/"
    Cookie Domain to ".tu-dominio.com"

    Si tu instalación de magento es 1.8 o 1.8.1, es recomendable instalar el plugin https://github.com/deivisonarthur/Inovarti_FixAddToCartMage18

  2. La session se cierra al cambiar de pagina. En System > Configuration > Web > Session Cookie Management editar las configuraciones para que sean:
    Cookie Lifetime "0" si quieres que la session se cierre cuando se cierre el navegador, o "86400" para que dure un dia de conexion.
    Use HTTP Only "No"

Es importante recordar como en casi todo lo que se hace en magento, limpiar las carpeta «var/cache» y «var/session» luego de hacer cambios en el sitio.

Algunos de los sitios que he trabajado con este sistema son:

Magento: Refrescar estadísticas automáticamente

Al tener una tienda en magento, siempre un problema tener que ir a refrescar manualmente las estadísticas del sitio para poder ver los reportes de ventas. La solución: crear un cron que haga esta tarea por nosotros cada determinado tiempo.

Lo primero es crear un archivo .php (en mi caso se llama refresh_statistics.php) en el directorio /shell de la instalación de Magento con el siguiente código:

<?
require_once 'abstract.php';

class Mage_Shell_Refresh_Statistics extends Mage_Shell_Abstract
{
   
    protected function _getCodes()
    {
        $allcodes = array(
            '0'     => 'sales/report_order',
            '1'       => 'tax/report_tax',
            '2'  => 'sales/report_shipping',
            '3'  => 'sales/report_invoiced',
            '4'  => 'sales/report_refunded',
            '5'   => 'salesrule/report_rule',
            '6' => 'sales/report_bestsellers',
        );
        return $allcodes;
    }

   
    /**
     * Run script
     *
     */
    public function run()
    {
        if ($this->getArg('refresh')) {
            $allCodes = $this->_getCodes();
            try {
                foreach ($allCodes as $collectionName) {
                    Mage::getResourceModel($collectionName)->aggregate();
                }
                Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('adminhtml')->__('Lifetime statistics have been updated.'));
            } catch (Mage_Core_Exception $e) {
                Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
            } catch (Exception $e) {
                Mage::getSingleton('adminhtml/session')->addError(Mage::helper('adminhtml')->__('Unable to refresh lifetime statistics.'));
                Mage::logException($e);
            }
           
            echo "Statistics Refreshed!";
           
        } else {
            echo $this->usageHelp();
        }
    }

    /**
     * Retrieve Usage Help Message
     *
     */
    public function usageHelp()
    {
        return <<<USAGE
Usage:  php -f refresh_statistics.php -- [options]
       
  refresh            Resfresh the lifetime statistics
  help              This help

USAGE;
    }
}

$shell = new Mage_Shell_Refresh_Statistics();
$shell->run();

El script esta hecho para no poder ser ejecutado desde el navegador, asi que no puedes usar curl para ejecutarlo. Se debe ejecutar de la siguiente forma

php -f PATH_A_TU_ARCHIVO -- refresh

En cpanel se veria algo como esto

Terminado! Ya tendremos siempre las estadísticas de magento actualizadas en todo momento.