Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Как в письме заказа администратору указать категорию товара?


Recommended Posts

Привет, всем.

В общем вопрос в шапке. Как в письме заказа указать категорию товара? 

Link to post
Share on other sites

В контроллере определяем главную категорию товара. Я делал так:

$this->load->model('catalog/category');
$category = $this->model_catalog_product->getCategories($order_product['product_id']);
if ($category){
	$categories_array = $this->model_catalog_category->getCategory($category[0]['category_id']);
	$product_category = $categories_array['name'];
}  

 

и сую ее в массив товаров
 

$order_products[] = array(
	'product_category' => $product_category, // это добавляем

теперь в шаблоне для каждого товара доступна категория в таком виде:

{{ product.product_category }}

 

  • +1 2
Link to post
Share on other sites

Posted (edited)
20 hours ago, SGrWr_34 said:

В контроллере определяем главную категорию товара. Я делал так:

$this->load->model('catalog/category');
$category = $this->model_catalog_product->getCategories($order_product['product_id']);
if ($category){
	$categories_array = $this->model_catalog_category->getCategory($category[0]['category_id']);
	$product_category = $categories_array['name'];
}  

 

и сую ее в массив товаров
 

$order_products[] = array(
	'product_category' => $product_category, // это добавляем

теперь в шаблоне для каждого товара доступна категория в таком виде:

{{ product.product_category }}

 

 

Edited by AleksLex
Link to post
Share on other sites

Posted (edited)

 Я немного по другому сделал. Обратился напрямую к базе 
Если кому надо. Напишу полный код. Отправляется таблица как на WP админу и покупателю. ТОлько админу без картинки с категорией, а покупателю с картинками без категорий Open Cart 3:
\catalog\view\theme\default\template\mail\order_alert.twig

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{{ title }}</title>
</head>
<body>

<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
    <tbody>
        <tr>
            <td valign="top" align="center"> 
 
 
<table style="background-color: #fdfdfd;border: 1px solid #dcdcdc;box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);border-radius: 3px;" id="template_container_mr_css_attr_mr_css_attr" width="600" cellspacing="0" cellpadding="0" border="0">
<tbody>
        <tr>
            <td valign="top" align="center">
                <table style="background-color: #557da1;color: #ffffff;border-bottom: 0;font-weight: bold;line-height: 100%;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;border-radius: 3px 3px 0 0;" id="template_header_mr_css_attr_mr_css_attr" width="100%" cellspacing="0" cellpadding="0" border="0">
                    <tbody>
                        <tr>
                            <td style="padding: 36px 48px;display: block;" id="header_wrapper_mr_css_attr_mr_css_attr">
                            <h1 style="color:#ffffff;font-family:'Helvetica Neue',Helvetica, Roboto,Arial,sans-serif; font-size:30px;font-weight:300;line-height:150%; margin-bottom:0px;margin-left:0px; margin-right:0px;margin-top:0px; text-align:left;text-shadow:0 1px 0 #7797b4">Новый клиентский заказ</h1>
                            </td>
                        </tr>
                    </tbody>
                 </table>
            </td>    
        </tr>
                
        <tr>
            <td valign="top" align="center">     
            <table width="600" cellspacing="0" cellpadding="0" border="0">
                <tbody>
                    <tr>
                    <td style="background-color: #fdfdfd;" valign="top">
                    <table width="100%" cellspacing="0" cellpadding="20" border="0">
                        <tbody>
                            <tr>
                                <td style="padding: 48px 48px 32px;" valign="top">
                                
                                <div style="color:#737373;font-family:'Helvetica Neue',Helvetica,Roboto,Arial,sans-serif;font-size:14px;line-height:150%;text-align:left">
                                                                <p style="margin-bottom:16px;margin-top:16px">Заказ от <b>{{lastname}} {{firstname}}</b></p>
                                <h2 style="color:#557da1;display:block;font-family:'Helvetica Neue',Helvetica,Roboto,Arial,sans-serif;font-size:18px;font-weight:bold;line-height:130%;margin-bottom:18px;margin-top:18px;text-align:left"><a style="font-weight: normal;text-decoration: underline;color: #557da1;" href="{{ link }}" class="link_mr_css_attr_mr_css_attr" target="_blank" rel=" noopener noreferrer">[Заказ № {{order_id}}]</a> ( {{ date_added }})</h2>
            

<div style="margin-bottom:40px">    

  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;"  cellspacing="0" cellpadding="6" border="1">
     <tbody>
         <tr>
             <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Категория</th>
             <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Товар</th>
             <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Количество</th> 
             <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Цена</th> 
         </tr>
     </tbody>   


    {% for product in products %}
    <tbody>
    <tr>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;"><a href="{{ product.href_cat}}">{{ product.name_cat }}</a>
  </td>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">{{ product.name }}</td>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">{{ product.quantity }}</td>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">{{ product.price }}</td>
     </tr>
    </tbody>
    
    {% endfor %}
    {% for voucher in vouchers %}
    <tbody>
    <tr>
      <td style="font-size: 12px;    border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;">{{ voucher.description }}</td>
      <td style="font-size: 12px;    border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;"></td>
      <td style="font-size: 12px;    border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: right; padding: 7px;">1</td>
      <td style="font-size: 12px;    border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: right; padding: 7px;">{{ voucher.amount }}</td>
      <td style="font-size: 12px;    border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: right; padding: 7px;">{{ voucher.amount }}</td>
    </tr>
    </tbody>
    {% endfor %}
   
    
    <tbody>

        <tr>
        <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" colspan="2" >{{ text_payment_method }}</th>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" >{{ payment_method }}</td>
        </tr>

    
    {% for total in totals %}
        <tr>
        <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" colspan="2" >{{ total.title }}</th>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" >{{ total.text }}</td>
        </tr>
    {% endfor %}
    

     </tbody>  
  </table>
  </div>
  


  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;  margin-bottom: 20px;"  cellspacing="0" cellpadding="6" border="1">
    <thead>
      <tr>
        <th style="color:#737373;border:1px solid #e4e4e4;vertical-align:middle;padding:12px;text-align:left" colspan="1">{{ text_order_detail }}</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">
        <b>{{ text_order_id }}</b> {{ order_id }}<br />
        <b>{{ text_payment_method }}</b> {{ payment_method }}<br />        
        <b>{{ text_shipping_method }}</b> {{ shipping_method }}<br />
        <b>{{ text_email }}</b> {{ email }}<br />
        <b>{{ text_telephone }}</b> {{ telephone }}<br />          
        <b>{{ text_order_status }}</b> {{ order_status }}<br />
        </td>        
      </tr>
    </tbody>
  </table>
 
 
  
  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;"  cellspacing="0" cellpadding="6" border="1">
    <thead>
      <tr>
        <th style="color:#737373;border:1px solid #e4e4e4;vertical-align:middle;padding:12px;text-align:left" colspan="1">{{ text_shipping_address }}</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">
        {{ shipping_address }}} 
        </td>        
      </tr>
    </tbody>
  </table>

    {% if comment %}
      <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; margin-bottom: 20px;">
        <tbody>
          <tr>
            <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">{{ comment }}</td>
          </tr>
        </tbody>
      </table>
      {% endif %}
  
 

</div>
                                    </td>
                                </tr>    
                            </tbody>
                        </table>
                    </td>
                </tr>
            </tbody>
        </table>                
        </td>
        </tr>
    </tbody>
</table>

            </td>
        </tr>    
    </tbody>
</table>
<hr>

</div>

</body>
</html>



\catalog\view\theme\default\template\mail\order_add.twig

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/1999/REC-html401-19991224/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{{ title }}</title>
</head>
<body>

<table width="100%" height="100%" cellspacing="0" cellpadding="0" border="0">
	<tbody>
		<tr>
			<td valign="top" align="center"> 
 
 
<table style="background-color: #fdfdfd;border: 1px solid #dcdcdc;box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);border-radius: 3px;" id="template_container_mr_css_attr_mr_css_attr" width="600" cellspacing="0" cellpadding="0" border="0">
<tbody>
		<tr>
			<td valign="top" align="center">
				<table style="background-color: #557da1;color: #ffffff;border-bottom: 0;font-weight: bold;line-height: 100%;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;border-radius: 3px 3px 0 0;" id="template_header_mr_css_attr_mr_css_attr" width="100%" cellspacing="0" cellpadding="0" border="0">
					<tbody>
						<tr>
							<td style="padding: 36px 48px;display: block;" id="header_wrapper_mr_css_attr_mr_css_attr">
							<h1 style="color:#ffffff;font-family:'Helvetica Neue',Helvetica, Roboto,Arial,sans-serif; font-size:30px;font-weight:300;line-height:150%; margin-bottom:0px;margin-left:0px; margin-right:0px;margin-top:0px; text-align:left;text-shadow:0 1px 0 #7797b4">Ваш заказ</h1>
							</td>
						</tr>
					</tbody>
				 </table>
			</td>	
		</tr>
				
		<tr>
			<td valign="top" align="center">	 
			<table width="600" cellspacing="0" cellpadding="0" border="0">
				<tbody>
					<tr>
					<td style="background-color: #fdfdfd;" valign="top">
					<table width="100%" cellspacing="0" cellpadding="20" border="0">
						<tbody>
							<tr>
								<td style="padding: 48px 48px 32px;" valign="top">
								
								<div style="color:#737373;font-family:'Helvetica Neue',Helvetica,Roboto,Arial,sans-serif;font-size:14px;line-height:150%;text-align:left">
														
								<h2 style="color:#557da1;display:block;font-family:'Helvetica Neue',Helvetica,Roboto,Arial,sans-serif;font-size:18px;font-weight:bold;line-height:130%;margin-bottom:18px;margin-top:18px;text-align:left"><a style="font-weight: normal;text-decoration: underline;color: #557da1;" href="" class="link_mr_css_attr_mr_css_attr" target="_blank" rel=" noopener noreferrer">[Заказ № {{order_id}}]</a> ( {{ date_added }})</h2>
			
  
<div style="margin-bottom:40px">	

  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;"  cellspacing="0" cellpadding="6" border="1">
	 <tbody>
		 <tr>
			 <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Картинка</th>
			 <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Товар</th>
			 <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Количество</th> 
			 <th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">Цена</th> 
		 </tr>
	 </tbody>   


    {% for product in products %}
	<tbody>
    <tr>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">
     <a href="{{ product.href}}"><img src="{{ product.thumb}}" alt="{{ product.name }}"></a></td>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">{{ product.name }}</td>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">{{ product.quantity }}</td>
      <td style="color: #737373;border: 1px solid #e4e4e4;padding: 12px;text-align: left;vertical-align: middle;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;word-wrap: break-word;">{{ product.price }}</td>
	 </tr>
	</tbody>
	
    {% endfor %}
    {% for voucher in vouchers %}
	<tbody>
    <tr>
      <td style="font-size: 12px;	border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;">{{ voucher.description }}</td>
      <td style="font-size: 12px;	border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: left; padding: 7px;"></td>
      <td style="font-size: 12px;	border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: right; padding: 7px;">1</td>
      <td style="font-size: 12px;	border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: right; padding: 7px;">{{ voucher.amount }}</td>
      <td style="font-size: 12px;	border-right: 1px solid #DDDDDD; border-bottom: 1px solid #DDDDDD; text-align: right; padding: 7px;">{{ voucher.amount }}</td>
    </tr>
	</tbody>
    {% endfor %}
   
    
    <tbody>

		<tr>
		<th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" colspan="2" >{{ text_payment_method }}</th>
		<td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" >{{ payment_method }}</td>
		</tr>

    
    {% for total in totals %}
		<tr>
		<th style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" colspan="2" >{{ total.title }}</th>
		<td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;" >{{ total.text }}</td>
		</tr>
	{% endfor %}
	

     </tbody>  
  </table>
  </div>
  

 

 <p style="margin-top: 0px; margin-bottom: 20px;">{{ text_greeting }}</p>
  {% if customer_id %}
  <p style="margin-top: 0px; margin-bottom: 20px;">{{ text_link }}</p>
  <p style="margin-top: 0px; margin-bottom: 20px;"><a href="{{ link }}">{{ link }}</a></p>
  {% endif %}
  {% if download %}
  <p style="margin-top: 0px; margin-bottom: 20px;">{{ text_download }}</p>
  <p style="margin-top: 0px; margin-bottom: 20px;"><a href="{{ download }}">{{ download }}</a></p>
  <{% endif %}
  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;  margin-bottom: 20px;"  cellspacing="0" cellpadding="6" border="1">
    <thead>
      <tr>
        <th style="color:#737373;border:1px solid #e4e4e4;vertical-align:middle;padding:12px;text-align:left" colspan="1">{{ text_order_detail }}</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">
		<b>{{ text_order_id }}</b> {{ order_id }}<br />
		<b>{{ text_payment_method }}</b> {{ payment_method }}<br />		
		<b>{{ text_shipping_method }}</b> {{ shipping_method }}<br />
		<b>{{ text_email }}</b> {{ email }}<br />
		<b>{{ text_telephone }}</b> {{ telephone }}<br />          
		<b>{{ text_order_status }}</b> {{ order_status }}<br />
		</td>        
      </tr>
    </tbody>
  </table>
 
 
  
  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;"  cellspacing="0" cellpadding="6" border="1">
    <thead>
      <tr>
        <th style="color:#737373;border:1px solid #e4e4e4;vertical-align:middle;padding:12px;text-align:left" colspan="1">{{ text_shipping_address }}</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">
		{{ shipping_address }}} 
		</td>        
      </tr>
    </tbody>
  </table>

    {% if comment %}
  <table style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;width: 100%;font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif; margin-bottom: 20px;">
    <thead>
      <tr>
        <td style="color:#737373;border:1px solid #e4e4e4;vertical-align:middle;padding:12px;text-align:left" colspan="1">{{ text_instruction }}</td>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td style="color: #737373;border: 1px solid #e4e4e4;vertical-align: middle;padding: 12px;text-align: left;">{{ comment }}</td>
      </tr>
    </tbody>
  </table>
  {% endif %}
  
 

