2014-01-27 4 views
0

Я реализовал страницу «полного продукта» со всеми продуктами во всех категориях (примерно с 200 продуктами, зависит от добавления новых продуктов). Это в табличном формате, который имеет только два столбца:Magento: Пользовательский шаблон электронной почты с прикреплением в формате PDF

  1. Название проекта
  2. Цена

И я реализовал динамическую генерацию PDF со всеми этими 200 продуктов.

Теперь мое требование - отправить этот pdf-адрес по электронной почте на указанный адрес электронной почты. Как я могу сделать с пурпурной? Мне нужно создать новый шаблон электронной почты с вложением pdf?

Пожалуйста, предложите лучшее решение.

ответ

0

Вы должны создать новый шаблон электронной почты под адресом

1) приложения \ локаль \ en_US \ шаблон \ электронную почту \ имя_папки/filename.html

2) Добавить раздел конфигурации в ваших модулях config.xml. Для экс:

<template> 
      <email> 
       <template_name module="NameSpace_ModuleName"> 
        <label>Your Own Label</label> 
        <file>modulefolder/template_name.html</file> 
        <type>html</type> 
       </template_name> 
      </email> 
     </template> 

3) Далее, ниже код, чтобы добавить вложение в транзакционной электронной почте:

function GetTransactionalSender() { 
    return array(
     'name' => Mage::getStoreConfig('trans_email/ident_support/name'), 
     'email' => Mage::getStoreConfig('trans_email/ident_support/email') 
    ); 
} 


function SendTransactionalEmail($templateId, $recepientEmail, $recepientName, $vars, $storeId, $pdf_attachment = '') { 
    $status = false; 
    try { 
     $transactionalEmail = Mage::getModel('core/email_template') 
      ->setDesignConfig(array('area' => 'frontend', 'store' => $storeId)); 

      if (!empty($pdf_attachment) && file_exists($pdf_attachment)) { 
       $transactionalEmail 
       ->getMail() 
       ->createAttachment(
        file_get_contents($pdf_attachment), 
        Zend_Mime::TYPE_OCTETSTREAM, 
        Zend_Mime::DISPOSITION_ATTACHMENT, 
        Zend_Mime::ENCODING_BASE64, 
        basename($pdf_attachment) 
      ); 
     } 


     $transactionalEmail 
      ->sendTransactional($templateId, GetTransactionalSender(), $recepientEmail, $recepientName, $vars); 
     $status = true; 
    } catch (Exception $e) { } 
    return $status; 
} 

$template_id = 1; 
$to_email = '[email protected]'; 
$to_name = 'User Name'; 
$vars = array(); 
$store_id = 1 
$pdf_file = '/full/path/to/my/file.pdf'; 
$sent = SendTransactionalEmail($template_id, $to_email, $to_name, $vars, $store_id, $pdf_file); 
+1

Где GetTransactionalSender() функция, которую вы использовали в SendTransactionalEmail() – Sivakumar

+0

Проверьте отредактированный ответ – Slimshadddyyy

Смежные вопросы