Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] адрес клиента в order list


Recommended Posts

  • 4 weeks later...

Добрый день, реализация чего именно интересует на 2.1? про адрес или товары?)

или не интересует уже?))

  • +1 1
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Добрый день, реализация чего именно интересует на 2.1? про адрес или товары?)

или не интересует уже?))

Меня интересует, как вывести наименование товара в заказе и желательно комментарий (в order list) на 2.1

Пытался по инструкции, но код отличается ((( 

Надіслати
Поділитися на інших сайтах


День добрый.

только что скачал:

Версия ocStore 2.1.0.2.1

Часть 1. Файл order.php

/admin/controller/sale/order.php

У меня правки нужно вносить в районе 159 строки, у вас может по-другому (из-за разности версий), но смысл сохраняется

 

В начале цикла

foreach ($results as $result) {

Вставляем:

$my_order_info = $this->model_sale_order->getOrder($result['order_id']);
$my_products = $this->model_sale_order->getOrderProducts($result['order_id']);

foreach ($my_products as $product) {
    $my_product[] = array(
        'order_product_id' => $product['order_product_id'],
        'product_id'       => $product['product_id'],
        'name'            => $product['name'],
        'model'          => $product['model'],
        'quantity'       => $product['quantity'],
    );
}

Затем в этом же цикле в массив $data['orders'][] добавляем две строки (my_products и my_comment):

$data['orders'][] = array(
                'order_id'      => $result['order_id'],
                'customer'      => $result['customer'],
                'status'        => $result['status'],
                'total'         => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
                'date_added'    => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
                'date_modified' => date($this->language->get('date_format_short'), strtotime($result['date_modified'])),
                'shipping_code' => $result['shipping_code'],
                'view'          => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL'),
                'edit'          => $this->url->link('sale/order/edit', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL'),
                'my_products'    => $my_product,
                'my_comment'    => $my_order_info['comment']
            );

Часть 2. Файл order_list.tpl

 

Сначала добавляем заголовки столбцов, затем собержимое.

для столбца с продуктами:

<td class="text-left">
    <?php
        foreach($order['my_products'] as $my_product){
            echo $my_product['name'] . '<br />';
        }
    ?>
</td>

для столбца с комментом:

<td class="text-left">
    <?=$order['my_comment']?>
</td>

Из массива $my_product можно соответственно вытянуть ID, model, количество, это на ваше усмотрение. оформление поля в самом списке тоже на ваш вкус, можно через список сделать, или как в примере просто <br>'ом

В итоге, в версии 2.1 поменялось только (для данной ситуации, разумеется) расположение места где подгружать информацию о товарах и, соответственно, место впихивания в массив $data

  • +1 2
Надіслати
Поділитися на інших сайтах


		foreach ($results as $result) {
$my_order_info = $this->model_sale_order->getOrder($result['order_id']);
$my_products = $this->model_sale_order->getOrderProducts($result['order_id']);

foreach ($my_products as $product) {
    $my_product[] = array(
        'order_product_id' => $product['order_product_id'],
        'product_id'       => $product['product_id'],
        'name'            => $product['name'],
        'model'          => $product['model'],
        'quantity'       => $product['quantity'],
    );
}
			
			
			$data['orders'][] = array(
				'order_id'      => $result['order_id'],
				'customer'      => $result['customer'],
				'status'        => $result['status'],
				'total'         => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
				'date_added'    => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
				'date_modified' => date($this->language->get('date_format_short'), strtotime($result['date_modified'])),
				'shipping_code' => $result['shipping_code'],
				'view'          => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL'),
				'edit'          => $this->url->link('sale/order/edit', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL'),
				'my_products'    => $my_product,
                'my_comment'    => $my_order_info['comment']
			);
		}

Так?  ЧЧто то у меня ничего не светится (( 

Надіслати
Поділитися на інших сайтах



<td class="text-left"><?php echo $order['status']; ?></td>

<td class="text-right">

<?php

foreach($order['my_products'] as $my_product){

echo $my_product['name'] . '<br />';

}

?>

<?=$order['my_comment']?>

<?php echo $order['total']; ?></td>

<td class="text-left"><?php echo $order['date_added']; ?></td>

<td class="text-left"><?php echo $order['date_modified']; ?></td>

Надіслати
Поділитися на інших сайтах


То есть вы всё засунули в ячейку с Суммой заказа, и там отображается только сама сумма, больше ничего, я правильно понял?

  • +1 1
Надіслати
Поділитися на інших сайтах


а, ну разумеется

 

Должно быть вот так:

        foreach ($results as $result) {
$my_order_info = $this->model_sale_order->getOrder($result['order_id']);
$my_products = $this->model_sale_order->getOrderProducts($result['order_id']);

foreach ($my_products as $product) {
$my_product[] = array(
'order_product_id' => $product['order_product_id'],
'product_id' => $product['product_id'],
'name' => $product['name'],
'model' => $product['model'],
'quantity' => $product['quantity'],
);
}

а у вас это всё (строки 168 - 179 по вашему файлу) ПЕРЕД циклом

внесите в цикл, и всё получится

  • +1 1
Надіслати
Поділитися на інших сайтах


foreach ($results as $result) {
$my_order_info = $this->model_sale_order->getOrder($result['order_id']);
$my_products = $this->model_sale_order->getOrderProducts($result['order_id']);

foreach ($my_products as $product) {
$my_product[] = array(
'order_product_id' => $product['order_product_id'],
'product_id' => $product['product_id'],
'name' => $product['name'],
'model' => $product['model'],
'quantity' => $product['quantity'],
);
}

			
			$data['orders'][] = array(
				'order_id'      => $result['order_id'],
				'customer'      => $result['customer'],
				'status'        => $result['status'],
				'total'         => $this->currency->format($result['total'], $result['currency_code'], $result['currency_value']),
				'date_added'    => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
				'date_modified' => date($this->language->get('date_format_short'), strtotime($result['date_modified'])),
				'shipping_code' => $result['shipping_code'],
				'view'          => $this->url->link('sale/order/info', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL'),
				'edit'          => $this->url->link('sale/order/edit', 'token=' . $this->session->data['token'] . '&order_id=' . $result['order_id'] . $url, 'SSL'),
				'my_products'   => $my_product,
                'my_comment'    => $my_order_info['comment']
			);
		}

Внес и нифига (

очень благодарен, что уделяете мне время

order.php

Змінено користувачем mazdov
Надіслати
Поділитися на інших сайтах


в тпл после   (вверху, у меня это 17я строка)

<div class="container-fluid">

вставьте:

  <div>
  <pre>
  <?php print_r($orders); ?>
  </pre>
  </div>

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

 

 

Предполагаю что админка тестовая, в противном случае замените непубличные данные чем-нибудь типа звездочек, когда будете сюда копировать

Змінено користувачем lakbor
  • +1 1
Надіслати
Поділитися на інших сайтах


Какая то фигня, у меня в order_list стоят цветные заказы, ради эксперимента поменял, цвет одного из статусов заказов, а он не поменялся, хотя гружу файл с сервера и там заменен. пробовал открыть в приватном окне, так все так же, может какой то модуль, запрещает редактирования order_list?

 

 

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

Т.е. сверху вниз

первый заказ: 1 товар

второй заказ: 1 товар и 2 товар 

 

post-717693-0-07655300-1478444860_thumb.jpg

Змінено користувачем mazdov
Надіслати
Поділитися на інших сайтах


Прошу прощения, мой косяк. когда копировал код, прозевал первую строчку

добавьте перед всем тем, что вставляли (но всё ещё в теле цикла):

$my_product = array();

Должно быть вот так:

foreach ($results as $result) {
    $my_product = array();  // вот её я проглядел
    
    $my_order_info = $this->model_sale_order->getOrder($result['order_id']);
    $my_products = $this->model_sale_order->getOrderProducts($result['order_id']);

// и далее как надо
  • +1 1
Надіслати
Поділитися на інших сайтах


 

Прошу прощения, мой косяк. когда копировал код, прозевал первую строчку

добавьте перед всем тем, что вставляли (но всё ещё в теле цикла):

$my_product = array();

Должно быть вот так:

foreach ($results as $result) {
    $my_product = array();  // вот её я проглядел
    
    $my_order_info = $this->model_sale_order->getOrder($result['order_id']);
    $my_products = $this->model_sale_order->getOrderProducts($result['order_id']);

// и далее как надо

Блин, большое тебе спасибо. Даже не думал, что такие как вы еще бывают. Прям выручил. Еще раз огромное человеческое спасибо!

Надіслати
Поділитися на інших сайтах


  • 2 months later...

Добрый день! Похожий вопрос, но мне надо вывести там же поле "company" из таблицы "oc_address", пока не пойму где в модели делать LEFT JOIN :mellow:

OC 1.5.5

Змінено користувачем RSH
Надіслати
Поділитися на інших сайтах


а нафига что-то джойнить для вывода company в списке заказов?

смотрите структуру таблицы order, там есть payment_company/shipping_company - их и выводите

Надіслати
Поділитися на інших сайтах

В 1/27/2017 в 09:30, AlexDW сказал:

а нафига что-то джойнить для вывода company в списке заказов?

смотрите структуру таблицы order, там есть payment_company/shipping_company - их и выводите

payment_company/shipping_company это другие поля, но спасибо, разобрался, сделал так:
 

 $customer_info = $this->model_sale_customer->getAddress($result['address_id']);

            $this->data['customers'][] = array(
                'customer_id'    => $result['customer_id'],
                'name'           => $result['name'],
                'email'          => $result['email'],
                'company'        => $customer_info['company'],
                'customer_group' => $result['customer_group'],
                'status'         => ($result['status'] ? $this->language->get('text_enabled') : $this->language->get('text_disabled')),
                'approved'       => ($result['approved'] ? $this->language->get('text_yes') : $this->language->get('text_no')),
                'ip'             => $result['ip'],
                'date_added'     => date($this->language->get('date_format_short'), strtotime($result['date_added'])),
                'selected'       => isset($this->request->post['selected']) && in_array($result['customer_id'], $this->request->post['selected']),
                'action'         => $action
            );

 

Змінено користувачем RSH
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.