Все привет! Мучаюсь уже несколько дней, но никак не могу сделать Ajax-добавление в корзину в сопутствующих товарах. При этом в категориях без проблем работает Ajax, а вот в сопутствующих товарах на карточке товара при нажатии на кнопку купить - выбрасывает сразу в корзину. Кто знает как это исправить?
Может уже не актуально, но т.к. меня сюда привел Гугл, но ответа здесь я не нашел, привожу свое решение для VM 1.1.9. В файле \components\com_virtuemart\themes\ВАША ТЕМА\templates\common\productsnapshot.tpl.php Код (CODE): <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart"> меняем на Код (CODE): <form action="<?php echo $mm_action_url ?>index.php" method="post" name="addtocart" id="addtocart<?php echo $i ?>" class="addtocart_form" <?php if( $this->get_cfg( 'useAjaxCartActions', 1 ) && !$notify ) { echo 'onsubmit="handleAddToCart( this.id );return false;"'; } ?>> Далее код Код (CODE): <input type="hidden" name="page" value="shop.cart" /> меняем на Код (CODE): <input type="hidden" name="page" value="shop.product_details" /> Все работает.
А вот и не работает. Вы взяли два не полных решения и совместили в одно. вот этой строке Код (html): <input type="hidden" name="page" value="shop.cart" /> указывается на какую страницу будет выкидывать после добавления в корзину, это актуально в случае без использования AJAX. а при замене строки Код (html): <form action="... действительно работает черех AJAX только добавляется всегда первый товар из списка сопутствующих. Например у меня их 3, и на какую кнопку "купить" я бы не жал - добавляется только первый из списка. Так что решения пока нету :-( курим гугль дальше..
Попробуйте вместо <?php echo $i ?> поставить <?php echo $product_id ?> У меня реализовано немного по другому, через плагин VirtueMart Product Snapshot, в нем вывод того что нужно удобно сделан, но ошибка была точно такая же.