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

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

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

Страница выводится через шаблон 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;
  }
Аватар пользователя WebFamily WebFamily 4 июля 2012 в 7:32

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

У меня не хочет работать такая конструкция (

Аватар пользователя WebFamily WebFamily 5 июля 2012 в 7:40

"dylan" wrote:
через коммерц сток были

Модуль поставил, но все-равно ничего не отображает.

Аватар пользователя WebFamily WebFamily 6 июля 2012 в 10:30

"dylan" wrote:
хмм... а кеш сбрасывали?

Сбрасывал кэш, но увы не помогло. Время будет еще надо будет повозиться с этим, все таки решение такое правильное.

Аватар пользователя dylan dylan 7 июля 2012 в 19:45

в node--product.tpl.php проверьте все ли нужные значения есть в $content с помощью print_r($content);

Аватар пользователя 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);
?>

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