Jump to content

Как сделать добавление в корзину без перезагрузки?


Recommended Posts

Подскажите!

Или как сделать так, чтоб товар добавлялся в корзину, пользователь не отправлялся на страницу оформления заказа, а оставался на той где нажал купить?

Link to post
Share on other sites

в файле Cart.class.php замените строки
if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
header("Location: http://$this->root_url/cart/");

на
if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
{
if($_COOKIE['from'])
header("Location:".$_COOKIE['from']);
else
header("Location: http://$this->root_url/cart/");
}

Взято отсюда http://simpla.reformal.ru/proj/?ia=14680

Link to post
Share on other sites

Так а как сделать чтоб человек понимал что заказ был отправлен в корзину? То есть что бы при нажатии кнопки "в корзину" отображалось сообщение о том что товар отправлен в корзину, и были кнопки продолжить выбор и перейти в корзину. В этом есть необходимость, у меня оптовики покупают по 200-300 наименований, очень неудобно.

Link to post
Share on other sites

Если корзина на видном месте и заметна, то можно обойтись и без доп. окон - в ней будет изменяться кол-во товаров и цена (страница перезагружается, хоть и в корзину не перекидывает). Но можно добавить модальное окно с оповещением. Хотя это было бы актуальнее, если бы страница не перезагружалась после каждого добавления товара.

Link to post
Share on other sites

Изменения нужно делать только в функции prepare, т.е. вставить условие после 58 строки. Всего в коде строка
if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1) встречается 3 раза, может не в то место условие ставите.

должно быть так (у меня работает, версия 1.4):

//////////////////////////////////////////
// Изменения товаров в корзине
//////////////////////////////////////////
function prepare()
{
// Если передан url товара, добавим его в корзину
if($variant_id = intval($this->param('variant_id')))
{
// Возможно нам передали и количество товара
// Если не указано количество, считаем что один
$amount = max(1, intval($this->param('amount')));

// Выберем товар из базы, заодно убедившись в его существовании
$variant = Storefront::get_variant($variant_id);

// Если товар существует, добавим его в корзину
if(!empty($variant) && $variant->stock>0)
{
// Не дадим больше чем на складе
$amount = min($amount, $variant->stock);

$this->update($variant_id, $amount, true);

if(!isset($_POST['submit_order']) || $_POST['submit_order']!=1)
{
if($_COOKIE['from'])
header("Location:".$_COOKIE['from']);
else
header("Location: http://$this->root_url/cart/");
}

Link to post
Share on other sites
  • 4 months later...

У меня почему то именно в Internet Explorer добавляет в корзину товар в количестве 2 шт. постоянно. Т.е. при каждом щелчке на кнопку купить - количество накручивается на +2. В чем может быть дело? В других браузерах нормально.

Link to post
Share on other sites
  • 7 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...