0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 1082 Просмотров
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Модуль вывода случайных товаров (mod_jshopping_random_products).
Необходимо чтобы модуль выводил только те товары, которые есть в наличии.
Например нужно выводить 10 случайных товаров.

в файле components/com_jshopping/tables/product.php внес изменение (добавил AND prod.product_quantity > 0):
Код
$query = "SELECT $adv_result FROM `#__jshopping_products` AS prod
                INNER JOIN `#__jshopping_products_to_categories` AS pr_cat ON pr_cat.product_id = prod.product_id
                LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id = cat.category_id
                $adv_from
                WHERE prod.product_publish=1 AND cat.category_publish=1 AND prod.product_quantity > 0 ".$adv_query."
                GROUP BY prod.product_id order by ".$orderby."
                LIMIT ".$limitstart.", ".$count;

В результате получается что модуль выбирает необходимое количество случайных товаров (в моем случае это 10) и из этого количества выводит только те, которые есть в наличии. Например если из десяти товаров девять не будет в наличии - модуль выведет только один товар, а необходимо чтобы всегда выводил 10 любых товаров, которые есть в наличии.

Помогите пожалуйста, как правильно настроить выборку.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
получается что модуль выбирает необходимое количество случайных товаров (в моем случае это 10) и из этого количества выводит только те, которые есть в наличии
Этого пока не вижу из приведенного вами кода. После этого кода сделайте
Код
exit($query);
и приведите сюда содержание экрана.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Этого пока не вижу из приведенного вами кода. После этого кода сделайте
Код
exit($query);
и приведите сюда содержание экрана.

Код
SELECT prod.product_id, pr_cat.category_id, prod.`name_ru-RU` as name, prod.`short_description_ru-RU` as short_description, prod.product_ean, prod.manufacturer_code, prod.image, prod.product_price, prod.currency_id, prod.product_tax_id as tax_id, prod.product_old_price, prod.product_weight, prod.average_rating, prod.reviews_count, prod.hits, prod.weight_volume_units, prod.basic_price_unit_id, prod.label_id, prod.product_manufacturer_id, prod.min_price, prod.product_quantity, prod.different_prices, prod.delivery_times_id, prod.`extra_field_1` , prod.`extra_field_2` , prod.`extra_field_3` , prod.`extra_field_24` , prod.`extra_field_25` , prod.`extra_field_26` , prod.`extra_field_34` , prod.`extra_field_4` , prod.`extra_field_31` , prod.`extra_field_5` , prod.`extra_field_33` , prod.`extra_field_32` , prod.`extra_field_23` , prod.`extra_field_7` , prod.`extra_field_11` , prod.`extra_field_27` , prod.`extra_field_28` , prod.`extra_field_29` , prod.`extra_field_30` , prod.`extra_field_35` , prod.`extra_field_37` , prod.`extra_field_36` , prod.`extra_field_42` , prod.`extra_field_43` , prod.`extra_field_44` , prod.`extra_field_45` , prod.`extra_field_48` , prod.`extra_field_50` , prod.`extra_field_51` , prod.`extra_field_52` , prod.`extra_field_49` , prod.`extra_field_57` , prod.`extra_field_54` , prod.`extra_field_55` , prod.`extra_field_56` , prod.`extra_field_58` , prod.`extra_field_59` , prod.`extra_field_6` , prod.`extra_field_14` , prod.`extra_field_20` , prod.`extra_field_21` , prod.`extra_field_22` , prod.`extra_field_38` , prod.`extra_field_39` , prod.`extra_field_40` , prod.`extra_field_8` , prod.`extra_field_9` , prod.`extra_field_41` , prod.`extra_field_65` , prod.`extra_field_61` , prod.`extra_field_60` , prod.`extra_field_64` , prod.`extra_field_63` , prod.`extra_field_62` , prod.`extra_field_12` , prod.`extra_field_13` , prod.`extra_field_10` , prod.`extra_field_18` , prod.`extra_field_19` , prod.`extra_field_15` , prod.`extra_field_16` , prod.`extra_field_17` , prod.vendor_id, IF(prod.product_quantity>0,1,0) as qflag FROM `#__jshopping_products` AS prod INNER JOIN `#__jshopping_products_to_categories` AS pr_cat ON pr_cat.product_id = prod.product_id LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id = cat.category_id WHERE prod.product_publish=1 AND cat.category_publish=1 AND pr_cat.category_id IN (4) AND prod.access IN (1,1,5) AND cat.access IN (1,1,5) GROUP BY prod.product_id order by prod.product_price asc LIMIT 3, 10
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
ну а вы сами то видите ваше добавленное условие
Код
AND prod.product_quantity > 0
в этой строке запроса, который вы показываете? :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
exit($query);
сорри, я выложил то что было по умолчанию.
Вот мой:

SELECT prod.product_id, pr_cat.category_id, prod.`name_ru-RU` as name, prod.`short_description_ru-RU` as short_description, prod.product_ean, prod.manufacturer_code, prod.image, prod.product_price, prod.currency_id, prod.product_tax_id as tax_id, prod.product_old_price, prod.product_weight, prod.average_rating, prod.reviews_count, prod.hits, prod.weight_volume_units, prod.basic_price_unit_id, prod.label_id, prod.product_manufacturer_id, prod.min_price, prod.product_quantity, prod.different_prices, prod.delivery_times_id, prod.`extra_field_1` , prod.`extra_field_2` , prod.`extra_field_3` , prod.`extra_field_24` , prod.`extra_field_25` , prod.`extra_field_26` , prod.`extra_field_34` , prod.`extra_field_4` , prod.`extra_field_31` , prod.`extra_field_5` , prod.`extra_field_33` , prod.`extra_field_32` , prod.`extra_field_23` , prod.`extra_field_7` , prod.`extra_field_11` , prod.`extra_field_27` , prod.`extra_field_28` , prod.`extra_field_29` , prod.`extra_field_30` , prod.`extra_field_35` , prod.`extra_field_37` , prod.`extra_field_36` , prod.`extra_field_42` , prod.`extra_field_43` , prod.`extra_field_44` , prod.`extra_field_45` , prod.`extra_field_48` , prod.`extra_field_50` , prod.`extra_field_51` , prod.`extra_field_52` , prod.`extra_field_49` , prod.`extra_field_57` , prod.`extra_field_54` , prod.`extra_field_55` , prod.`extra_field_56` , prod.`extra_field_58` , prod.`extra_field_59` , prod.`extra_field_6` , prod.`extra_field_14` , prod.`extra_field_20` , prod.`extra_field_21` , prod.`extra_field_22` , prod.`extra_field_38` , prod.`extra_field_39` , prod.`extra_field_40` , prod.`extra_field_8` , prod.`extra_field_9` , prod.`extra_field_41` , prod.`extra_field_65` , prod.`extra_field_61` , prod.`extra_field_60` , prod.`extra_field_64` , prod.`extra_field_63` , prod.`extra_field_62` , prod.`extra_field_12` , prod.`extra_field_13` , prod.`extra_field_10` , prod.`extra_field_18` , prod.`extra_field_19` , prod.`extra_field_15` , prod.`extra_field_16` , prod.`extra_field_17` , prod.vendor_id, IF(prod.product_quantity>0,1,0) as qflag FROM `#__jshopping_products` AS prod INNER JOIN `#__jshopping_products_to_categories` AS pr_cat ON pr_cat.product_id = prod.product_id LEFT JOIN `#__jshopping_categories` AS cat ON pr_cat.category_id = cat.category_id WHERE prod.product_publish=1 AND cat.category_publish=1 AND prod.product_quantity > 0 AND pr_cat.category_id IN (4) AND prod.access IN (1,1,5) AND cat.access IN (1,1,5) GROUP BY prod.product_id order by prod.product_price asc LIMIT 23, 10
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Не знаю, что такое mod_jshopping_random_products, но запрос выводит только товары из категории с ID = 4
Код
AND pr_cat.category_id IN (4)
Вы хотели, чтобы выводились только товары этой кагории? Если нет, то найдите в коде этого модуля вызов функции getRandProducts и поставьте 2-й аргумент = null.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Не знаю, что такое mod_jshopping_random_products, но запрос выводит только товары из категории с ID = 4Вы хотели, чтобы выводились только товары этой кагории? Если нет, то найдите в коде этого модуля вызов функции getRandProducts и поставьте 2-й аргумент = null.

