Перейти к содержанию
knyazev

история заказов в списке заказов

Рекомендуемые сообщения

Добрый день!

Пытаюсь вывести в списке заказов колонку с историей (комментариями админа к заказам).

В контроллере и шаблоне все прописал, но никак не выводит... С комментариями пользователя все показывает, а как прикрутить админские?

Может модуль есть какой или кто подскажет как это сделать? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вам вероятно нужны данные из обеих таблиц: customer_history и order_history

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне нужно только ту историю, которую правит админ в заказе. Чтобы заходя в список заказов была колонка с комментом администратора и не надо было нажимать просмотр или правка заказа.

Я понимаю, что нужно в контроллере и шаблоне переменные прописать...Но ничего не получается. Пробовал делать по аналогии с именем, но пишет undefined 'history'. 

Как эту хистори объявить в контроллере и шаблоне, чтобы сработало?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть вот такой допиленный vqmod. Пробовал сюда добавить переменные связанные с order_history, но не знаю как сделать запрос select по таблице order_history.

<file name="admin/model/sale/order.php">
		<operation error="log">
			<search position="replace"><![CDATA[
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `" . DB_PREFIX . "order` o";
			]]></search>
			<add><![CDATA[
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname) AS customer, (SELECT os.name FROM " . DB_PREFIX . "order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '" . (int)$this->config->get('config_language_id') . "') AS status, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified, o.telephone, o.shipping_country, o.shipping_zone, o.shipping_address_1, o.shipping_city, o.email, o.comment, o.payment_postcode, o.payment_method, o.shipping_method FROM `" . DB_PREFIX . "order` o";
			]]></add>
		</operation>
		<operation error="log">
			<search position="before"><![CDATA[
public function getOrderProducts($order_id) {
			]]></search>
			<add><![CDATA[
	public function getOrderProductsList($order_id) {
		$query = $this->db->query("SELECT op.*, p.image FROM " . DB_PREFIX . "order_product op LEFT JOIN " . DB_PREFIX . "product p ON op.product_id = p.product_id WHERE op.order_id = '" . (int)$order_id . "'");
		
		return $query->rows;
	}
			]]></add>
		</operation>
	</file>
	<file name="admin/controller/sale/order.php">
		<operation error="log">
			<search position="before"><![CDATA[
$action = array();
			]]></search>
			<add><![CDATA[
		    $this->load->model('tool/image');
		
		    $this->data['products'] = array();

			$order_id = $result['order_id'];
			
			$products = $this->model_sale_order->getOrderProductsList($result['order_id']);

			foreach ($products as $product) {
				$option_data = array();

				$options = $this->model_sale_order->getOrderOptions($result['order_id'], $product['order_product_id']);

				foreach ($options as $option) {
					if ($option['type'] != 'file') {
						$option_data[] = array(
							'name'  => $option['name'],
							'value' => $option['value'],
							'type'  => $option['type']
						);
					} else {
						$option_data[] = array(
							'name'  => $option['name'],
							'value' => utf8_substr($option['value'], 0, utf8_strrpos($option['value'], '.')),
							'type'  => $option['type'],
							'href'  => $this->url->link('sale/order/download', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . '&order_option_id=' . $option['order_option_id'], 'SSL')
						);						
					}
				}

				$this->data['products'][] = array(
					'order_product_id' => $product['order_product_id'],
					'order_id'         => $order_id,
					'product_id'       => $product['product_id'],
					'name'    	 	   => $product['name'],
					'popup'    	 	   => $this->model_tool_image->resize($product['image'], 500, 500),
					'thumb'    	 	   => $this->model_tool_image->resize($product['image'], 50, 50),
					'model'    		   => $product['model'],
					'option'   		   => $option_data,
					'quantity'		   => $product['quantity'],
					'price'    		   => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0)),
					'href'     		   => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $product['product_id'], 'SSL')
				);
			}
			]]></add>
		</operation>
		<operation error="log">
			<search position="after"><![CDATA[
$result['customer'],
			]]></search>
			<add><![CDATA[
				'telephone'   		 => $result['telephone'],	
				'email'              => $result['email'],
				'products'           => $this->data['products'],
				
			]]></add>
		</operation>
	</file>
	<file name="admin/view/template/sale/order_list.tpl">
		<operation error="log">
			<search position="before"><![CDATA[
<td class="left"><?php if ($sort == 'status') { ?>
			]]></search>
			<add><![CDATA[
<td class="left">Контакты</td>
<td class="left">Товары</td>
			]]></add>
		</operation>
		<operation error="log">
			<search position="before"><![CDATA[
<td><select name="filter_order_status_id">
			]]></search>
			<add><![CDATA[
<td></td><td></td>
			]]></add>
		</operation>
		<operation error="log">
			<search position="after"><![CDATA[
<td class="left"><?php echo $order['customer']; ?></td>
			]]></search>
			<add><![CDATA[
              <td class="left">
			  <?php if ($order['telephone']) { ?>
			  <b>Телефон:</b></br>
			  <?php echo $order['telephone']; ?></br></br>
			  <?php } ?>
			  <?php if ($order['email']) { ?>
			  <b>Email:</b></br>
			  <?php echo $order['email']; ?></br></br>
			  <?php } ?>  
			  </td>
			  <td class="left">
               <?php foreach ($order['products'] as $product) { ?>
                <div style="clear: both;">
				<?php if ($product['thumb']) { ?><div style="float: left;"><a href="<?php echo $product['popup']; ?>" class="colorbox"><img style="border: 1px solid #DDDDDD; margin-right: 3px;" src="<?php echo $product['thumb']; ?>" id="image" /></a></div><?php } ?>
				[ <?php echo $product['model']; ?> ] <a href="<?php echo $product['href']; ?>" target="_blank"><?php echo $product['name']; ?></a></br>
                <?php foreach ($product['option'] as $option) { ?>
                <?php if ($option['type'] != 'file') { ?>
                 <small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?></small>
                <?php } else { ?>
                 <small> - <?php echo $option['name']; ?>: <a href="<?php echo $option['href']; ?>"><?php echo $option['value']; ?></a></small>
                <?php } ?></br>
                <?php } ?> ( <?php echo $product['price']; ?> x <?php echo $product['quantity']; ?> )
				</div></br></br>
               <?php } ?>
			  
			  </td>
			]]></add>
		</operation>
		<operation error="log">
			<search position="before"><![CDATA[
<?php echo $footer; ?>
			]]></search>
			<add><![CDATA[
<link rel="stylesheet" type="text/css" href="view/javascript/jquery/colorbox/colorbox.css" media="screen" />
<script type="text/javascript" src="view/javascript/jquery/colorbox/jquery.colorbox-min.js"></script>
<script type="text/javascript"><!--
$(document).ready(function() {
	$('.colorbox').colorbox({
		overlayClose: true,
		opacity: 0.5,
		rel: "colorbox"
	});
});
//--></script> 
			]]></add>
		</operation>
	</file>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.