Для добавления товара в корзину по его id добавляем код в нужное место, и указываем следующие параметры:
1. $_REQUEST['quantity'][0] = 1; -- Количество товара для добавления
2. $this->product->virtuemart_product_id -- идентификатор id товара в магазине;
$cart = VirtueMartCart::getCart(); $_REQUEST['quantity'][0] = 1; $cart->add(array('0' => $this->product->virtuemart_product_id)); $cart->prepareCartData();
$cart = VirtueMartCart::getCart(); -- Получить корзину из сессии;
$cart->add(array('0' => $this->product->virtuemart_product_id)); -- Добавить товар в корзину;
$cart->prepareCartData(); --Подготовка данных корзины;
Через ссылку для
http://ваш домен/index.php?option=com_virtuemart&view=cart&task=add&virtuemart_product_id[]={offer_id}&quantity=1
Через ссылку
http://ваш домен/index.php?option=com_virtuemart&view=cart&task=add&virtuemart_product_id[]=id-ТОВАРА&quantity=1
Комментарии
ваш сайт/index.php? option=com_virt uemart&view=car t&task=delete&r emoveProductCar t=cart_virtuema rt_product_id=3
где cart_virtuemart _product_id=3 это id товара внутри корзины $cart = VirtueMartCart: :getCart(); а не id товара в списке товаров магазина. вот получаете из $cart нужный id для удаляемого товара и вставляете его в ссылку, которую я написал выше и товар из корзины удалится.
В общем мне нужно чтобы когда допустим клиент накидывает в корзину товаров на сумму свыше 1500р, автоматически добавлялся подарок А, при сумме свыше 3000р, добавлялся подарок Б....для реализации добавления товара я сделал Вашим способом из статьи), но для полной реализации задумки нужно чтобы при достижении допустим в корзине 3000р удалялся подарок который добавляется при 1500р. Не знаю понятно ли объяснил.
На формуах нашел вот такое решение, но как ни колупаю его, оно не работает(
function removeProductFr omCart($cartprd el){
$cart = json_decode($_S ESSION['__vm'][ 'vmcart']);
foreach($cart-> cartProductsDat a as $k){
if($v->virtuema rt_product_id == $cartprdel) unset($cart->ca rtProductsData- >$k);
}
$_SESSION['__vm ']['vmcart'] = json_encode($cart);
}
Поидее вам просто надо написать плагин для VM например для группы "vmpayment" где будет отслеживать 3 триггера события
1. plgVmOnAddToCar t // добавление в корзину
2. plgVmOnRemoveFr omCart // удаление из корзины
3. plgVmOnUpdateCa rt // изменение корзины (например человек увеличил или уменьшил количество какого то товара, не путайте с полным удалением какого то товара из корзины, это событие plgVmOnRemoveFr omCart
после каждого такого действия в VM срабатывает один из этих триггеров, вот каждый раз после одного из событий вы берете и запускаете свою НАПИСАННУЮ вами функцию, которая будет :
1. получать текущую корзину $cart
2.смотреть на общую "сумму" покупок
3. если больше 1500р (можете в настройки плагина прописать этот параметр, чтобы в код не лазить если сумму изменить надо), но меньше 3000 , то проверяет есть ли уже товар А (для 1500р) в корзине если нет, то добавить, если есть то ничего не делать
4. если больше 3000р и в корзине есть товар А то товар А удалить, проверить есть ли товар В в корзине, если нет то добавить товар В если есть то ничего не делать.
5. если сумма стала меньше 1500 то удалить А , если меньше 3000 то удалить В и добавить А.
ну думаю задумка понятна?
ссылка stackoverflow.c om/questions/28 691203/how-to-r emove-a-single- product-from-mo d-virtuemart-ca rt
RSS лента комментариев этой записи