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

SKU в заказе товара админка


Recommended Posts

Ребята подскажите пожалуйста, как добавить вывод SKU  в карточке заказа в админке.

 

post-677115-0-37426200-1416846758_thumb.jpg

 

Может кто сталкивался и знает ссылку на ресурс, где это описано.

 

$$$ Готов платить за урок $$$

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


через админку это никак не делается.

нужно добавить строчку в файл catalog\controller\product]product.php:

$this->data['sku'] = $product_info['sku'];

перед (например):

if ((float)$product_info['special']) {
 
и в product.tpl (в том месте где это необходимо) добавить вывод:
<?php if ($sku) { ?>  
        Мой текст:  <?php echo $sku; ?>  
<?php } ?>
 
условие вывода дано для примера, у вас могут быть свои критерии отображение например <?php if ($sku!="мой текст") { ?> 
 
все описанное применимо к карточке товара. для других разделов делается аналогично.
 
бутылочку пива можете пожертвовать в разделе "Пожертвования" этого форума :-)
Надіслати
Поділитися на інших сайтах

 

через админку это никак не делается.

нужно добавить строчку в файл catalog\controller\product]product.php:

$this->data['sku'] = $product_info['sku'];

перед (например):

if ((float)$product_info['special']) {
 
и в product.tpl (в том месте где это необходимо) добавить вывод:
<?php if ($sku) { ?>  
        Мой текст:  <?php echo $sku; ?>  
<?php } ?>
 
условие вывода дано для примера, у вас могут быть свои критерии отображение например <?php if ($sku!="мой текст") { ?> 
 
все описанное применимо к карточке товара. для других разделов делается аналогично.
 
бутылочку пива можете пожертвовать в разделе "Пожертвования" этого форума :-)

 

Простите может я чего не допонял. Мне нужно вывести в админке этот параметр, а по пути видно, что вы предлагаете править контроллер не для админки.

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


так в админке он у вас и так есть. Карточка товара - закладка "Данные". В последней версии оно прячется под на второй строке под "Показать/скрыть"

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

так в админке он у вас и так есть. Карточка товара - закладка "Данные". В последней версии оно прячется под на второй строке под "Показать/скрыть"

В админке просмотра заказа. На скрине посмотрите пожалуйста.

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


$this->data['products'] = array();

$products = $this->model_sale_order->getOrderProducts($this->request->get['order_id']);

//подключение модели для вывода доп полей для товара
$this->load->model('catalog/product');

//запрос к бд для вывода доп полей для товара
$this->model_catalog_product->getProduct($product['product_id']);

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

$options = $this->model_sale_order->getOrderOptions($this->request->get['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=' . $this->request->get['order_id'] . '&order_option_id=' . $option['order_option_id'], 'SSL')
);
}
}



$this->data['products'][] = array(
'order_product_id' => $product['order_product_id'],
'product_id'       => $product['product_id'],
'name'       => $product['name'],
'sku'       => $product['sku'],
'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']),
'href'       => $this->url->link('catalog/product/update', 'token=' . $this->session->data['token'] . '&product_id=' . $product['product_id'], 'SSL')
);
}

 

Модель подключил, запрос к БД сделал, добавляю в массив и ничего(((

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


я же сказал еще в первом ответе - все остальное по аналогии:

в этом случае нужно добавить строчку в файл admin\controller\sale\order.php:

в цикле:

$this->data['order_products'][] = array(
'order_product_id' => $order_product['order_product_id'],
'product_id'       => $order_product['product_id'],
'name'             => $order_product['name'],
'model'            => $order_product['model'],
'option'           => $order_option,
'download'         => $order_download,
'quantity'         => $order_product['quantity'],
'price'            => $order_product['price'],
'total'            => $order_product['total'],
'tax'              => $order_product['tax'],
'reward'           => $order_product['reward']
);
 
добавить после 'price'    =>  $order_product['price'], строку
'sku' =>  $order_product['sku],
 
и в admin\view\template\sale\order_form.tpl  (в том месте где это необходимо) добавить вывод:
<?php if ($order_products['sku]) { ?>  
        Мой текст:  <?php echo $order_products['sku]; ?>  
<?php } ?>
 
Надіслати
Поділитися на інших сайтах

Это все понятно. Только не получается.

Так как данные для этого контроллера вытягиваются из таблицы в БД order_products.

А в этого поля там нет.

Соответственно делая так вылетает ошибка о несуществующей переменной.

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


Привет. Нужна помощь. Готов благодарить $$$

 

Нужно добавить вывод Артикула (SKU) и Тегов в карточке товара в админке.

 

Зачем не спрашивайте! Очень надо!

 

post-677115-0-84334100-1416916372_thumb.jpg

 

Напишите решение прямо здесь в формате: это поставить после этого и так далее.

Или пришлите в ЛС.

 

Готов благодарить 400 рублей

На WebMoney

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


пардон, таблица order_product не содержит этого поля.

его нужно вытянуть отдельно из таблицы product используя id продукта либо

-прямым запросом к таблицеt, либо 

- в функции model_sale_order->getOrderProducts сделать join по  id продукта, либо

- вызвав        $product_info = $this->model_catalog_product->getProduct($order_product['order_product_id']); и

добавить после 'price'    =>  $...., строку

'sku' =>  $product_info['sku],
Надіслати
Поділитися на інших сайтах

тягать тучу данных о товаре ради артикула - глупо.

к тому же - в заказе могут быть товары, которые уже были УДАЛЕНЫ из базы.

добавляй поле в таблицу, добавляй его [заполнение/отображение] при [создании/редактировании] заказов (везде! много!), делай по сообщ.#7, радуйся жизни.

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

Спасибо ребята. Очень помогли. Буду так пробовать.

 

тягать тучу данных о товаре ради артикула - глупо.
к тому же - в заказе могут быть товары, которые уже были УДАЛЕНЫ из базы.

добавляй поле в таблицу, добавляй его [заполнение/отображение] при [создании/редактировании] заказов (везде! много!), делай по сообщ.#7, радуйся жизни.

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


Вот для 1.5.1.3 описывал: http://rb.labtodo.com/page/opencart-1513-backend-orders-sku-v-spiske-tovarov

Но там как раз то, про что afwollis говорил: берётся текущий SKU товара из базы, а не сохраняется-копируется при заказе. Заказчика эти оговорки устраивали, но вообще решение не универсальное, конечно. Лучше сделать надёжней, но это ещё кучку мест найти, модифицировать и проверить придётся.

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


  • 4 weeks later...

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

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

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

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

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

Вхід

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

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

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

Important Information

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