В этом кейсе я расскажу о том, как можно вывести остатки товаров Virtuemart в списке товаров в админке без каких-либо хаков. Это может быть очень удобно, если вы ведете контроль остатков на сайте. Информация актуальна для Virtuemart 2,3 и выше.
Информация об остатках в списке товаров админки Virtuemart (Кейс #7).

В этом кейсе я расскажу о том, как можно вывести остатки товаров Virtuemart в списке товаров в админке без каких-либо хаков. Это может быть очень удобно, если вы ведете контроль остатков на сайте. Информация актуальна для Virtuemart 2,3 и выше.

Переопределение макетов в административной части Joomla.

Знаете, должен признаться: я работаю с Joomla уже восьмой год, но идея переопределения макетов компонентов в админке пришла мне в голову только на прошлой неделе. В процессе осмысливания очередной задачи я задумался: «А почему, собственно, мы не можем переопределить макет категории товаров или страницы товара админки? Ведь этот тот же самый компонент, только шаблон административный.» Попробовал, и, знаете, работает. Почему-то раньше я никогда даже не думал в этом ключе. Готов поспорить, что многие из вас тоже. Но давайте ближе к делу.

Переопределение макета списка товаров Virtuemart.

Действуем в точной аналогии с тем, как если бы мы переопределяли макет категории товаров Virtuemart на фронтенде. Копируем файл:

administrator/components/com_virtuemart/views/product/tmpl/default.php

в стандартный шаблон админки (вероятно, его использует 99% сайтов на Joomla):

administrator/templates/isis/html/com_virtuemart/product/

Каталоги, которых не хватает, создаем вручную.

После этого вносим изменения в скопированный файл.

Вывод остатков по каждому товару в списке товаров Virtuemart в админке.

Для начала давайте взглянем на стандартный макет списка товаров и прикинем место, куда мы хотим вставить информацию об остатках:

Стандартный список товаров Virtuemart

Как по мне, самая бесполезная колонка в этом списке – «Отзывы покупателей». Конечно, если вы используете стандартный функционал отзывов Virtuemart, то она может нести для вас пользу, но если нет, то стоит заменить ее информацией об остатках товаров.

Хочу уточнить, удаление одной из колонок вовсе не обязательно. Вы можете просто добавить в переопределенном макете еще одну дополнительную колонку. Я, в данном примере, заменю колонку отзывов.

Для замены колонки отзывов на колонку остатков в скопированном файле default.php находим:

 

<th width="40px" ><?php echo vmText::_('COM_VIRTUEMART_REVIEW_S'); ?></th>

 

и заменяем на:

 

<th width="40px" ><?php echo $this->sort('product_in_stock', 'Остаток'); ?></th>

 

Далее находим:

 

<!-- Reviews -->

<?php $link = vRequest::vmSpecialChars('index.php?option=com_virtuemart&view=ratings&task=listreviews&virtuemart_product_id='.$product->virtuemart_product_id); ?>

<td align="center" ><?php echo JHtml::_('link', $link, $product->reviews); ?></td>

 

и заменяем на:

 

<td align="center" ><?php echo $product->product_in_stock; ?></td>

 

После этого, вуаля, любуемся результатами:

Измененный список товаров Virtuemart

Заметьте, по колонке «Остаток» возможна сортировка. Это также может быть очень полезно.

Самое прекрасное в этом подходе – вы можете вывести таким образом в список не только остатки, но и любую другую информацию о товаре. Делайте список таким, чтобы вам было удобно с ним работать и при этом не требуется никаких хаков!

Если вы плохо разбираетесь в коде, я готов помочь вам с реализацией за отдельную плату. Также есть возможность сделать поле остатков на этой странице обновляемым, чтобы вы могли менять остатки по каждому из товаров прямо в списке, без перезагрузки страницы. За этими услугами обращайтесь через форму обратной связи.

Понравилась статья? Сохраните себе на стену:

Ваша оценка материала очень важна для нас. Просим вас оценить статью или оставить отзыв в комментариях ниже.

5 1 1 1 1 1 5.00

Добавить комментарий

Для отправки комментария введите код с картинки:
Защитный код
Обновить

Комментарии  

0 # RE: Информация об остатках в списке товаров админки Virtuemart (Кейс #7).Артем 28.11.2016 18:16
Огромное спасибо! Именно то, что и искал!
Может еще сможете подсказать, каким образом можно вывести информацию о скидках на товар?
Интересует вывод DATax. Т.е. если на товар стоит скидка 20%, то чтобы и в списке товаров отображалось 20%. Столбик создал, а вот как вывести значение скидки - неделю голову ломаю.
Заранее огромное спасибо.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Информация об остатках в списке товаров админки Virtuemart (Кейс #7).Wedal 01.12.2016 05:33
Артем, вставьте в столбик код:
Код:<pre>print_r($product)</pre>
Он выведет доступные данные по каждому товару. После этого нужно найти там переменную с нужной вам информацией и вывести только ее. Скорее всего она будет в разделе prices. Но скидки формируются правилами расчета, так что это может быть сложнее.
Ответить | Ответить с цитатой | Цитировать
0 # RE: Информация об остатках в списке товаров админки Virtuemart (Кейс #7).Юрий 21.09.2016 19:02
Помогло, спасибо ! Полезная функция. Кстати, работает и на версии VM 2.6. Только шаблон там bluestork
Ответить | Ответить с цитатой | Цитировать

Вверх