Рекомендуемые сообщения

alone69li    2

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

 

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

 

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ambalocha69    70

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ambalocha69    70

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ambalocha69    70

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

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

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

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

 

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

 

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

 

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

 

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

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

 

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

На WebMoney

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ambalocha69    70

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
afwollis    1 099

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    407

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

Спасибо всем, вопрос решил

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
alone69li    2

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу