Jump to content

Recommended Posts

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

 

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

 

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

 

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

Share this post


Link to post
Share on other sites

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

нужно добавить строчку в файл 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!="мой текст") { ?> 
 
все описанное применимо к карточке товара. для других разделов делается аналогично.
 
бутылочку пива можете пожертвовать в разделе "Пожертвования" этого форума :-)

Share this post


Link to post
Share on other sites

 

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

нужно добавить строчку в файл 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!="мой текст") { ?> 
 
все описанное применимо к карточке товара. для других разделов делается аналогично.
 
бутылочку пива можете пожертвовать в разделе "Пожертвования" этого форума :-)

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

$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')
);
}

 

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

Share this post


Link to post
Share on other sites

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

в этом случае нужно добавить строчку в файл 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 } ?>
 

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

 

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

 

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

 

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

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

 

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

На WebMoney

Share this post


Link to post
Share on other sites

пардон, таблица 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],

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

 

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Готовое решение

Крутая штука. То что было нужно. В след проекте использую

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.