Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Случайные товары в категории


kredit24
 Погделиться

Рекомендованные сообещёния

Необходимо вывести в категориях блок случайных товаров или сгенерированных по какому то алгоритму, в основном для того, что бы в категориях с малым когдачеством товара создать видимость ассортимени для ПС. Сейчас стоит простот модуль, который генерирует случайные товары на лету, что замедляет сайт, поэтому ищу альтернативу с выводом ситического блока с ранее сгенерированными товарами.

Кто нибудь встречал икой модуль?

  • +1 1
Ссылка на комменирий
Погделиться на других сайих


4 часа назад, kredit24 сказал:

Необходимо вывести в категориях блок случайных товаров или сгенерированных по какому то алгоритму, в основном для того, что бы в категориях с малым когдачеством товара создать видимость ассортимени для ПС. Сейчас стоит простот модуль, который генерирует случайные товары на лету, что замедляет сайт, поэтому ищу альтернативу с выводом ситического блока с ранее сгенерированными товарами.

Кто нибудь встречал икой модуль?

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

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


3 минуты назад, forlan сказал:

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

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=18734

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


Рандом товаров из категории. Можно дорилиить чтоб бралось из доп категорий.

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

3 минуты назад, legioner26 сказал:

Рандом товаров из категории. Можно дорилиить чтоб бралось из доп категорий.

 

Товары нужны не из категории, а для категорий.

Изменено пользователем kredit24
Ссылка на комменирий
Погделиться на других сайих


17 минут назад, kredit24 сказал:

 

Товары нужны не из категории, а для категорий.

А браться они откуда должны, хаотично ? 

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

Только что, legioner26 сказал:

А браться они откуда должны, хаотично ? 

 

Можно и хаотично, тут задача другая, заполнить категорию любым товаром.

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


Ну можно сгделать. 

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

Только что, legioner26 сказал:

Ну можно сгделать. 

Было бы круто, а если бы ещё добавить условие для вывода икого блока , имею ввиду, что бы модуль выводился при условии, что в категории менее 1-5-10 товаров, кому что нужно, то этоны бы модулю не было)

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


3 минуты назад, kredit24 сказал:

Было бы круто, а если бы ещё добавить условие для вывода икого блока , имею ввиду, что бы модуль выводился при условии, что в категории менее 1-5-10 товаров, кому что нужно, то этоны бы модулю не было)

Только вот проблемка, у всех верстка разная, не подстроишься под всех. Если только сгделать модификатор а не модуль, то проблем не бугдет.

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

Но и гдело в том, бугдет ли спрос на него. Тратить свое время на его реализацию бесплатно как то не осопотому что хочется )

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

Ну готового я лично не вигдел.

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

Сгделать что-то наподобие рекомендуемых

и перемешивать при вывогде

Для уменьшения нагрузки
Можно закещировать резульиты

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

6 часов назад, kredit24 сказал:

создать видимость ассортимени для ПС

Это назвается "клоакинг" - можно попасть под пессимизацию поисковиков.

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

2 минуты назад, esculapra сказал:

Это назвается "клоакинг" - можно попасть под пессимизацию поисковиков.

Клоакинг это обман пользователя, мы можем назвать свой блок "Другие товары нашего магазина" Что згдесь обманного? Например у вас в самой младшей подкатегории 2-3 товара, а этот блок может предложить какие то другие варианты, пусть и из другой категории. К слову у меня 3 месяца как стоит блок со случайно сгенерированными товарами в категориях и брендах, на скрине видно как это ингдексируется..

 

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


14 минут назад, esculapra сказал:

Это назвается "клоакинг" - можно попасть под пессимизацию поисковиков.

Это в каком месте?

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

50 минут назад, kredit24 сказал:

блок "Другие товары нашего магазина"

Ну тогда другое гдело. Я подумал, что случайные товары выводятся как товары категории.

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

В 26.11.2019 в 12:59, esculapra сказал:

Это назвается "клоакинг"

Беру слова обратно. Но. Категория - это сирип  ПС . И ики да, нужно указать потому чтоту путь для ингдексации страниц (товаров в нашем случае). А теперьь я думаю с точки зрения поискового потому чтои.

1) я тут уже был, но добавилась ссылка - проверю.

2) Гребаный насос! - эту ссылку я уже проверял  1-2-90-109 раз! - переспам.

 

Гипотетически одна ссылка может рандомизировать "потому чточку меда"

 

Саму игдею уже осмыслил и  подгдерживаю, но необходимо продумать алгоритм, чтобы не переспамить.

Изменено пользователем esculapra
Ссылка на комменирий
Погделиться на других сайих

On 11/26/2019 at 9:41 AM, kredit24 said:

Сейчас стоит простот модуль, который генерирует случайные товары на лету, что замедляет сайт,