</div>
									</td>
								</tr>	
							</tbody>
						</table>
					</td>
				</tr>
			</tbody>
		</table>				
		</td>
		</tr>
	</tbody>
</table>

			</td>
		</tr>	
	</tbody>
</table>
<hr>


</body>
</html>


\catalog\controller\mail\order.php
 

<?php
class ControllerMailOrder extends Controller {
	public function index(&$route, &$args) {
		if (isset($args[0])) {
			$order_id = $args[0];
		} else {
			$order_id = 0;
		}

		if (isset($args[1])) {
			$order_status_id = $args[1];
		} else {
			$order_status_id = 0;
		}	

		if (isset($args[2])) {
			$comment = $args[2];
		} else {
			$comment = '';
		}
		
		if (isset($args[3])) {
			$notify = $args[3];
		} else {
			$notify = '';
		}
						
		// We need to grab the old order status ID
		$order_info = $this->model_checkout_order->getOrder($order_id);
		
		if ($order_info) {
			// If order status is 0 then becomes greater than 0 send main html email
			if (!$order_info['order_status_id'] && $order_status_id) {
				$this->add($order_info, $order_status_id, $comment, $notify);
			} 
			
			// If order status is not 0 then send update text email
			if ($order_info['order_status_id'] && $order_status_id && $notify) {
				$this->edit($order_info, $order_status_id, $comment, $notify);
			}		
		}
	}
		
