Для добавления товара в корзину по его 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

Друзья!!!
Спасибо Вам всем большое за поддержку проекта. Если не сложно при переводе пишите в комментарий свой email. Я буду знать от кого и мне очень приятно будет оказать посильную помощь этому человеку.

Если кому нужен другой по функционалу плагин, модуль или еще что то пишите в комментариях.

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


Комментарии   

0 # Макс 11.06.2021 23:33
Доброй ночи, с добавлением товара разобрался, не подскажите как удалить товар из корзины ?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Super User 12.06.2021 08:25
Зайдите в корзину и нажмите удалить товар, вы увидите, что произойдет переход по ссылке (если у вас ajax удаление, то смотрите обращение по ссылке в "сети" через консоль браузера)
ваш сайт/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 для удаляемого товара и вставляете его в ссылку, которую я написал выше и товар из корзины удалится.
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Макс 12.06.2021 09:21
Спасибо, но ссылка немного не подходит для моих нужд)
В общем мне нужно чтобы когда допустим клиент накидывает в корзину товаров на сумму свыше 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);
}
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Super User 12.06.2021 09:44
то, что вы хотите сделать я примерно понял, но вот ваш код мне не совсем понятен, напишите ссылку на этот форум, откуда вы взяли этот кусок кода, только не пишите в ссылке h t t p адрес иначе в комментарий не добавите, я из за спама закрыл добавление таких комментов.

Поидее вам просто надо написать плагин для 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 то удалить В и добавить А.

ну думаю задумка понятна?
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Макс 12.06.2021 10:08
Да, спасибо, задумку понял, с php еще на ВЫ, поэтому приходится искать и колупать :)
ссылка stackoverflow.c om/questions/28 691203/how-to-r emove-a-single- product-from-mo d-virtuemart-ca rt
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Super User 12.06.2021 10:12
да и думаю, подарочные товары, которые надо добавить или убрать из корзины, тоже в настройки плагина вынести и указывать их через их id или подключить поле VM и выбирать прямо из списка товаров.( Через id проще реализовать.)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору
0 # Макс 12.06.2021 10:15
Спасибо, буду пробовать)
Ответить | Ответить с цитатой | Цитировать | Сообщить модератору