Jump to content

Error - No iso code for email !


Recommended Posts

Hola, tengo funcionando prestashop 1.3.6.0 y el modulo followup (Retome contacto con sus clientes) y me da este error "Error - No iso code for email !" cuando intento enviar mediante cron el url.

Es curioso porque solamente da el error cuando activo las opciones 3 (mejores clientes) y 4 (peores clientes).
Si no las tengo activadas funciona correctamente.

He revisado todo de arriba a abajo y nada, no encuentro la solución.

Por favor, una ayudita....

Saludos

Link to comment
Share on other sites

A mi me pasa exactamente lo mismo pero solo con el grupo 4. ¿Alguien a averiguado algo al respecto?

@Adrenalinas los datos de tu tienda los has introducido nuevos o los has migrado desde otro sistema antiguo como oscommerce o algo parecido?

cualquier ayuda será muy agradecida :D

Link to comment
Share on other sites

busca en las carpeta que se encuetren las platillas de mails correspondiente, ademas creo que debes mirar en la clase si esta seleccionando el lenguaje correcto, no recuerdo bien pero creo que es algo asi

$customer = new Customer(intval($cookie->id_customer));
if (Validate::isLoadedObject($customer))Mail::Send(intval($cookie->id_lang),

donde $cookie->id_lang selecciona el iso del lenguaje. tal vez por ahi debe estar la falla, seguramente algo en la tabla que almacena la info del cliente, o algo con las platillas...

pues en el modulo en cuestion creo que habria que ver si estan correctamente las llamadas Mail::Send(intval($email['id_lang'])
y ver de que tabla toma el iso, por ejemplo customer SELECT c.id_lang, si exportaron oscommerce habria que ver si estos estan bien.

saludos!!

Link to comment
Share on other sites

Solucioné el problema @Adrenalinas, es cuestión de la consulta SQL que hace el fichero followup.php en la función "badCustomer" que es la que obtiene los malos clientes. Si te fijas el "id_lang" lo está sacando de la tabla "carts", como al importar los datos de oscommerce no se importan los carritos al intentar obtener los datos del carrito de un pedido antiguo de oscommerce se obtiene null en dichos campos (entre ellos el famoso id_lang).

Al llegar a la funcion mail el id_lang con null salta el error anteriormente mostrado. La solucion es modificar la SQL para que coja el id_lang de la tabla "orders" y arreglao! dejo aqui la sentencia SQL por si no me he explicado con claridad. salu2

$emails = Db::getInstance()->ExecuteS('
       SELECT o.id_lang, c.id_cart, cu.id_customer, cu.firstname, cu.lastname, cu.email, (SELECT COUNT(o.id_order) FROM '._DB_PREFIX_.'orders o WHERE o.id_customer = cu.id_customer) nb_orders
       FROM '._DB_PREFIX_.'customer cu
       LEFT JOIN '._DB_PREFIX_.'orders o ON (o.id_customer = cu.id_customer)
       LEFT JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = o.id_cart)
       WHERE cu.id_customer NOT IN
       (SELECT o.id_customer FROM '._DB_PREFIX_.'orders o WHERE DATE_SUB(CURDATE(),INTERVAL '.intval(Configuration::get('PS_FOLLOW_UP_DAYS_THRESHOLD_4')).' DAY) <= o.date_add)
       AND cu.id_customer NOT IN
       (SELECT id_customer FROM '._DB_PREFIX_.'log_email WHERE id_email_type = 4 AND date_add >= DATE_SUB(date_add,INTERVAL '.intval(Configuration::get('PS_FOLLOW_UP_DAYS_THRESHOLD_4')).' DAY))
       GROUP BY cu.id_customer
       HAVING nb_orders >= 1');

Link to comment
Share on other sites

Ok, gracias Newcomer, funcionó perfectamente para enviar a los malos clientes...
Pero no funciona para los mejores clientes, me sigue dando el mismo error y mis conocimientos son limitados.
Te agradecería me ayudases con esto, porque el error parece ser similar.
Espero noticias tuyas y mil gracias nuevamente.
Saludos

Link to comment
Share on other sites

Hola de nuevo @Adrenalinas, no te está mandando los mails de mejores clientes por el mismo motivo que el de malos clientes, tienes que cambiar la sentencia SQL para que coja el "id_lang" de la tabla orders en vez de la tabla carts.

Lamento decirte que el resto de problemas que me comentas no me han sucedido y no puedo ayudarte con ellos. Espero que no te desanimes y los intentes solucionar porque Prestahop es una gran herramienta y vas a encontrarte problemas con cualquier otra tienda que instales... sobretodo cuando la montas con datos importados de otra plataforma.

salu2.

Link to comment
Share on other sites

  • 5 months later...
Solucioné el problema @Adrenalinas, es cuestión de la consulta SQL que hace el fichero followup.php en la función "badCustomer" que es la que obtiene los malos clientes. Si te fijas el "id_lang" lo está sacando de la tabla "carts", como al importar los datos de oscommerce no se importan los carritos al intentar obtener los datos del carrito de un pedido antiguo de oscommerce se obtiene null en dichos campos (entre ellos el famoso id_lang).

Al llegar a la funcion mail el id_lang con null salta el error anteriormente mostrado. La solucion es modificar la SQL para que coja el id_lang de la tabla "orders" y arreglao! dejo aqui la sentencia SQL por si no me he explicado con claridad. salu2

$emails = Db::getInstance()->ExecuteS('
       SELECT o.id_lang, c.id_cart, cu.id_customer, cu.firstname, cu.lastname, cu.email, (SELECT COUNT(o.id_order) FROM '._DB_PREFIX_.'orders o WHERE o.id_customer = cu.id_customer) nb_orders
       FROM '._DB_PREFIX_.'customer cu
       LEFT JOIN '._DB_PREFIX_.'orders o ON (o.id_customer = cu.id_customer)
       LEFT JOIN '._DB_PREFIX_.'cart c ON (c.id_cart = o.id_cart)
       WHERE cu.id_customer NOT IN
       (SELECT o.id_customer FROM '._DB_PREFIX_.'orders o WHERE DATE_SUB(CURDATE(),INTERVAL '.intval(Configuration::get('PS_FOLLOW_UP_DAYS_THRESHOLD_4')).' DAY) <= o.date_add)
       AND cu.id_customer NOT IN
       (SELECT id_customer FROM '._DB_PREFIX_.'log_email WHERE id_email_type = 4 AND date_add >= DATE_SUB(date_add,INTERVAL '.intval(Configuration::get('PS_FOLLOW_UP_DAYS_THRESHOLD_4')).' DAY))
       GROUP BY cu.id_customer
       HAVING nb_orders >= 1');



Hola!! Y se puede saber como has hecho para importar desde Oscommerce? Ya que me estoy volviendo loooooooocaaaaaaaaaa, cual es el secreto??? Un saludooo
Link to comment
Share on other sites

Hola,
Los datos son importados desde oscommerce.
Creo que ahí esta el problema...
Sigo investigando pero nada...
Saludos y suerte !!!

Hola! Veo que tu al igual que Sampel habeis importado los datos desde oscommrce, me podeis decir como???
He instaldo en local el 1.4.3 y viene el modulo de importar pero al conectar me dice o que no hace copnexion con la bd o error con los datos iso, ayuda!!!!
Link to comment
Share on other sites

Hola,
Habrás introducido mal los datos de la conexión con la BD que te solicitan.
Repásalos y me dices. Si lo prefieres por privado mejor.

Decirte que yo importé los datos de oscommerce con un módulo de pago.
Mi versión de Prestashop es la 1.3 y todavía no estaba ese módulo que dices que viene en la 1.4.
Espero haberte ayudado.

Saludos

Link to comment
Share on other sites

  • 4 months later...
  • 3 weeks later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...