Перейти к содержанию
Форум поддержки пользователей VamShop

N-е количество товара в корзину через ajax ? Как?


Рекомендуемые сообщения

На кнопках добавления в корзину стоит обработчик onClick="doBuyNow('485','1'); Такая кнопка может находиться, например, в списке товаров категории.

По умолчанию забито количество 1.

При изменении количества товара на отличное от 1 всёравно в корзину попадает 1.

Копал, копал. Концы найти трудно. Подскажите, кто знает.

ver 1.76

P.S.: Обычный ввод количества через <input type="text" name="products_qty" value="1" size="3" /> на карточке товара не подходит.

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте в /jscript/jscript_ajax_cart.js поменять:

                     data: {q : 'includes/modules/ajax/ajaxCart.php', action : 'cust_order', products_qty : 1, pid : id},

на:

                     data: {q : 'includes/modules/ajax/ajaxCart.php', action : 'cust_order', products_qty : quantity, pid : id},

 

Ссылка на сообщение
Поделиться на другие сайты

Менял так. И сейчас стоит так, не НЕ работает.

По моему эти данные (data -> products_qty) дальше нигде не используются. похоже, там что-то намечалось, но не дописано.

Короче - это не работает.

 

Ссылка на сообщение
Поделиться на другие сайты

Вам нужно именно в списке товара?!

Вот например такое видели - http://www.molodezky.pp.ua/pole-vvoda-kolichestva-v-listing-tovara-s-vklyuchennoj-ajax-korzinoj-vamshop/

Ссылка на сообщение
Поделиться на другие сайты

Посмотрел. Спасибо, Саша. Но этот код 2010 года. Там ничего нового и революционного и от того, который сейчас (2015 г) в магазине (v 1.76) не отличается принципиально. Вот код который сейчас в магазине:

<form name="cart_quantity" id="cart_quantity" action="http://mydomain.ru/mypagename.html?action=add_product" method="post" onsubmit="doAddProduct(this); return false;" class="form-inline">

...

<div class="inner nobottom product-cart">
<label>Количество:</label>
<input type="text" name="products_qty" value="1" size="3" /> <input type="hidden" name="products_id" value="10" />
<button id="add_to_cart" type="submit" class="btn btn-inverse"><i class="fa fa-shopping-cart"></i> Добавить в корзину</button>
</div>

...

</form>

К вопросу где нужно. Это штука не работает, и нужна в карточке товара.

Количество товара формируется динамически по действиям пользователя. Пользователю предлагается только нажать кнопку КУПИТЬ. Там в onClick="doBuyNow('485','25'); уже прописано количество (25). Само добавление в корзину работает, но количество не передаётся. Не передаётся, даже если тупо пописывать (скриптом) в карточке товара в поле

<input type="text" name="products_qty" value="1" size="3" />

products_qty нужное значение value. Значение products_qty (в обычных случаях) передаётся через POST оттуда. Больше неоткуда.

Код этой дополнительной кнопки стандартный:

<a class="btn btn-add-to-cart" href="http://mydomain.ru/mypagename.html?action=buy_now&amp;BUYproducts_id=10" onClick="doBuyNow('10','25'); return false;"><i class="fa fa-shopping-cart"></i> Купить</a>';

Концы найти не могу, где тупо прописывается 1-ца, и игнорируется указанное количество.

Ссылка на сообщение
Поделиться на другие сайты

Если в карточке товара, то используется ведь не doBuyNow, а в карточке товара используется doAddProduct

Видимо, нужно какой-то свой код добавить в doAddProduct

По умолчанию берётся значение из поля Количество на странице карточки товара.

На странице карточки товара по умолчанию нет doBuyNow

doBuyNow - это для страницы со списком товара, по идее.

Ссылка на сообщение
Поделиться на другие сайты

doBuyNow тоже используется в карточке товара, например, у сопутствующих товаров. И он работает и товар в корзину добавляется (только в том же количестве 1 шт!!)

С карточки товара надо будет добавлять не только текуший товар с количеством отличным от 1, но и некоторые другие товары неким образом связанные с ним. Да те же сопутствующие, например. Но количество у них должно иметь возможность отличаться от 1.

Ссылка на сообщение
Поделиться на другие сайты

Тогда наверное input поле для количества добавлять или как-то свой js код писать, не знаю.

В любом случае без правок кода не обойтись.

Ссылка на сообщение
Поделиться на другие сайты

Собственно указание количества товара предусмотрено в onClick="doBuyNow('485','1');

Отчасти вопрос и был про то, почему это не работает?

Ссылка на сообщение
Поделиться на другие сайты

Попробуйте поменять код как во втором моём сообщении + в /includes/cart_actions.php поменять:

					$_SESSION['cart']->add_cart((int) $_GET['pid'], $_SESSION['cart']->get_quantity((int) $_GET['pid']) + 1);

на:

					$_SESSION['cart']->add_cart((int) $_GET['pid'], $_GET['products_qty']);

Теперь, по идее, количество будет передаваться из js кода.

Во всяком случае у меня работает.

Ссылка на сообщение
Поделиться на другие сайты

Афигенна!!!

Работает, Саша! Большое спасибо. Сам бы не так быстро докопался, или вообще отложил бы всё в долгий ящик.

Отсенна, сапасиба!

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...