да, нужно чтобы выводились товары из одной категории. И в этой категории достаточное количество товаров, которые есть в наличии...но..ситуация такая, как я описал выше. Бывает даже ситуация, когда вообще не выводит ни одного товара
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Тогда в той же функции, где вы добавили условие, измените
$limitstart = rand(0, $totalrow);
на
$limitstart = rand(0, $totalrow - 10);
Ой, там же есть $count, которая наверняка задается в админке модуля. Найдите эту настройку и поставьте 10.

Опять был не прав :).
Добавьте
Код
AND prod.product_quantity > 0
и в верхний запрос.
« Последнее редактирование: 25.10.2017, 00:39:34 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Тогда в той же функции, где вы добавили условие, измените
$limitstart = rand(0, $totalrow);
на
$limitstart = rand(0, $totalrow - 10);

Ой, там же есть $count, которая наверняка задается в админке модуля. Найдите эту настройку и поставьте 10.

там сейчас так:
Код
        $db->setQuery($query);
        $totalrow = $db->loadResult();
        $totalrow = $totalrow - $count;
        if ($totalrow < 0) $totalrow = 0;
        $limitstart = rand(0, $totalrow);

$count, я так понимаю, это необходимое количество отображаемого товара
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Обновил предыдущий пост.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Обновил предыдущий пост.
если я вас правильно понимаю, вы предлагаете в настройках модуля в админке установить необходимое количество выводимых товаров, например 10.
Но у меня там установлено необходимое количество. Но дело в том что даже если у меня в одной категории 1000 товаров и например 10 товаров нет в наличии, то бывает ситуация когда в выборку попадают именно эти 10 товаров, которых нет в наличии..и соответственно модуль ничего не выводит
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Добавьте
Код
AND prod.product_quantity > 0
и в верхний запрос.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

v-v

  • Захожу иногда
  • 98
  • 3 / 0
Добавьте
Код
AND prod.product_quantity > 0
и в верхний запрос.

Работает! Большое спасибо за помощь!
*

dmitry_stas

  • Легенда
  • 13151
  • 1234 / 8
а какой модуль случайных товаров используется? этот https://nevigen.com/ru/modules/modul-sluchajnykh-tovarov-joomshopping.html?
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

JS Product Snapshot - плагин вывода товаров JoomShopping в контенте Joomla

Автор Arkadiy

Ответов: 110
Просмотров: 29555
Последний ответ 21.12.2023, 09:28:06
от sergeytolkachyov
Фильтр товаров крашит сайт

Автор psiworm

Ответов: 4
Просмотров: 543
Последний ответ 04.11.2023, 12:31:07
от nevigen
Re: Модуль AJAX корзины (Multi)

Автор Садко

Ответов: 97
Просмотров: 16220
Последний ответ 08.10.2023, 07:49:27
от kit2m2
Модуль красивого выбора валюты

Автор beagler

Ответов: 8
Просмотров: 3285
Последний ответ 12.03.2023, 01:42:31
от ecolora
Модуль категорий + товары + аккордеон

Автор Efanych

Ответов: 118
Просмотров: 23752
Последний ответ 02.10.2022, 22:04:42
от Biss