1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. FAQ

Commerce Drupal: в наличии, на складе, нет в наличии

Главные вкладки

Нужно реализовать вроде бы простое дело, а конкретно, чтобы на странице товара висела вполне обыденная строка "товар в наличии, нет в наличии и т.д.". Но как реализовать это совсем не понятно.

Страница выводится через шаблон node--product.tpl.php. Поля соответственно вывожу через переменные.

Кто подскажет может есть такая переменная или вообще хоть подтолкните куда копать. Спасибо.

Комментарии

Аватар пользователя WebFamily WebFamily 2 июля 2012 в 23:23

РЕШЕНИЕ: У товара создал поле состояние. Тип: ссылка на термин. Создал словарь с двумя терминами: "Есть в наличии" и "нет в наличии". В Feeds importers к импортируемым полям добавил это поле. В принципе не занимает много времени при обновлении 350 товаров расставить в таблице импортируемого файла CSV нужные значения.

Может кто подскажет более правильное решение с технической стороны.

Аватар пользователя dylan dylan 2 июля 2012 в 23:53

Делал так (в node--product.tpl.php):

if (isset ($content['product:commerce_stock'])) {
$stock_value = $content['product:commerce_stock']['#items'][0]['value'] > 0 ? 'Есть' : 'Временно отсутствует';
// показываем юзеру с номером роли = 3 (админ) остатки
if (isset ($user->roles[3])) {
$stock_value = $stock_value . '(' . $content['product:commerce_stock']['#items'][0]['value'] . ')';
}
$content['product:commerce_stock'][0]['#markup'] = $stock_value;
$content['product:commerce_stock']['#items'][0]['value'] = $stock_value;
}
Аватар пользователя lexsaenko lexsaenko 17 апреля 2016 в 11:46

dylan wrote:

Делал так (в node--product.tpl.php):

if (isset ($content['product:commerce_stock'])) {

$stock_value = $content['product:commerce_stock']['#items'][0]['value'] > 0 ? 'Есть' : 'Временно отсутствует';

// показываем юзеру с номером роли = 3 (админ) остатки

if (isset ($user->roles[3])) {

$stock_value = $stock_value . '(' . $content['product:commerce_stock']['#items'][0]['value'] . ')';

}

$content['product:commerce_stock'][0]['#markup'] = $stock_value;

$content['product:commerce_stock']['#items'][0]['value'] = $stock_value;

}


Все работает. Единственное данную конструкцию надо вставлять перед

<?php
print render($content);
?>

Правда у меня не отображается суффикс поля и нельзя масштабировать количество точек после запятой.

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /