Adrenalinas Posted January 13, 2011 Share Posted January 13, 2011 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 More sharing options...
sampel Posted January 17, 2011 Share Posted January 17, 2011 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 Link to comment Share on other sites More sharing options...
Adrenalinas Posted January 17, 2011 Author Share Posted January 17, 2011 Hola,Los datos son importados desde oscommerce.Creo que ahí esta el problema...Sigo investigando pero nada...Saludos y suerte !!! Link to comment Share on other sites More sharing options...
sampel Posted January 18, 2011 Share Posted January 18, 2011 Bueno entonces estás igual que yo que también importé los datos de un oscommerce. Por mi parte yo también sigo investigando a ver si encuentro el error.salu2 @Adrenalinas! Link to comment Share on other sites More sharing options...
tamu secreto Posted January 19, 2011 Share Posted January 19, 2011 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 More sharing options...
sampel Posted January 19, 2011 Share Posted January 19, 2011 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 More sharing options...
Adrenalinas Posted January 19, 2011 Author Share Posted January 19, 2011 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 More sharing options...
Adrenalinas Posted January 19, 2011 Author Share Posted January 19, 2011 Ok, estudiando y repasando tu comentario he conseguido solucionarlo.Adjunto archivo "followup.php" para quienes les pueda servir de ayuda en un futuro.Saludos followup.php Link to comment Share on other sites More sharing options...
Adrenalinas Posted January 19, 2011 Author Share Posted January 19, 2011 Samel, te he enviado un MP ¿te llegó correctamente?Espero tu respuesta.Saludos Link to comment Share on other sites More sharing options...
sampel Posted January 19, 2011 Share Posted January 19, 2011 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 More sharing options...
Adrenalinas Posted January 19, 2011 Author Share Posted January 19, 2011 Ok, gracias. Link to comment Share on other sites More sharing options...
CloniKa Posted June 28, 2011 Share Posted June 28, 2011 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 More sharing options...
CloniKa Posted June 28, 2011 Share Posted June 28, 2011 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 More sharing options...
Adrenalinas Posted June 28, 2011 Author Share Posted June 28, 2011 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 More sharing options...
BugfreeShop Posted November 24, 2011 Share Posted November 24, 2011 Its a outer join. You get null values for cart and id_lang ids. Add the following AND clause to the query to solve the issue AND c.id_cart IS NOT NULL before GROUP BY cu.id_customer Link to comment Share on other sites More sharing options...
keldon Posted December 16, 2011 Share Posted December 16, 2011 Ya encontré la solución para que funcione con "peores clientes", en pedidos tenía uno por defecto de un tal John DOE. Lo eliminé tal y como explican aquí: http://www.prestashop.com/forums/topic/80639-solved-anybody-know-how-to-delete-j-doe-backofficeorders/ y ahora ya funciona perfectamente. Un saludo. Link to comment Share on other sites More sharing options...
Recommended Posts