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

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


kredit24

Recommended Posts

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

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

  • +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 месяца как стоит блок со случайно сгенерированными товарами в категориях и брендах, на скрине видно как это индексируется..

 

img-2019-11-26-14-05-47.png

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


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

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

 

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

 

img-2019-11-28-09-53-42.png

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


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

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

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

Important Information

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