	public function add($order_info, $order_status_id, $comment, $notify) {
		// Check for any downloadable products
		$download_status = false;

		$order_products = $this->model_checkout_order->getOrderProducts($order_info['order_id']);
		
		foreach ($order_products as $order_product) {
			// Check if there are any linked downloads
			$product_download_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "product_to_download` WHERE product_id = '" . (int)$order_product['product_id'] . "'");

			if ($product_download_query->row['total']) {
				$download_status = true;
			}
		}
		
		// Load the language for any mails that might be required to be sent out
		$language = new Language($order_info['language_code']);
		$language->load($order_info['language_code']);
		$language->load('mail/order_add');

		// HTML Mail
		$data['title'] = sprintf($language->get('text_subject'), $order_info['store_name'], $order_info['order_id']);

		$data['text_greeting'] = sprintf($language->get('text_greeting'), $order_info['store_name']);
		$data['text_link'] = $language->get('text_link');
		$data['text_download'] = $language->get('text_download');
		$data['text_order_detail'] = $language->get('text_order_detail');
		$data['text_instruction'] = $language->get('text_instruction');
		$data['text_order_id'] = $language->get('text_order_id');
		$data['text_date_added'] = $language->get('text_date_added');
		$data['text_payment_method'] = $language->get('text_payment_method');
		$data['text_shipping_method'] = $language->get('text_shipping_method');
		$data['text_email'] = $language->get('text_email');
		$data['text_telephone'] = $language->get('text_telephone');
		$data['text_ip'] = $language->get('text_ip');
		$data['text_order_status'] = $language->get('text_order_status');
		$data['text_payment_address'] = $language->get('text_payment_address');
		$data['text_shipping_address'] = $language->get('text_shipping_address');
		$data['text_product'] = $language->get('text_product');
		$data['text_model'] = $language->get('text_model');
		$data['text_quantity'] = $language->get('text_quantity');
		$data['text_price'] = $language->get('text_price');
		$data['text_total'] = $language->get('text_total');
		$data['text_footer'] = $language->get('text_footer');
		$data['text_footer'] = $language->get('text_footer');

