Enviar por correo electrónico específico dependiendo de Pago (es decir, para incluir datos bancarios)

magento.stackexchange https://magento.stackexchange.com/questions/4446

Pregunta

Es necesario enviar un correo electrónico específico si el cliente selecciona un método de pago.

Me va a utilizar esto para los clientes que deseen pagar en línea (transferencia bancaria) El correo electrónico informarles de nuestros datos bancarios.

¿Fue útil?

Solución

Si se puede modificar ese método de pago específico / módulo se utiliza, debe ser suficiente para establecer el $_infoBlockType propiedad de su clase de pago y crear un bloque que hace la información necesaria.

Básicamente este bloque sería simplemente hacer una llamada ->setTemplate() en el constructor y luego hacer referencia a su archivo .phtml personalizado con las informaciones.

Observación: En relación con la transferencia bancaria también hay ya hecho y extensiones libres (que sé de https://github.com/therouv/Magento-DebitPayment y Phoenix_BankPayment - pero no las usamos hasta ahora), que es posible que desee utilizar directamente, obtener inspiración o adaptarlos a sus necesidades específicas.

Otros consejos

Como se dijo antes por Fabian Blechschmidt, sin necesidad de observadores si alguien está en la necesidad de una solución sencilla. Insertar este bloque en una plantilla de correo electrónico deseada en Magento:

{{block type='core/template' area='frontend' template='email/order/sometext.phtml' order=$order}}

Y crear el archivo en app / design / frontend / yourtemplate / correo / orden / sometext.phtml.

Dentro del archivo, si un simple y allá vamos:

<?php $_order = $this -> getOrder(); ?>
<?php if ($_order->getPayment()->getMethod() == 'somepayment') ?>
<p>Some text for the specific payment</p>

Se puede utilizar el método de eventos / observador de Magento que hacer algo después del pedido.

Puede utilizar este evento sales_order_place_after

Hay que crear un módulo para escuchar Magento observador / evento.

En el / app / código / / local {namespace} / {} yourmodule /etc/config.xml:

<config>
        ...
        <frontend>
            ...
            <events>
                <sales_order_place_after>
                    <observers>
                        <unique_event_name>
                            <class>{{modulename}}/observer</class>
                            <method>your function name</method>
                        </unique_event_name>
                    </observers>
                </sales_order_place_after>
            </events>
            ...
        </frontend>
        ...
    </config>

Y a continuación, crear una clase de observador en / app / código / / local {namespace} / {} yourmodule /Model/Observer.php

    class <namespace>_<modulename>_Model_Observer
   {
      public function your function name(Varien_Event_Observer $observer)
      {
          $observer->getEvent()->getOrder() will give you all order detail.
            retrieve payment methods and customer email from this order object 
      }

   }

Por correo electrónico personalizado se puede hacer referencia este enlace Enlace

Aquí es cómo resolví mi problema.

Yo quería mostrar texto diferente en función de los diferentes métodos de pago.

En transaccional Plantilla de correo electrónico donde quería visualización deseada HTML añadí esta línea

{{block type='core/template' area='frontend' template='paymentstatus/orderemail.phtml' order=$order}}

A continuación, he creado orderemail.phtml archivo en app / design / frontend / yourtheme / yoursubtheme / template / paymentstatus /

Añadido lógica php que quería:

<?php

//Get payment method code
$pMethod = $this->getData('order')->getPayment()->getMethodInstance()->getCode();

if ($pMethod == 'banktransfer') {
?>
    <p>Bank Transfer payment method selected during checkout process</p>
<?php
}

if ($pMethod == 'cashondelivery') {
?>
    <p><Cash On Delivery payment method selected during checkout process/p>
<?php
}
?>

Y eso es todo, hacer su pedido de prueba y ver los cambios.

Espero que ayuda a alguien:)

No hay necesidad de un observador aquí si usted me pregunta.

Se puede incluir un bloque en el correo, inyecte la orden, cheque por el método de pago y insertar un si, a continuación, los datos de pago sólo se inserta, si se utiliza el método de pago correcto.

{{block type='core/template' area='frontend' template='email/order/mailtemplate.phtml' order=$order}}

crear una nueva extensión para esto y utilizar un observador para enviar el correo electrónico. Desde el objeto analizado observador al modelo que es el observador puede recuperar el orden y desde allí el método de pago. Un simple si / else entonces bastará con enviar solamente el correo electrónico en un determinado método de pago.

Inchoo tiene un gran artículo sobre el observador necesita: Inchoo personalizada Magento Eventos Y enviar correo electrónico personalizado que se puede aprender de aquí: Inchoo Magento correos electrónicos personalizados

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top