Перейти к содержанию
webreaktor

Как вывести SKU в таблице на странице "Корзина покупок"

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

На странице товара все получается, но к сожалению такой же фокус не проходит с корзиной. Хочу вывести артикул товара

В массив в файле контролера добавил sku и на странице вывода соответственно тоже. В базе значение есть иначе не вывелось бы на странице товара

Не выходит каменный цветок, нужна помощь!

Заранее спасибо!

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


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

SKU в всплывающей корзине или же при оформлении заказа? Если второе ,то есть готовое решение.

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


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

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

Для страницы корзины нет модели, для заказа есть (catalog/model/checkout/order.php)

Должна быть модель (catalog/model/checkout/cart.php)

Какие нибудь еще варианты есть подключить?

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


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

Не решили проблему? Тоже интересует данная тема,только в корзину нужно добавить Производителя..

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


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

К сожалению пока нет! Буду пробовать после праздников выводить переменные в контроллер, как получится, отпишу. Точнее выложу решение! Если Вы сможете до этого времени накопать что-нибудь, пишите, буду рад за наводку.

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


Ссылка на сообщение
Поделиться на другие сайты
Не выходит каменный цветок, нужна помощь! Заранее спасибо!

Решение не трудное

Изменено пользователем kegel

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


Ссылка на сообщение
Поделиться на другие сайты
Не выходит каменный цветок, нужна помощь! Заранее спасибо!

Решение не трудное

