Минимальное количество товара при покупке в форме добавления товара в корзину

Иногда возникает ситуация, что товар должен продаваться не поштучно, а например, комплектами по 10 штук, а цена соответственно указана за 1 штуку.

Для этого можно использовать встроенную функцию Virtuemart как минимальное количество продаваемого товара. Находится это поле в карточке товара.

Но, к сожалению, в формах на сайте value инпутов остается равным единице. Логично было бы подставлять наше значение минимального количества товара, но разработчики не догадываются это сделать. Выход, к счастью, нашелся на форуме virtuemart.net.

В файле /components/com_virtuemart/themes/ default/templates/ product_details/includes/ quantity_box_general.tpl.php нужно добавить следующий код после строки extract( $quantity_options );


<?php

//Minimum Quantity added by Asgard Development
require_once('administrator/components/com_virtuemart/classes/ps_product.php');
$minimum_quantity_ad = ps_product::product_order_levels($prod_id);

//Minimum Quantity added by Asgard Development
if($minimum_quantity_ad[0])
$quantity = $minimum_quantity_ad[0];

php?>

Как убрать сохранение номера страницы в Virtuemart?

Существует в Virtuemart такая странная баго-фича. Например, в категории товаров мы переходим на вторую страницу, затем возвращаемся на главную страницу, а потом опять заходим в эту категорию, то попадаем опять на вторую страницу. WTF? Некоторым покажется удобным, но клиенты сойдут с ума. Поэтому убираем:
В файле: /administrator/components/com_virtuemart/classes/mainframe.class.php
Найдем и уберем код

<span style="font-family: monospace;">if( isset($_SESSION['userstate'][$key]) &amp;&amp; !is_null($_SESSION['userstate'][$key])) {</span>
<code><code> return $_SESSION['userstate'][$key];
}

и далее

<span style="font-family: monospace;">$_SESSION['userstate'][$key] = $value;

Как убрать «Налог на стоимость заказа» в Virtuemart

Для многих магазинов налог учитывать в ценах совсем не обязательно, следовательно нужно избавляться от него. Сделать это очень просто. Для этого нужно исправить template-файлы корзины, лежат они в папке \administrator\components\com_virtuemart\html\templates\basket

В файлах basket_b2b.html.php и ro_basket_b2b.html.php находим и удаляем следующие строки:

if ( $tax ) { ?>
<tr>
<td colspan="4" align="right" valign="top"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_TOTAL_TAX') ?>: </td>
<td align="right"><?php echo $tax_display ?></td>
</tr>
<?php }

В файлах basket_b2c.html.php и ro_basket_b2c.html.php убираем этот код:

<?php if ( $show_tax ) { ?>
<tr>
<td colspan="4" align="right" valign="top"><?php echo $VM_LANG->_('PHPSHOP_ORDER_PRINT_TOTAL_TAX') ?>: </td>
<td colspan="3" align="right""><?php echo $tax_display ?></td>
</tr>
<?php } ?>

Как убрать meta тэг с name generator content Joomla 1.5

Если посмотреть исходный код страницы, можно найти строку в метаполях:

<meta name="generator" content="Joomla! 1.5 - Open Source Content Management" />

Конечно же разработчики Joomla! хотят обозначить используемую систему управления контентом и эта строка вроде бы безобидно висит в коде и никаму не мешает. Но тут есть небольшой минус: злоумышленнику даётся возможность узнать, на какой CMS построен сайт. А некоторые просто не хотят иметь на сайте лишний код, так же как и указывать на определённую CMS, особенно бесплатную, ведь у многих предвзятое отношение к слову «бесплатно».

Как же удалить этот метатег GENERATOR ? Итак, приступим:

В директории /libraries/joomla/document/html/renderer/ находим файл head.php

В нём находим строку (строка 83):

$strHtml .= $tab.'<meta name="generator" content="'.$document->getGenerator().'" />'.$lnEnd; 

Удаляем эту строку полностью и сохраняемся

Обновляем страницу сайта (если включено кеширование сайта- очищаем кеш в админ-панеле) и проверяем. Если всё сделано правильно, то метатега «generator» на странице не будет.

Всплывающее уведомление virtuemart в Opera уходит вниз страницы?

Существует такой интересный глюк, когда окошко уведомления Virtuemart в Opera слетает вниз страницы. Обычно это происходит в старых версиях Virtuemart, насколько я помню эту ошибку уже исправили, но если вы столкнулись с этой проблемой, то вот решение.

Нужно внести изменения в файл components\com_virtuemart\js\mootools\mooPrompt.js

Нужно сделать поиск и замену с Window.getHeight() на (Window[‘innerHeight’] || Window.getHeight())

Кстати, если нужно поменять время задержки окна, то это делается в файле /components/com_virtuemart/themes/default/theme.js

Нужно найти строчку setTimeout( ‘document.boxB.close()’, 3000 ); и исправить значение на нужное в миллисекундах