Страница 1 из 1
Товары на главной в случайном порядке
Добавлено: 01.12.2017, 22:50
makki
Простое но полезное решение, которое придаст динамичности вашему магазину.
По умолчанию Хиты продаж, Новинки и Акционные товары на главной странице отображаются в порядке соответствующему дате добавления товара. Т.е. покупатель всегда видит те же товары. Для того, чтобы при каждой перезагрузке страницы, отображать товары в случайном порядке из списка соответствующих товаров, нужно сделать такие нехитрые действия в файле
view/View.phpХиты продажПосле строки
Код: Выделить всё
public function get_featured_products_plugin($params, &$smarty) {
добавьте
Код: Выделить всё
if(!isset($params['sort'])) {
$params['sort'] = 'rand';
}
НовинкиКод: Выделить всё
public function get_new_products_plugin($params, &$smarty) {
Тут логичнее, если товары действительно отображаются в порядке добавления в магазин. Ничего не меняем.
Акционные товарыПосле строки
Код: Выделить всё
public function get_discounted_products_plugin($params, &$smarty) {
добавьте такой же код
Код: Выделить всё
if(!isset($params['sort'])) {
$params['sort'] = 'rand';
}
Добавлено: 02.12.2017, 01:38
Vadik
Здравствуйте. А можно как-то сделать, чтобы при первом заходе отображался мною выбранный товар (у меня в магазине отображаются только хиты продаж, которые собственно сам и выбирал), а уже в дальнейшем, после обновления, чтобы отображался случайным образом товар?
Добавлено: 02.12.2017, 08:49
korshunov
Несколько заумный способ.
Проще всего лишь в шаблоне main.tpl поменять
{get_discounted_products var=discounted_products limit=4}
на
{get_discounted_products var=discounted_products limit=4 sort=rand}
Параметры в функции для того и придуманы, чтоб их простой пользователь задавал легко и просто, не влезая в программный код...
Добавлено спустя 5 минут:Vadik писал(а):Здравствуйте. А можно как-то сделать, чтобы при первом заходе отображался мною выбранный товар (у меня в магазине отображаются только хиты продаж, которые собственно сам и выбирал), а уже в дальнейшем, после обновления, чтобы отображался случайным образом товар?
Можно, но несколько хлопотно. И надо задачу ставить, потому как реализовывать можно по разному. А если через неделю найдет еще, это как считать - "первый заход" или уже не первый? И как считать заходы - то ли только по главной странице, то ли по всем страницам сайта?
Добавлено: 02.12.2017, 18:40
makki
korshunov писал(а):Проще всего лишь в шаблоне main.tpl поменять
{get_discounted_products var=discounted_products limit=4}
на
{get_discounted_products var=discounted_products limit=4 sort=rand}
Параметры в функции для того и придуманы, чтоб их простой пользователь задавал легко и просто, не влезая в программный код...
Спасибо!
Добавлено: 03.12.2017, 07:28
Vadik
Понятно. Спасибо
Добавлено: 09.01.2019, 14:13
pizhama
А как можно сделать вывод случайного товара на главной?
Добавлено: 09.01.2019, 14:46
korshunov
По аналогии, скажем, с выводом рекомендованных на главной. Изменять в двух местах - в шаблоне main.tpl и написать свою функцию в view/View.php.
як реалізувати такий вивід товарів в v.3.5.2
Добавлено: 14.05.2020, 07:29
Andrijk
Добрий день підкажіть як можна зробити такий вивід товарів в версії v.3.5.2
Добавлено: 14.05.2020, 12:35
zyxer
В принципе как и в двойке, вот уже ответили
korshunov писал(а):Проще всего лишь в шаблоне main.tpl поменять
{get_discounted_products var=discounted_products limit=4}
на
{get_discounted_products var=discounted_products limit=4 sort=rand}
Добавлено: 19.09.2020, 13:56
muno
За подсказку /sort=rand/ спасибо! Уже работает)
А теперь, внимание, вопрос!
Заголовок темы звучит так: "Товары на главной в случайном порядке".
Вот именно это я и хотел бы реализовать.
Не feautured_products
Не discounted_products
Не new_products
Не browsed_products
А именно all_products, если можно так выразиться.
Подозреваю, что main.tpl и view.php потребуют глубокой модернизации.
Помогите, пожалуйста!
Спасибо!
Добавлено: 19.09.2020, 16:13
korshunov
muno писал(а):Заголовок темы звучит так: "Товары на главной в случайном порядке".
Вот именно это я и хотел бы реализовать.
По аналогии, например, с new_products...
Добавлено: 19.09.2020, 20:48
muno
Ну, если с main.tpl более-менее понятно...
Код: Выделить всё
{* All products *}
{get_all_products var=all_products limit=4 sort=rand}
{if $all_products}
<div class="h2">
<span data-language="main_all_products">{$lang->main_all_products}</span>
// * Добавить слово "Товары" в Переводы * //
</div>
<div class="all_products clearfix">
// * Добавить раздел "all_products" в css, скопировав и переименовав "new_products" * //
{foreach $all_products as $product}
<div class="products_item no_padding col-sm-6 col-xl-3">
{include "product_list.tpl"}
</div>
{/foreach}
</div>
{/if}
то view.php для меня потёмки. Как изменить функцию, чтобы она не сортировала товары по времени создания?
Код: Выделить всё
public function get_all_products_plugin($params, &$smarty) {
if(!isset($params['visible'])) {
$params['visible'] = 1;
}
if(!isset($params['sort'])) {
$params['sort'] = 'created';
}
$params['in_stock'] = 1;
if(!empty($params['var'])) {
$images_ids = array();
foreach($this->products->get_products($params) as $p) {
$products[$p->id] = $p;
$images_ids[] = $p->main_image_id;
}
if(!empty($products)) {
// id выбраных товаров
$products_ids = array_keys($products);
// Выбираем варианты товаров
$variants = $this->variants->get_variants(array('product_id'=>$products_ids));
// Для каждого варианта
foreach($variants as $variant) {
// добавляем вариант в соответствующий товар
$products[$variant->product_id]->variants[] = $variant;
}
// Выбираем изображения товаров
if (!empty($images_ids)) {
$images = $this->products->get_images(array('id'=>$images_ids));
foreach ($images as $image) {
if (isset($products[$image->product_id])) {
$products[$image->product_id]->image = $image;
}
}
}
foreach($products as $product) {
if(isset($product->variants[0])) {
$product->variant = $product->variants[0];
}
}
}
$smarty->assign($params['var'], $products);
}
}
Возможно где-то ещё надо внести правки?
Спасибо за подсказку.
Добавлено: 20.09.2020, 08:43
korshunov
Видимо, тут:
$params['sort'] = 'created';
Добавлено: 20.09.2020, 14:49
muno
Вот, кстати, не первый раз проделываю подобное - очередная попытка добавить новую функцию. Итог: This page isn’t working. Вебсайт не открывается. Причём, причина в обоих файлах. Если один из них оригинальный, а другой - нет, всё равно не открывается. Подозреваю, что где-то ещё есть закладка, и просто так функцию не добавить.
В итоге просто в функции new_products в файле view.php удалил сортировку. Теперь все товары всегда будут новыми)