Domanda

Sto usando il nuovo tema 1.9.1 di Magento e ho scoperto che le e-mail dell'ordine non sono state inviate.Ho scoperto che questo è stato causato perché nella nuova edizione è necessario pianificare un cron per inviare le mail.

Questo Cron.php era già presente nella root

// Change current directory to the directory of current script
chdir(dirname(__FILE__));

require 'app/Mage.php';

if (!Mage::isInstalled()) {
    echo "Application is not installed yet, please complete install wizard first.";
    exit;
}

// Only for urls
// Don't remove this
$_SERVER['SCRIPT_NAME'] = str_replace(basename(__FILE__), 'index.php',     
$_SERVER['SCRIPT_NAME']);
$_SERVER['SCRIPT_FILENAME'] = str_replace(basename(__FILE__), 'index.php',    
$_SERVER['SCRIPT_FILENAME']);

Mage::app('admin')->setUseSessionInUrl(false);

umask(0);

$disabledFuncs = explode(',', ini_get('disable_functions'));
$isShellDisabled = is_array($disabledFuncs) ? in_array('shell_exec',   
$disabledFuncs) : true;
$isShellDisabled = (stripos(PHP_OS, 'win') === false) ? $isShellDisabled : true;

try {
    if (stripos(PHP_OS, 'win') === false) {
        $options = getopt('m::');
        if (isset($options['m'])) {
            if ($options['m'] == 'always') {
                $cronMode = 'always';
            } elseif ($options['m'] == 'default') {
                $cronMode = 'default';
            } else {
                Mage::throwException('Unrecognized cron mode was defined');
         }
     } else if (!$isShellDisabled) {
        $fileName = basename(__FILE__);
        $baseDir = dirname(__FILE__);
        shell_exec("/bin/sh $baseDir/cron.sh $fileName -mdefault 1 > /dev/null 2>&1 &");
        shell_exec("/bin/sh $baseDir/cron.sh $fileName -malways 1 > /dev/null 2>&1 &");
        exit;
    }
}

    Mage::getConfig()->init()->loadEventObservers('crontab');
    Mage::app()->addEventArea('crontab');

    if ($isShellDisabled) {
        Mage::dispatchEvent('always');
        Mage::dispatchEvent('default');
    } else {
        Mage::dispatchEvent($cronMode);
    }
} catch (Exception $e) {
    Mage::printException($e);
    exit(1);
}
.

Ho fatto alcune ricerche su Google, e per quanto posso capire solo la seguente riga deve essere aggiunta

*/5 * * * * wget -O /dev/null -q http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php > /dev/null
.

Questa linea deve essere aggiunta a cron.php?Ed è tutto ciò che serve per inviare le e-mail?

È stato utile?

Soluzione

Questo disattiva completamente la coda, ma risolve il problema!

Ho incontrato questo problema prima.per risolvere

    .
  1. Copia file in app\code\core\Mage\Sales\Model\order.php in app\code\local\Mage\Sales\Model\order.php

  2. Apri in un editor

  3. Trova questo codice

    $mailer->setQueue($emailQueue)->send();

  4. Sostituiscilo con $mailer->send(); e salva.

    1. Assicurati inoltre, hai aggiunto e-mail nella scheda Email di vendita in system => configuration.
    2. Buona fortuna.Fammi sapere se il problema risolto.

Altri suggerimenti

La linea in questione deve essere aggiunta al tuo scheduler Cron.Utilizzo di SSH Dovresti essere in grado di utilizzare crontab -e e richiederà di selezionare il tuo editor appropriato e inserire la linea alla fine del file.

In alternativa sui server con un po 'di pannello di controllo (CPANEL, PLESK ecc.) Potresti avere un'opzione per inserirlo tramite lo strumento di gestione per tali applicazioni utilizzando lo stesso formato o in alternativa inserendo il comando in (wget -O /dev/null -q http://www.YOURDOMAIN.com/PATH_TO_MAGENTO/cron.php) eImpostazione degli intervalli di tempo che devono corrispondere al primo elemento.

Se si dispone dell'accesso al server, consiglierei di utilizzare Cron.SH piuttosto che CRON.PHP in quanto ciò ti permette di eseguire attività complesse sotto Cron senza influire sul carico sul processo del server Web.

Per usufruire di ciò che si imposta come segue:

*/5 * * * * php /path/to/magento/website/cron.sh

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top