Únete a la Comunidad Magento

Regístrate gratis para publicar preguntas y recibir un resumen semanal con lo mejor de la comunidad
REGISTRO GRATIS

Mensaje transaccional de compra se envia a varios clientes

Tema en 'Foro de Errores' iniciado por XIXO123, 8/10/18.

  1. XIXO123

    XIXO123 Nuevo usuario

    11
    0
    1
    Hola, uso el Magento 1.9.3.2 y ya desde hace un par de meses el mensaje transaccional de Correos electrónicos de ventas de Confirmación de Nuevo Pedido se envia a más clientes en las compras hechas en la web, aparte de al cliente que ha hecho la compra. No sé cómo solucionarlo ni que configuración tocar ya que me llaman clientes diciendo que les llega un mensaje de una compra que ellos no han hecho :/.

    Solo he encontrado estos post en ingles que además dan una solución que para los que no sabemos tocar Magento y donde tocar nos suena a chino. https://magento.stackexchange.com/questions/95906/magento-order-email-sending-to-wrong-customer
    https://community.magento.com/t5/Ma...nt-to-multiple-different-customers/td-p/40919

    Esta parece ser una de las soluciones:

    There appears to be a missing foreign key constraint on the core_email_queue_recipeints table, so when the cron job clears the core_email_queue table the recipients are left, and the truncation resets the primary key to 1, causing possible collisions of past customer email addresses with new orders.



    To fix the problem in magento 1.9:



    DELETE FROM core_email_queue_recipients WHERE message_id NOT IN (SELECT message_id FROM core_email_queue);
    DELETE FROM core_email_queue_recipients WHERE recipient_id < (SELECT recipient_id FROM (SELECT recipient_id FROM core_email_queue_recipients ORDER BY message_id ASC, recipient_id DESC LIMIT 1) AS r);
    ALTER TABLE core_email_queue_recipients ADD FOREIGN KEY(message_id) REFERENCES core_email_queue(message_id) ON DELETE CASCADE;
    This will clear the orphan records from the recipient table, and apply the missing FK rule to the database.

    TRaducido en otra página que pone lo mismo pone:

    Afortunadamente la solución para este problema es fácil de realizar.

    Todo lo que necesita es limpieza las identificaciones de mensajes repetidos en la tabla core_email_queue_recipients y asegurándose de que cuando un mensaje se elimina de la tabla de core_email_queue , al mismo tiempo sus destinatarios correspondientes Haz eliminados en la tabla core_email_queue_recipients .

    La mejor manera de lograr esto es crear una clave externa que vincula estos registros y elimina en cascada (pero necesita hacer alguna limpieza antes de que usted puede hacer eso).

    Este es el procedimiento para resolver el problema:

    1) ejecutar las siguientes dos consultas SQL para limpiar la tabla de core_email_queue_recipients de los registros huérfanos y ids mensajes repetidos:

    DELETE FROM core_email_queue_recipients WHERE message_id NOT IN (SELECT message_id FROM core_email_queue);
    DELETE FROM core_email_queue_recipients WHERE recipient_id < (SELECT recipient_id FROM (SELECT recipient_id FROM core_email_queue_recipients ORDER BY message_id ASC, recipient_id DESC LIMIT 1) AS r);
    La primera consulta elimina los registros huérfanos y segundo borra registros antiguos que ya no son válidos.

    2) cree una clave externa en la tabla de core_email_queue_recipients para eliminar los registros de beneficiarios en cascada. La consulta SQL para crear esta clave externa es:

    ALTER TABLE core_email_queue_recipients ADD FOREIGN KEY(message_id) REFERENCES core_email_queue(message_id) ON DELETE CASCADE;
    Mediante el uso de esta nueva llave foranea, registros huérfanos no quedará sobre la mesa de core_email_queue_recipients cuando limpie la tabla de core_email_queue , y no hay repetidos mensajes a destinatarios equivocados se enviará en el futuro.

    Pero no sé donde tengo que escribir esos comando DELETE y todo lo que sigue, ya que no lo dicen. Puede ser en la ruta app/code/core/Mage/Core/etc/config.xml? Alguién sabría algo? Gracias
     

    Adjuntos:

    Última edición: 8/10/18
  2.  
    Comunidad Magento orgullosamente patrocinada por el hosting y vps magento de FactoriaDigital.com.
  3. XIXO123

    XIXO123 Nuevo usuario

    11
    0
    1
    Este es el fichero config.xml, ¿habría que añadirle esas lineas anteriores?
     

    Adjuntos:

  4. Perol

    Perol Nuevo usuario

    11
    0
    1
    Hola Xixo,
    Son sentencias que se han de ejecutar en la base de datos, tienes que buscar las tablas que te indican y ejecutar ahí la sentencias. Antes de hacer nada BACKUP obligatorio de la base de datos.

    No se si te servirá la solución para limpiar pero el problema una vez corregido es encontrar el porqué ha ocurrido esto y si sigue produciéndose.

    Un saludo,
     
  5. XIXO123

    XIXO123 Nuevo usuario

    11
    0
    1
    Gracias por la respuesta. Desgraciadamente me quedo igual, no sabría como acceder a la base de datos y ejecutar esos comandos. Actualmente utilizo VestaCP para administrar el hosting web y voy a investigar si es posible meterle mano por ahí a la base de datos.
     
  6. Perol

    Perol Nuevo usuario

    11
    0
    1
    Hola Xixo,
    Mi consejo es que si no sabes de base de datos no toques nada ya que s haces algo que no va bien y después no vas a poder corregir, te vas a encontrar en una posición complicada.

    Un saludo,
     
  7. XIXO123

    XIXO123 Nuevo usuario

    11
    0
    1
    Tienes razón, mejor no tocaré nada, que Magento a la mínima falla todo
     
  8. evoratec

    evoratec Nuevo usuario

    23
    0
    1
    Lo que yo he hecho para evitar diversos problemas y debido a que no es una tienda con mucha carga de emails, hemos deshabilitado la cola de mensajes y enviamos los mensajes directamente. Esto hay que hacerlo en código
     
Cargando...

Compartir esta página

Cargando...