Новости Joomla

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

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Здравствуйте!
Суть вопроса в названии темы.
Как-то не хорошо выводить товары в модуле, которых нет в наличии.
Скрыть товары, которых нет в наличии, у меня получилось, только вот количество товаров при этом тоже уменьшается на то количество, на которое нет в наличии, а нужно чтобы оставалось то количество, которое указано в настройках модуля.
Помогите, пожалуйста, решить этот вопрос.
Спасибо!
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
Стандартным модулем, боюсь, это не решить. Модуль запрашивает список товаров через функцию getProductListing. Можно передать запрос (и получить в ответ) только на след. данные $group, $nbrReturnProducts, $withCalc, $onlyPublished, $single, $filterCategory, $category_id

$group - группа товаров (новинки, рекомендуемые и т.д - см. в настройках модуля)
$nbrReturnProducts - кол-во товаров для вывода
$withCalc - показывать ли цену
$onlyPublished - только опубликованные (этого даже в настройках нет, в коде модуля явно прописано true)
$single - единичный (? но в коде прописано false)
$filterCategory - использовать ли фильтр категорий
$category_id - ID категории для фильтра

все. больше туда ничего не передать, т.е. узнать кол-во на складе через запрос к функции getProductListing невозможно. Писать прямой запрос в базу тоже не вариант, т.к. функция вернет, предположим, 10 товаров, ты проверишь их остатки уже постфактум, и останется, например, 8 товаров. Ковырять саму функцию getProductListing в модели типа "продукт", чтобы проверять на остатки нельзя, в других местах товары с нулевым остатком тоже могут пропасть (это ведь глобальная функция VM, а не только для модуля).

Рекомендую тут на форуме найти альтернативный mod_virtuemart_randcatproduct, в нем есть настройка "наличие товара на складе показывать / не показывать". Этот модуль не обращается к глобальной функции, в нем самом прописаны все необходимые запросы к БД

*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
все. больше туда ничего не передать, т.е. узнать кол-во на складе через запрос к функции getProductListing невозможно.
Фу, сколько букафф.
Можно, передав $onlyPublished===false.
В шаблоне модуля найдите переменную количества товаров, допустим, это $totalProd. Тогда, перед кодом вывода количества товаров вставьте
Код: php-brief
$all_products=$productModel->getProductListing($Product_group,$max_items,$show_price,false,false,$filter_category,$category_id);
$totalProd=count($all_products);
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
$all_products=$productModel->getProductListing($Product_group,$max_items,$show_price,false,false,$filter_category,$category_id);
он получил список из 10 товаров

$totalProd=count($all_products);
и постфактум скрыл позиции с нулевым остатком, осталось 8

а суть вопроса то "только вот количество товаров при этом тоже уменьшается на то количество, на которое нет в наличии" - нужно 10, уже за вычетом нулевых
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Liss, я понимаю ваш энтузиазм - сам был таким. Но вы посмотрели функцию getProductListing()? Особенно когда 4-й аргумент===false?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Не получается использовать этот код, может не туда вставлял
Код
$all_products=$productModel->getProductListing($Product_group,$max_items,$show_price,false,false,$filter_category,$category_id);
$totalProd=count($all_products);

Выкладываю файлы может они как-то помогут
файл mod_virtuemart_product.php
Спойлер
[свернуть]

Код шаблона default.php
Спойлер
[свернуть]
Спасибо!
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

Liss

  • Захожу иногда
  • 238
  • 10 / 0
мне уже самому стало интересно  ^-^, как связана переменная "товар опубликован" со значением остатков на складе?
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Скрыть товары, которых нет в наличии, у меня получилось, только вот количество товаров при этом тоже уменьшается на то количество, на которое нет в наличии
Нет? Или я что-то не допонимаю?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Я их скрыл сделав так:
Спойлер
[свернуть]

Это наверное не совсем правильно
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Код шаблона default.php
Давно не работал с VM, что-то не вижу, где у вас выводится количество товаров. Может быть, default.php переопределен в шаблоне сайта?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Давно не работал с VM, что-то не вижу, где у вас выводится количество товаров. Может быть, default.php переопределен в шаблоне сайта?
Нет не переопределен.
В предыдущем сообщении я привел часть кода, который поместил в
Код
<?php if (!empty($product->product_in_stock)) { ?>
<?php } ?>
чтобы скрыть блок с товаром у которых количество 0

А весь код приведен в сообщении http://joomlaforum.ru/index.php/topic,323484.msg1618015.html#msg1618015
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А как и в каком месте у вас выводится
количество товаров при этом тоже уменьшается на то количество, на которое нет в наличии
? Может быть, ссылка на сайт?
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Ссылку сбросил в личку
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

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

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Да, я сейчас убрал код
 
Код
<?php if (!empty($product->product_in_stock)) { ?>
<?php } ?>

Сейчас сделаю
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Сейчас скрыл товары которых нет в наличии
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Из 6 товаров осталось только 4
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Где можно увидеть количество?
А, то есть было 6, стало 4 - это и есть уменьшение количества?
Бл..., было 6, вы убрали 2, и хотите, чтобы в итоге все равно осталось 6?
Может быть, на самом деле вы хотите просто скрыть надпись "Нет в наличии"?
« Последнее редактирование: 26.01.2016, 23:24:14 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
На главной странице "лидеры продаж", сейчас 4 товара, которые есть в наличии, 2 скрылись
Количество выводимых товаров я задаю в настройках модуля в админке стоит 6шт
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Бл..., было 6, вы убрали 2, и хотите, чтобы в итоге все равно осталось 6?
Да
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

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

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Админка VM->Configuration->Shopfront->Action when a Product is Out of Stock-> Do not Display Product - отметить.
Не знаю, как переводили на русский.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Я знаю про эту функцию, она скрывает товары на всем сайте, которых нет в наличии, а мне нужно только в модуле.
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Тогда только прямой запрос в БД.
P.S. Кстати
мне уже самому стало интересно  ^-^, как связана переменная "товар опубликован" со значением остатков на складе?
да, был не прав.
« Последнее редактирование: 26.01.2016, 23:54:56 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Тогда только прямой запрос в БД.
Не подскажите, как это сделать?
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
Попробуйте вместо
Спойлер
[свернуть]
вот это
Спойлер
[свернуть]
Не проверял, но должно сработать.
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Весь модуль пропал
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
А так
Спойлер
[свернуть]
?
« Последнее редактирование: 27.01.2016, 01:25:34 от robert »
Не будь паразитом, сделай что-нибудь самостоятельно!
*

alexfom_16

  • Захожу иногда
  • 257
  • 24 / 0
Рекомендую хостинг Beget.ru
Качественная настройка и ведение Яндекс.Директ.
*

robert

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

Как сделать товары в 2 колонки в моб версии?

Автор art22

Ответов: 4
Просмотров: 1073
Последний ответ 06.12.2022, 11:42:56
от art22
Как пересохранить все товары?

Автор stydent

Ответов: 1
Просмотров: 1707
Последний ответ 30.03.2022, 10:38:06
от itpremium
Вывести товары из подкатегории в категорию

Автор xlite

Ответов: 78
Просмотров: 28095
Последний ответ 08.03.2021, 10:06:58
от kisBoss
Приоритетный Itemid для формирования ссылок на товары/категории

Автор rsn

Ответов: 2
Просмотров: 539
Последний ответ 10.03.2020, 08:21:45
от rsn
Модуль VirtuMart Товары. Вывод товаров с определенным настраиваемым полем

Автор rsn

Ответов: 0
Просмотров: 683
Последний ответ 27.04.2019, 09:33:16
от rsn