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

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


Recommended Posts

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

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

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

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

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


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

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

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

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

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

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

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


  • 2 weeks later...

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

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


  • 2 weeks later...
Не выходит каменный цветок, нужна помощь! Заранее спасибо!

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

В 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
Надіслати
Поділитися на інших сайтах


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

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


  • 2 weeks later...

А не будет с моей стороны наглостью спросить вас как вывести 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:/>

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

	   	 $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. если что забыл извините, по наитию делал

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


  • 3 months later...
  • 3 years later...

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

В 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 користувачів

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

Important Information

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