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

[Решено] Вывод модели рекомендуемых товаров в каждой карточке на странице категории

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

Здравствуйте! 

Собственно надо вывести Модели рекомендуемых товаров в каждой карточке на странице категории.

Рекомендуемые товары те что заполняются в товаре на вкладке Связи. 

Помогите пожалуйста реализовать!

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


Ссылка на сообщение
Поделиться на другие сайты
44 минуты назад, max1985 сказал:

Помогите пожалуйста реализовать!

диктуйте, а я буду нажимать на кнопки.

Или какого рода помощь вы хотите?

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


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

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


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

AWARO, Спасибо за предложение! Но такой огромный функционал мне не нужен... Хочу обойтись стандартными средствами.

 

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, nikifalex сказал:

диктуйте, а я буду нажимать на кнопки.

Или какого рода помощь вы хотите?

Я просто уходил с работы и не успел накатать с чего начал, а Вы так сразу критично ))

Вот что сделал: 

В контроллере, перед

$data['products'][] = array(

Вставил это:

$related_to = $this->model_catalog_product->getProductRelated($this->request->get['product_id']);
foreach ($related_to as $result) {
$related_to = array(
'product_id'  => $result['product_id'],
'name'        => $result['name'],
'href'        => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
        );
}

а после

$data['products'][] = array(

добавил это

'related'     => $related_to,

В темплейте в <?php foreach ($products as $product) { ?> попробовал вывести так:

<?php foreach ($product as $related_to) { ?>
                <p><?php echo $product['name']; ?></p>
<?php } ?>

Но что-то пошло не так... Предупреждения Notice: Undefined index: product_id и в каждом товаре длинный список с его названием.

Буду благодарен любой помощи!

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, max1985 сказал:

$this->request->get['product_id']

в как Вы это получите на странице категорий?

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


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

Спасибо krumax !

Сделал так:

$related_to = $this->model_catalog_product->getProductRelated($result['product_id']);

Ошибка Notice: Undefined index: product_id исчезла. С выводом пока борюсь!

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


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, max1985 сказал:

С выводом пока борюсь!

что, показывает по одному похожему товару? Вы же в цикле каждый раз заново массив наполняете.

Может попробовать так?

$related_to[] = array(

 

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

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


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

Ничего не изменилось http://lipar.de/index.php?route=product/category&amp;path=20

Может проблема в выводе?

<?php foreach ($product as $related_to) { ?>
                <p><?php echo $product['name']; ?></p>
<?php } ?>

 

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


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, max1985 сказал:

Ничего не изменилось http://lipar.de/index.php?route=product/category&amp;path=20

Может проблема в выводе?


<?php foreach ($product as $related_to) { ?>
                <p><?php echo $product['name']; ?></p>
<?php } ?>

 

именно. Обратите внимание, что Вы перебираете, а что у Вас echo

 

Эх...

 

<?php foreach ($product['related'] as $related_to) { ?>
                <p><?php echo $related_to['name']; ?></p>
<?php } ?>

Хотя мне не понятно, зачем было в массив добавлять href и product_id если их не нужно выводить

Изменено пользователем krumax
  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
12 минут назад, krumax сказал:

Хотя мне не понятно, зачем было в массив добавлять href и product_id если их не нужно выводить

тогда можно и вообще убрать из кода этот перебор с перестройкой массива. В нём есть смысл только если вы собрались реально выводить href для похожих товаров.

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


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

Спасибо! Получилось, только вывелось два раза ))

href - чтоб сделать ссылку на товар

 

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, max1985 сказал:

Спасибо! Получилось, только вывелось два раза ))

http://prntscr.com/kdy7n5

 

Кстати, сделайте ещё проверку по product_id, чтобы в похожих не выводился и сам товар на котором показываете.

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

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


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

Блин что-то не выходит... Да еще и другие товары у которых есть рекомендуемые выводятся так: https://prnt.sc/kdycjn

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


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

category.php

$related_to = $this->model_catalog_product->getProductRelated($result['product_id']);

foreach($related_to as $related){
	$related_to[$related['product_id']] = array(
		'name' 	=> $related['name'],
		'href'  => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $related['product_id'])
	);
}

 

category.tpl

<?php foreach($product['related'] as $related) { ?>
	<p><a href="<?php echo $related['href']; ?>"><?php echo $related['name']; ?></a></p>
<?php } ?>
  • +1 1

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


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

Gaziz и krumax Огромное спасибо! Получилось!

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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