		$data['logo'] = $order_info['store_url'] . 'image/' . $this->config->get('config_logo');
		$data['store_name'] = $order_info['store_name'];
		$data['firstname'] = $order_info['firstname'];
		$data['lastname'] = $order_info['lastname'];
	
		$data['store_url'] = $order_info['store_url']; 
		$data['customer_id'] = $order_info['customer_id'];
		$data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id'];

		if ($download_status) {
			$data['download'] = $order_info['store_url'] . 'index.php?route=account/download';
		} else {
			$data['download'] = '';
		}

		$data['order_id'] = $order_info['order_id'];
		$data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added']));
		$data['payment_method'] = $order_info['payment_method'];
		$data['shipping_method'] = $order_info['shipping_method'];
		$data['email'] = $order_info['email'];
		$data['telephone'] = $order_info['telephone'];
		$data['ip'] = $order_info['ip'];

		$order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'");
	
		if ($order_status_query->num_rows) {
			$data['order_status'] = $order_status_query->row['name'];
		} else {
			$data['order_status'] = '';
		}

		if ($comment && $notify) {
			$data['comment'] = nl2br($comment);
		} else {
			$data['comment'] = '';
		}

		if ($order_info['payment_address_format']) {
			$format = $order_info['payment_address_format'];
		} else {
			$format = '<b>ФИО:</b> {firstname} {lastname}</br>' . "\n" . '<b>Компания</b>: {company}' . "\n" . '<b>Адрес:</b> {address_1}' . "\n" . '{address_2}' . "\n" . '<b>Город:</b> {city} {postcode}</br>' . "\n" . '<b>Область / край</b> {zone}</br>' . "\n" . '<b>Страна</b> {country}';
		}

