Отправьте Конкретное Электронное Письмо В Зависимости От Способа Оплаты (т. Е. Укажите Банковские Реквизиты)


Мне нужно отправить конкретное электронное письмо, если клиент выберет способ оплаты.

Я буду использовать это для клиентов, которые хотят платить в автономном режиме (банковский перевод) По электронной почте они получат информацию о наших банковских реквизитах.

Author: Fabian Schmengler, 2013-06-05

6 answers

Если вы можете изменить используемый вами конкретный способ оплаты/модуль, должно быть достаточно установить свойство $_infoBlockType вашего класса платежей и создать блок, который отображает необходимую информацию.

В основном этот блок просто вызовет ->setTemplate() в конструкторе, а затем сошлется на ваш пользовательский файл .phtml с информацией.

Замечание: Что касается банковского перевода, есть также готовые и бесплатные расширения (я знаю о https://github.com/therouv/Magento-DebitPayment и Phoenix_BankPayment - но не использовал их так far), которые вы, возможно, захотите использовать напрямую, получить вдохновение или адаптировать их к вашим конкретным потребностям.

 4
Author: Alex, 2013-06-06 13:54:13

Как ранее заявлял Фабиан Блехшмидт, нет необходимости в наблюдателях, если кому-то нужно простое решение. Вставьте этот блок в нужный шаблон электронной почты в magento:

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

И создайте файл в приложении/дизайне/интерфейсе/ВАШЕЙ табличке/электронной почте/заказе/sometext.phtml.

Внутри файла простое "если", и мы уходим:

<?php $_order = $this -> getOrder(); ?>
<?php if ($_order->getPayment()->getMethod() == 'somepayment') ?>
<p>Some text for the specific payment</p>
 3
Author: navotjer, 2014-03-11 17:02:03

Вы можете использовать метод события/наблюдателя magento, чтобы что-то сделать после размещения заказа.

Вы можете использовать это событие sales_order_place_after

Просто создайте один модуль для прослушивания наблюдателя/события magento.

В вашем /приложении/коде/локальном/{пространстве имен}/{вашем модуле}/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>

, А затем создайте класс наблюдателя в /приложении/коде/локальном/{пространстве имен}/{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 
      }

   }

Для получения настраиваемой электронной почты вы можете перейти по этой ссылке Ссылка

 2
Author: Mufaddal, 2013-06-05 08:37:45

Вот как я решил свою проблему.

Я хотел отобразить другой текст в зависимости от разных способов оплаты.

В шаблоне транзакционной электронной почты, где я хотел отобразить нужный HTML, я добавил эту строку

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

Затем я создал файл orderemail.phtml в приложении/дизайне/интерфейсе/yourtheme/yoursubtheme/шаблоне/статусе платежей/

Добавлена логика php, которую я хотел:

<?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
}
?>

И все, сделайте свой тестовый заказ и посмотрите изменения.

Надеюсь, это поможет кто-то:)

 1
Author: Daniel Badanjak, 2014-09-19 10:28:53

Здесь нет необходимости в наблюдателе, если вы спросите меня.

Вы можете включить блокировку в почту, ввести заказ, проверить способ оплаты и вставить "если", тогда платежные данные будут вставлены только в том случае, если используется правильный способ оплаты.

{{block type='core/template' area='frontend' template='email/order/mailtemplate.phtml' order=$order}}
 0
Author: Fabian Blechschmidt, 2013-06-05 12:17:26

Создайте для этого новое расширение и используйте наблюдателя для отправки электронного письма. Из объекта наблюдателя, проанализированного для модели, которая является вашим наблюдателем, вы можете получить заказ, а оттуда способ оплаты. Простого "если/иначе" будет достаточно, чтобы отправить электронное письмо только с определенным способом оплаты.

В Inchoo есть отличная статья о наблюдателе, который вам нужен: Пользовательские события Magento в Inchoo И отправке пользовательских электронных писем вы можете узнать здесь: Пользовательские электронные письма Inchoo Magento

 0
Author: Sander Mangel, 2013-06-05 12:18:20