В system\library\cart.php добавляем элемент в массив $this->data[$key] = array(
'sku'			 => $product_query->row['sku'],
затем в catalog\controller\checkout\cart.php также добавляем в массив $this->data['products'][] = array(
'sku'	 => $product['sku'],
и выводим в нужном месте в файлах catalog\view\theme\default\template\checkout\cart.tpl  (для простой корзины) и catalog\view\theme\default\template\module\cart.tpl   (для всплывающей)
примерно так
<?php if ($product['sku']) { ?>
  <p><?php echo $product['sku']; ?>
		    <?php } ?></p>

  • +1 1

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


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

Решение не трудное

В system\library\cart.php добавляем элемент в массив $this->data[$key] = array(
'sku'			 => $product_query->row['sku'],
затем в catalog\controller\checkout\cart.php также добавляем в массив $this->data['products'][] = array(
'sku'	 => $product['sku'],
и выводим в нужном месте в файлах catalog\view\theme\default\template\checkout\cart.tpl  (для простой корзины) и catalog\view\theme\default\template\module\cart.tpl   (для всплывающей)
примерно так
<?php if ($product['sku']) { ?>
  <p><?php echo $product['sku']; ?>
			<?php } ?></p>

доброго времени суток.Не получается вывести поставщика в корзине.. :cry: ,id поставщика легко а вот имя поставщика не как..пните пожалуйста в нужном направлении :-)

  • +1 1

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


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

В system\library\cart.php перед $this->data[$key] = array(

добавляем

$manuf_name_query = $this->db->query("SELECT name FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . " manufacturer ma ON (p.manufacturer_id = ma.manufacturer_id) WHERE p.product_id = '" . (int)$product_id . "'");
 if ($manuf_name_query->num_rows) {
  $manname = $manuf_name_query->row['name'];
 } else {
  $manname = 0;
 }

Затем в массиве $this->data[$key] = array(

добавляем

'manname'		 => $manname,

потом в catalog\controller\checkout\cart.php добавляем в массив $this->data['products'][] = array(

'manname'  => $product['manname'],

и выводим его в корзине catalog\view\theme\default\template\checkout\cart.tpl (для простой корзины) и сatalog\view\theme\default\template\module\cart.tpl (для всплывающей)

<?php if ($product['manname']) { ?>   <
p><?php echo $product['manname']; ?>							   
<?php } ?></p>

Потестируйте, так как не знаю правильно ли я запрос сделал(выводит то что надо, но мало ли), надо чтобы более опытные уч. форума запрос проверили. Удачи!

  • +1 2

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


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

Дружище огромное спасибо за помощь. :-) Работает.

Таким же способом пытаюсь вывести поставщика в заказах -файлы "ORDER" не работает :cry: ,опять всю голову сломал...почему так

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


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

вывести поставщика в заказах

Заказы в админке? Где именно надо вывести?

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


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

Заказы в админке? Где именно надо вывести?

Привет.Не в админке...В истории заказов в личном кабинете покупателя.К каждой заказанной позиции кроме "model" , "price" и т.д. привязать и поставщика

файл вывода catalog\view\theme\default\template\account\order_info.tpl

файлы обработки \catalog\model\account\order.php и \catalog\controller\account\order.php

как добавить поля "поставшик" понимаю,а вот от куда выдергивать данные не понимаю.Как правильно оформить запрос к базе...?

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


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

И так, начнем :-)

В \catalog\model\account\order.php добавляем функцию

public function getOrderManufact($order_id, $order_product_id) {
 $query = $this->db->query("SELECT ma.name FROM " . DB_PREFIX . "manufacturer ma JOIN product USING (manufacturer_id) JOIN order_product USING (product_id) WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$order_product_id . "'");

 return $query->rows;
}

В \catalog\controller\account\order.php добавляем приблизительно между строчками 214-217

	$this->data['column_name'] = $this->language->get('column_name');
	$this->data['column_model'] = $this->language->get('column_model');
$this->data['column_manuf'] = $this->language->get('column_manuf');
	$this->data['column_quantity'] = $this->language->get('column_quantity');
	$this->data['column_price'] = $this->language->get('column_price');

и перед $this->data['products'][] = array(

$manufs = $this->model_account_order->getOrderManufact($this->request->get['order_id'], $product['order_product_id']);
$manuf['name'] = '';
		 foreach ($manufs as $manuf) {
		 $manuf_data[] = array(
		 'name' => $manuf['name']
		);
  }

а также в $this->data['products'][] = array( после 'model' => $product['model'],

'manuf'	=> $manuf['name'],

В файле \catalog\language\russian\account\order.php добавляем после 28строки нужное название

$_['column_manuf']		  = 'Поставщик';

и заключительный шаг выводим в catalog\view\theme\default\template\account\order_info.tpl

	<td class="left"><?php echo $column_name; ?></td>
	<td class="left"><?php echo $column_model; ?></td>
<td class="left"><?php echo $column_manuf; ?></td>
	<td class="right"><?php echo $column_quantity; ?></td>

и

 <td class="left"><?php echo $product['model']; ?></td>
<td class="left"><?php echo $product['manuf']; ?></td>
  <td class="right"><?php echo $product['quantity']; ?></td>

Надеюсь это то что Вам надо. :-)

  • +1 1

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


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

Спасибо.Помогло. :-) Не как не могу освоить правильное построение запроса к базе...с сопоставлением таблиц.Читаю мануалы кажется все понимаю,начинаю составлять запрос - не работает..Будем набираться опыта :-) .Еще раз благодарю.

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


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

Да, мне также не хватает опыта в работе с движком. Если есть желание може вместе разбираться в нем. Если не против жду сообщение в личку.

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


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

А не будет с моей стороны наглостью спросить вас как вывести sku в истории заказов в личном кабинете покупателя, так же как и производителя?

Заранее спасибо!

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


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

Полная аналогия поста 14 только нужно поменять manuf на sku

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


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

К сожалению вариант с постом 14 не проходит, там берется id производителя и сравнивается с таблицей производителя, я думаю надо как-то перестроить запрос в модуле, только как не знаю

public function getOrderManufact($order_id, $order_product_id) {
 $query = $this->db->query("SELECT ma.name FROM " . DB_PREFIX . "manufacturer ma JOIN product USING (manufacturer_id) JOIN order_product USING (product_id) WHERE order_id = '" . (int)$order_id . "' AND order_product_id = '" . (int)$order_product_id . "'");

 return $query->rows;
}

Я пробовал так, но ничего не получилось

public function getOrderSku($order_id, $order_product_id) {
  $query = $this->db->query("SELECT op.*,p.sku FROM " . DB_PREFIX . "order_product op LEFT JOIN ".DB_PREFIX."product p ON (op.product_id = p.product_id)  WHERE order_id = '" . (int)$order_id . "'");

 return $query->rows;
}

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


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

тож самое с запросами...не силен :-) .Сейчас попросим человечка..думаю не откажет в помощи.Сообщю.. :wink:

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


Ссылка на сообщение
Поделиться на другие сайты
тож самое с запросами...не силен :-)/> .Сейчас попросим человечка..думаю не откажет в помощи.Сообщю.. :wink:/>

Моя ошибка, запрос я правильно написал, просто в массиве в контроллере по привычке писал

	   	 $this->data['products'][] = array(
				  'name'	 => $product['name'],
				  'sku'	=> $product['sku'],

а правильно так

  'sku'	=> $sku['name'],

Всем громадное спасибо, у меня все работает!

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


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

Вобщем решил таким способом:

1/ В базе добавил поле в таблицу order_prodect

(просто сделал новое поле sku как поле model)

2/ В контроллере order добавил поле в массив product[sku]

3/ В order_info.tpl добавил вывод product[sku]

4/ В файле checout/order.php добавил заполнение поле sku по аналогии model

В итоге получилось, может кому пригодится!

p.s. если что забыл извините, по наитию делал

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


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

И так, начнем :-)

В \catalog\model\account\order.php добавляем функцию

...

...

 

Ниче не понял. И где это выводит?

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


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

Решение не трудное

В system\library\cart.php добавляем элемент в массив $this->data[$key] = array(
'sku'			 => $product_query->row['sku'],
затем в catalog\controller\checkout\cart.php также добавляем в массив $this->data['products'][] = array(
'sku'	 => $product['sku'],
и выводим в нужном месте в файлах catalog\view\theme\default\template\checkout\cart.tpl  (для простой корзины) и catalog\view\theme\default\template\module\cart.tpl   (для всплывающей)
примерно так
<?php if ($product['sku']) { ?>
   <p><?php echo $product['sku']; ?>
			    <?php } ?></p>

 

подскажите в  какую строчку  вставлять - 

$this->data[$key] = array( 
'sku'             => $product_query->row['sku'],

и 

catalog\controller\checkout\cart.php также добавляем в массив $this->data['products'][] = array(
'sku'     => $product['sku'],

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.