БЛОГОДЖУМЛА - БЛОГ О ДЖУМЛА

Быстрое добавление товаров в корзину в Virtuemart1

  • Категория: Virtuemart 1
  • Автор:
  • Просмотров: 6847

joomla virtuemart корзина

Возникла необходимость быстрого наполнения корзины - менеджер просто вводит артикулы. У многих современных магазинов такая фишка есть. У Virtuemart - нет. Восполним этот пробел. На странице корзины расположим дополнительное поле ввода где и будем писать добавляемые артикулы. Выглядеть это может так:

Мне показалось удобным расположить наше поле на уровне поля ввода кода купона.

Открываем файл \components\com_virtuemart\themes\default\templates\common\couponField.tpl.php и в самом начале добавлем ещё одну ячейку в таблицу. 

<td width="50%">
Быстрое добавление товаров в корзину
<form class="addtocart_form" id="addtocart" name="addtocart" method="post" action="<?php echo $mm_action_url . basename( $_SERVER['PHP_SELF']) ?>">
<input type="text" name="product_sku" width="13" maxlength="30" class="inputbox" />
<input type="hidden" value="1" name="quantity[]">
<input type="submit" title="Добавить" value="Добавить" class="addtocart_button">
<input type="hidden" value="shop.cart" name="page">
<input type="hidden" value="cartadd" name="func">
<input type="hidden" value="<?php echo @intval($_REQUEST['Itemid'])?>" name="Itemid">
<input type="hidden" value="com_virtuemart" name="option">
</form>
</td>
</tr><tr width="50%">

Не забываем сохранить и ковертировать файл в кодировку UTF-8 без ВОМ.

Открываем \administrator\components\com_virtuemart\classes\ps_cart.php

и в начале function add(&$d) после

$_SESSION['last_page'] = "shop.product_details"; 

пишем

if( !empty( $d['product_sku'])) {
$q = "SELECT product_id FROM #__{vm}_product WHERE product_sku = ".$d['product_sku'];
$db->query ( $q );
$db->next_record();
$d['product_id']=$db->f('product_id');
$d['prod_id']=$db->f('product_id');
}

Сохраняем. Наслаждаемся....

 

Спасибо интернет-магазину "Империя" за разрешение показать скрин корзины.

 P.S. Если у Вас артикул содержит буквы - строка запроса должна быть следующей:

$q = "SELECT product_id FROM #__{vm}_product WHERE product_sku = '".$d['product_sku']."'"; 
Back to top