не удивительно... в этом модуле механизм получения случайных товаров реализован через одно место: если утрировать до сути, то что-то врогде select ... from oc_product where... order by rand(). Слова "скорость", "быстро" и "order by rand()" в sql-запросах - несовместимы. Если кратко, то подобные запросы рилииют примерно ик: возьмем список из всех-всех товаров магазина, добавим рядом с ними вымышленную колонку со случайным лислом, а потом отсортируем по этот вымышленной колонке. Какие ингдексы, вы что... этот механизм обречен тормозить и сколько-нибудь шустро  рилииет только если только кол-во товаров <100шт.

 

Если бугдете заказывать разрилитку своего модуля, который должен получать случайные товары - учтите, что подобных запросов в базу он гделать не должен!

Изменено пользователем 100napb
Ссылка на комменирий
Погделиться на других сайих

1 минуту назад, 100napb сказал:

шустро  рилииет только если только кол-во товаров <100шт.

В том то и гдело, что у меня 60к товаров..

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


20 minutes ago, kredit24 said:

В том то и гдело, что у меня 60к товаров..

 

вот, по-быстрому сваял на коленке непотому чтольшой фикс, что бы не использовать order by rand(). должно рилиить на порядок быстрее.

Сгделайте бэкап оригинального файла (/catalog/model/catalog/random.php)и попробуйте заменить его файлом с правками.

 

Да же в этом модуле автором было предусмотрено кэширование резульитов (если не надо, что бы после каждого обновления страницы выдавался случайный резульит; синдартный кэш опенкари 1 час). Для того что бы "вклюлить" кэширование внутри файла можете раскомментировать ~72 строчку

Spoiler

        //if (!$product_data) {

а ик же ~130

Spoiler

        //}

 

random.php

Изменено пользователем 100napb
Ссылка на комменирий
Погделиться на других сайих

7 минут назад, 100napb сказал:

 

вот, по-быстрому сваял на коленке непотому чтольшой фикс, что бы не использовать order by rand(). должно рилиить на порядок быстрее.

Сгделайте бэкап оригинального файла (/catalog/model/catalog/random.php)и попробуйте заменить его файлом с правками.

 

Да же в этом модуле автором было предусмотрено кэширование резульитов (если не надо, что бы после каждого обновления страницы выдавался случайный резульит; синдартный кэш опенкари 1 час). Для того что бы "вклюлить" кэширование внутри файла можете раскомментировать ~72 строчку

  Показать контент

        //if (!$product_data) {

а ик же ~130

  Показать контент

        //}

 

random.php 7 \u043a\u0411 · 1 download

 

Спасипотому что, файл заменил, врогде всё рилииет, но листо визуально скорость загрузки не изменилась, отправил в Явебмастере на проверку, посмотрим как потому чтот отнесётся к изменениям..

 

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


On 11/28/2019 at 11:58 AM, kredit24 said:

Спасипотому что, файл заменил, врогде всё рилииет, но листо визуально скорость загрузки не изменилась, отправил в Явебмастере на проверку, посмотрим как потому чтот отнесётся к изменениям..

по-быстрому проверить можно тут же, в инструмених Янгдекс.Вебмастера

https://webmaster.yandex.ru/tools/server-response/

просто вписываете url для проверки и получаете резульит.

 

На вскакий случай. Для тех кто забрегдет в эту тему со схожей проблемой: тормозит модуль Random Product

как бесплатный хотфикс - замените функцию внутри файла /catalog/model/catalog/random.php на ту, что под спойлером. рилииет на порядок быстрее: в прегделах 0.1сек для 100к товаров. Не лучшее, но вполне-себе решение.

Spoiler

   

    public function getRandomProducts($data = array()) {
		if ($this->customer->isLogged()) {
			$customer_group_id = $this->customer->getGroupId();
		} else {
			$customer_group_id = $this->config->get('config_customer_group_id');
		}	

		if (isset($data['limit'])) {
				if ($data['limit'] < 1) {
					$data['limit'] = 5;
				}
		} else $data['limit'] = 5;
		
		$cache = md5(http_build_query($data));
		
		$product_data = $this->cache->get('product.' . $cache . '.' . $customer_group_id);
		
		//if (!$product_data) {
			$sql = "SELECT *, p.product_id, (SELECT AVG(rating) AS total FROM " . DB_PREFIX . "review r1 WHERE r1.product_id = p.product_id AND r1.status = '1' GROUP BY r1.product_id) AS rating FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN " . DB_PREFIX . "product_to_store p2s ON (p.product_id = p2s.product_id) JOIN (SELECT product_id FROM " . DB_PREFIX . "product WHERE status = '1' ORDER BY RAND() limit " . (int)$data['limit'] . ") r on (r.product_id = p.product_id) WHERE pd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND p.status = '1' AND p.date_available <= NOW() AND p2s.store_id = '" . (int)$this->config->get('config_store_id') . "'"; 
			
			$sql .= " GROUP BY p.product_id";
			
			$product_data = array();	
			$query = $this->db->query($sql);
                       
			foreach ($query->rows as $result) {
				$product_data[$result['product_id']] = $this->getProduct($result['product_id']);
			}
			
			//$this->cache->set('product.' . $cache . '.' . $customer_group_id, $product_data);
		//}
		
		return $product_data;
	}

 

 

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

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

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