В магазине не все товары есть в наличии, что-то продано, что ожидается.
Я хочу, чтобы пользователи имели возможность видеть их в общем каталоге, но не могли купить и не видели цену.
Наличие товаров (через Stock) вводить не удобно т.к. товары продаются не только через сайт и возникает много путаницы.
Хотелось бы делать это вручную.
А именно, добавить поле в Product variation. Если значение этого поля = "Нет в наличии", то кнопка Добавить в корзину и цена не отображаются.
Как можно решить эту задачу? Я так понимаю, что тут в основном JS должно быть достаточно.
Комментарии
У товара есть свойство "статус". Выставьте "отключен" кнопка "Добавить в корзину" будет неактивна.
Я бы делал на стороне сервера, js легко обойти и путницы в ваших товарах может возникнуть еще больше.
Для того, чтобы не выводить еще и цену - воспользуйтесь hook_views_post_execute для вьюса с товарами и hook_entity_view для commerce product: проверили какой статус - скрыли поля от рендера.
Мне нравится вот это решение с опциональным отключением возможности добавить в корзину
http://banoodleland.com/2013/09/24/drupal-commerce-indicating-a-sold-out...
Но у меня не работает... Может быть из-за использования сторонней темы. Не могу пока найти причину.
Подозреваю, что если развить это направление, то можно заодно отключать и отображение цены.
> У товара есть свойство "статус". Выставьте "отключен" кнопка "Добавить в корзину" будет неактивна.
Это было бы очень просто. Но продукты с таким статусом не выводятся в общий каталог через views наравне с активными. Или есть способ?
как вариант можно в шаблоне карточки товара написать условие по полю Product variation.
типа
if ($Product_variation == "Нет в наличии")
{
echo "Нет в наличии";
}
else
{
выводим кнопку в корзину
};
Снимите фильтр по статусу в вашем views - будут выводиться и неактивные.