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

Название товара и цена за товар в истории заказа опенкарт?


RimiderWeb
 Share

Recommended Posts

Как вывести название товара и цену за товар , в историю заказа опенкарт. на страницу /order. Там где отображаются все заказы . По умолчанию выводится только при просмотре конкретного заказа. 

Link to comment
Share on other sites


9 часов назад, RimiderWeb сказал:

Как вывести название товара и цену за товар , в историю заказа опенкарт. на страницу /order. Там где отображаются все заказы . По умолчанию выводится только при просмотре конкретного заказа. 

 

Аналогично странице order, смотрите там вывод, делайте в списке, вероятно придется дополнительно получить товары для вывода в список

Link to comment
Share on other sites

2 часа назад, Tom сказал:
Цитата

 

Знаю, это удобные плагины для админа. А мне нужны для витрины. Вот как например есть плагины, для упрошенного оформления заказа, которые все этапы заказа переводят на одну страницу, берут нужные переменные с разных страниц и выводят их на одну . Моя же задача. В личном кабинете пользователя есть история заказов и кнопка справа  просмотр информации по заказу. (order/info) .Вот мне нужно все переменные с заказа   перенести в историю заказов. Таким образом получить одну страницу, на которой выводятся все заказы пользователя, с подробной информацией. Хотя по факту нужно не все,. А хотябы перенести имя товара, и цену за товар

Edited by RimiderWeb
Link to comment
Share on other sites


Вроде как, за страницы история заказов ( order_list.tpl) и информация по заказу (order_info.tpl) отвечает один контроллер order.php . Но почему-то не работают переменные из order_info в order_list.  Сделал копию контроллера, подключил свои файлы представления ( контроллер и файлы копия оригинала , работают правильно как и оригинал), и методом эксперимента в контроллере клоне, вроде как понял почему не работают переменные из order_ info .Они находятся внутри 

public function info() {

и может я конечно совсем нифига не понял, сделал такой вывод. Поскольку находятся внутри этой функции,они больше нигде в файле не определены и  поэтому,они работают только на странице order_info. Да я так перенес переменную     $data['column_name'] это  языковая переменная выводит "название товара", я вынес (копировал) это переменную из конструкции 

public function info() {

в 

public function index() {

и переменная заработала на странице истории заказа (order). А вот тоже самое проделать и вынести имя товара у меня никак не получается(( . Я вот подумал. Мне страница order/info  вообще не нужна, только order ,но чтобы там работали все переменные из order/info. Но я не знаю как их вынести из 

public function info() {

 

Edited by RimiderWeb
Link to comment
Share on other sites


  • 1 year later...
  • 1 year later...

Вывод списка товаров в истории заказов (order_list.twig) OpenCart 3.x

 

В файле контроллера ("/catalog/controller/account/order.php")

 

Найти

 

$data['orders'][] = array(

 

Добавить выше

 

// List Products

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

$products = $this->model_account_order->getOrderProducts($result['order_id']);

foreach ($products as $product) {
    $option_data = array();
    
    $options = $this->model_account_order->getOrderOptions($result['order_id'], $product['order_product_id']);
    
    foreach ($options as $option) {
        if ($option['type'] != 'file') {
            $value = $option['value'];
        } else {
            $upload_info = $this->model_tool_upload->getUploadByCode($option['value']);
            
            if ($upload_info) {
                $value = $upload_info['name'];
            } else {
                $value = '';
            }
        }
        
        $option_data[] = array(
            'name' => $option['name'],
            'value' => (utf8_strlen($value) > 20 ? utf8_substr($value, 0, 20) . '..' : $value)
        );
    }
    
    $data['products'][] = array(
        'name' => $product['name'],
        'href' => $this->url->link('product/product', 'product_id=' . $product['product_id'], true),
        'model' => $product['model'],
        'option' => $option_data,
        'quantity' => $product['quantity'],
        'price' => $this->currency->format($product['price'] + ($this->config->get('config_tax') ? $product['tax'] : 0), $order_info['currency_code'], $order_info['currency_value']),
        'total' => $this->currency->format($product['total'] + ($this->config->get('config_tax') ? ($product['tax'] * $product['quantity']) : 0), $order_info['currency_code'], $order_info['currency_value']),
        'reorder' => $reorder,
        'return' => $this->url->link('account/return/add', 'order_id=' . $order_info['order_id'] . '&product_id=' . $product['product_id'], true)
    );
}

 

Найти

 

'products'   => ($product_total + $voucher_total),

 

Ниже добавить

 

'list'		 => $data['list_products'],

 

 

В файле шаблона ("/catalog/view/theme/default/template/account/order_list.twig")

 

Найти

 

{% for order in orders %}

 

Ниже, в нужном месте (до {% endfor %}), вставить и стилизовать под себя

 

{% for product in order.products %}
<ul>
	<li class="name"><a href="{{ product.href }}">{{ product.name }}</a></li>
	<li class="option">{% for option in product.option %}<br />&nbsp;<small> - {{ option.name }}: {{ option.value }}</small>{% endfor %}</li>
	<li class="model">{{ product.model }}</li>
	<li class="quantity">{{ product.quantity }}</li>
	<li class="price">{{ product.price }}</li>
	<li class="total">{{ product.total }}</li>
	<li class="reorder">{% if product.reorder %}<a href="{{ product.reorder }}">&nbsp;</a>{% endif %}</li>
	<li class="return"><a href="{{ product.return }}">&nbsp;</a></li>
</ul>
{% endfor %}

 

Готово 8-)

Link to comment
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
 Share

×
×
  • 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.