		$find = array(
			'{firstname}',
			'{lastname}',
			'{company}',
			'{address_1}',
			'{address_2}',
			'{city}',
			'{postcode}',
			'{zone}',
			'{zone_code}',
			'{country}'
		);

		$replace = array(
			'firstname' => $order_info['payment_firstname'],
			'lastname'  => $order_info['payment_lastname'],
			'company'   => $order_info['payment_company'],
			'address_1' => $order_info['payment_address_1'],
			'address_2' => $order_info['payment_address_2'],
			'city'      => $order_info['payment_city'],
			'postcode'  => $order_info['payment_postcode'],
			'zone'      => $order_info['payment_zone'],
			'zone_code' => $order_info['payment_zone_code'],
			'country'   => $order_info['payment_country']
		);

		$data['payment_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format))));

		if ($order_info['shipping_address_format']) {
			$format = $order_info['shipping_address_format'];
		} else {
			$format = '<b>ФИО:</b> {firstname} {lastname}</br>' . "\n" . '<b>Компания</b>: {company}' . "\n" . '<b>Адрес:</b> {address_1}' . "\n" . '{address_2}' . "\n" . '<b>Город:</b> {city} {postcode}</br>' . "\n" . '<b>Область / край</b> {zone}</br>' . "\n" . '<b>Страна</b> {country}';
		}

		$find = array(
			'{firstname}',
			'{lastname}',
			'{company}',
			'{address_1}',
			'{address_2}',
			'{city}',
			'{postcode}',
			'{zone}',
			'{zone_code}',
			'{country}'
		);

		$replace = array(
			'firstname' => $order_info['shipping_firstname'],
			'lastname'  => $order_info['shipping_lastname'],
			'company'   => $order_info['shipping_company'],
			'address_1' => $order_info['shipping_address_1'],
			'address_2' => $order_info['shipping_address_2'],
			'city'      => $order_info['shipping_city'],
			'postcode'  => $order_info['shipping_postcode'],
			'zone'      => $order_info['shipping_zone'],
			'zone_code' => $order_info['shipping_zone_code'],
			'country'   => $order_info['shipping_country']
		);

		$data['shipping_address'] = str_replace(array("\r\n", "\r", "\n"), '<br />', preg_replace(array("/\s\s+/", "/\r\r+/", "/\n\n+/"), '<br />', trim(str_replace($find, $replace, $format))));

		if ($order_info['shipping_address_format']) {
			$format = $order_info['shipping_address_format'];
		} else {
			$format = '<b>ФИО:</b> {firstname} {lastname}</br>' . "\n" . '<b>Компания</b>: {company}' . "\n" . '<b>Адрес:</b> {address_1}' . "\n" . '{address_2}' . "\n" . '<b>Город:</b> {city} {postcode}</br>' . "\n" . '<b>Область / край</b> {zone}</br>' . "\n" . '<b>Страна</b> {country}';
		}
		
		$this->load->model('tool/upload');

		// Products
		$data['products'] = array();

		foreach ($order_products as $order_product) {
			$option_data = array();

			$order_options = $this->model_checkout_order->getOrderOptions($order_info['order_id'], $order_product['order_product_id']);

			foreach ($order_options as $order_option) {
				if ($order_option['type'] != 'file') {
					$value = $order_option['value'];
				} else {
					$upload_info = $this->model_tool_upload->getUploadByCode($order_option['value']);

					if ($upload_info) {
						$value = $upload_info['name'];
					} else {
						$value = '';
					}
				}

				$option_data[] = array(
					'name'  => $order_option['name'],
					'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)
				);
			}

			$this->load->model('catalog/product');			
			$product_gcategory = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category p2c LEFT JOIN " . DB_PREFIX . "category_description cd ON (p2c.category_id = cd.category_id) WHERE p2c.product_id = '" . (int)$order_product['product_id'] . "'");			
			$this->load->model('tool/image');
			$product_qimage = $this->db->query("SELECT image FROM " . DB_PREFIX . "product WHERE product_id = '" . (int)$order_product['product_id'] . "'");			
			$product_category = $product_gcategory->row['category_id']; 
			 
			$product_category_name = $product_gcategory->row['name']; 
			$product_image = $product_qimage->row['image']; 
			$data['products'][] = array(
				'name'     => $order_product['name'],
				'model'    => $order_product['model'],			 
				'href'        => $this->url->link('product/product', 'product_id=' . $order_product['product_id']),
				'href_cat'   => $this->url->link('product/category&path='. $product_category),
				'name_cat'	=>  $product_category_name, 
				'thumb'     => $this->model_tool_image->resize($product_image, 70, 70), 			
				'option'   => $option_data,
				'quantity' => $order_product['quantity'],
				'price'    => $this->currency->format($order_product['price'] + ($this->config->get('config_tax') ? $order_product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
				'total'    => $this->currency->format($order_product['total'] + ($this->config->get('config_tax') ? ($order_product['tax'] * $order_product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value'])
			);
		}

		// Vouchers
		$data['vouchers'] = array();

		$order_vouchers = $this->model_checkout_order->getOrderVouchers($order_info['order_id']);

		foreach ($order_vouchers as $order_voucher) {
			$data['vouchers'][] = array(
				'description' => $order_voucher['description'],
				'amount'      => $this->currency->format($order_voucher['amount'], $order_info['currency_code'], $order_info['currency_value']),
			);
		}

		// Order Totals
		$data['totals'] = array();
		
		$order_totals = $this->model_checkout_order->getOrderTotals($order_info['order_id']);

		foreach ($order_totals as $order_total) {
			$data['totals'][] = array(
				'title' => $order_total['title'],
				'text'  => $this->currency->format($order_total['value'], $order_info['currency_code'], $order_info['currency_value']),
			);
		}
	
		$this->load->model('setting/setting');
		
		$from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']);
		
		if (!$from) {
			$from = $this->config->get('config_email');
		}
		
		$mail = new Mail($this->config->get('config_mail_engine'));
		$mail->parameter = $this->config->get('config_mail_parameter');
		$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
		$mail->smtp_username = $this->config->get('config_mail_smtp_username');
		$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
		$mail->smtp_port = $this->config->get('config_mail_smtp_port');
		$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

		$mail->setTo($order_info['email']);
		$mail->setFrom($from);
		$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
		$mail->setSubject(html_entity_decode(sprintf('[Новый Мир] Ваш заказ', $this->config->get('config_name'), $order_info['order_id']), ENT_QUOTES, 'UTF-8'));
		$mail->setHtml($this->load->view('mail/order_add', $data));
		$mail->send();
		
		
		$mail->setTo($this->config->get('config_email'));
		$mail->setFrom($this->config->get('config_email'));
		$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
		$mail->setSubject(html_entity_decode(sprintf('[Новый Мир] Новый заказ', $this->config->get('config_name'), $order_info['order_id']), ENT_QUOTES, 'UTF-8'));
		$mail->setHtml($this->load->view('mail/order_alert', $data));
		$mail->send();
		 
	}
	
	public function edit($order_info, $order_status_id, $comment) {
		$language = new Language($order_info['language_code']);
		$language->load($order_info['language_code']);
		$language->load('mail/order_edit');

		$data['text_order_id'] = $language->get('text_order_id');
		$data['text_date_added'] = $language->get('text_date_added');
		$data['text_order_status'] = $language->get('text_order_status');
		$data['text_link'] = $language->get('text_link');
		$data['text_comment'] = $language->get('text_comment');
		$data['text_footer'] = $language->get('text_footer');

		$data['order_id'] = $order_info['order_id'];
		$data['date_added'] = date($language->get('date_format_short'), strtotime($order_info['date_added']));
		
		$order_status_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "order_status WHERE order_status_id = '" . (int)$order_status_id . "' AND language_id = '" . (int)$order_info['language_id'] . "'");
	
		if ($order_status_query->num_rows) {
			$data['order_status'] = $order_status_query->row['name'];
		} else {
			$data['order_status'] = '';
		}

		if ($order_info['customer_id']) {
			$data['link'] = $order_info['store_url'] . 'index.php?route=account/order/info&order_id=' . $order_info['order_id'];
		} else {
			$data['link'] = '';
		}

		$data['comment'] = strip_tags($comment);

		$this->load->model('setting/setting');
		
		$from = $this->model_setting_setting->getSettingValue('config_email', $order_info['store_id']);
		
		if (!$from) {
			$from = $this->config->get('config_email');
		}
		
		$mail = new Mail($this->config->get('config_mail_engine'));
		$mail->parameter = $this->config->get('config_mail_parameter');
		$mail->smtp_hostname = $this->config->get('config_mail_smtp_hostname');
		$mail->smtp_username = $this->config->get('config_mail_smtp_username');
		$mail->smtp_password = html_entity_decode($this->config->get('config_mail_smtp_password'), ENT_QUOTES, 'UTF-8');
		$mail->smtp_port = $this->config->get('config_mail_smtp_port');
		$mail->smtp_timeout = $this->config->get('config_mail_smtp_timeout');

		$mail->setTo($order_info['email']);
		$mail->setFrom($from);
		$mail->setSender(html_entity_decode($order_info['store_name'], ENT_QUOTES, 'UTF-8'));
		$mail->setSubject(html_entity_decode(sprintf('[Новый Мир] Новый тест заказ', $this->config->get('config_name'), $order_info['order_id']), ENT_QUOTES, 'UTF-8'));
		$mail->setText($this->load->view('mail/order_edit', $data));
		$mail->send();
	}
	

}

 

Edited by AleksLex
  • +1 1
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.