Jump to content
webreaktor

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

Recommended Posts

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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

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

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
Не выходит каменный цветок, нужна помощь! Заранее спасибо!

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

Edited by kegel

Share this post


Link to post
Share on other sites
Не выходит каменный цветок, нужна помощь! Заранее спасибо!

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

В 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

Share this post


Link to post
Share on other sites

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

В 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

Share this post


Link to post
Share on other sites

В 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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

В \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

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

К сожалению вариант с постом 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;
}

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
тож самое с запросами...не силен :-)/> .Сейчас попросим человечка..думаю не откажет в помощи.Сообщю.. :wink:/>

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

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

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

...

...

 

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

Share this post


Link to post
Share on other sites

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

В 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'],

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.


  • 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.