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

Отобразить вес заказа в order info


Soberman

Recommended Posts

В модели заказов добавить функцию получения веса заказа (admin/model/sale/order.php)

В контроллере заказов добавить в исходящий массив данные (admin/controller/sale/order.php)

В шаблоне заказа использовать переменную (admin/view/template/sale/order_info.tpl)

 

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

admin\model\sale\order.php

public function getOrderWeight($order_id) {

$query = $this->db->query("SELECT SUM(p.weight * op.quantity) AS weight 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 . "'");

if ($query->row['weight']) {
$weight = $query->row['weight'];
} else {
$weight = 0;
}

return $weight;
}

 

admin\controller\sale\order.php

$data['weight'] = $this->model_sale_order->getOrderWeight($this->request->get['order_id']);

 

admin\view\template\sale\order_info.tpl

<?php echo $weight; ?>

 

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

3 часа назад, ocdroid сказал:

SELECT SUM(p.weight * op.quantity) AS weight

 

будет работать только если формат веса у всех товаров в магазине одинаков

при разных - будет ерунда

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

@AlexDW А если функция будет такой, более универсально?

public function getOrderWeight($order_id) {
$weight=0;
$query = $this->db->query("SELECT p.weight, op.quantity, p.weight_class_id 
    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 . "'");	  				
    foreach ($query->rows as $row) {
    $weight += $this->weight->convert($row['weight'] * $row['quantity'], $row['weight_class_id'], 1); }
    return $weight;
    } 

 

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

10 часов назад, ocdroid сказал:

admin\controller\sale\order.php


$data['weight'] = $this->model_sale_order->getOrderWeight($this->request->get['order_id']);

А в ккое место кода это вставить? 

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


2 часа назад, PaulKravchenko сказал:

примерно туда где и собираются данные о заказе

ищите например $data['shipping_method'] = $order_info['shipping_method'];

Куда бы ни воткнул (два места есть с такой строкой) , после сброса модификаторов при попытке входа в заказы выдает ошибку на строку кода чуть ниже

 

Спойлер

Parse error: syntax error, unexpected ''weight'' (T_CONSTANT_ENCAPSED_STRING), expecting ']' in /var/www/a61635/data/www/aromadoma.ru/system/storage/modification/admin/controller/sale/order.php on line 958

 

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


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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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