Перейти к содержанию
Официальный форум поддержки Simpla

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


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

Подскажите!

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

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

в файле 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

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

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

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

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

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

Изменения нужно делать только в функции 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/");
}

Ссылка на сообщение
Поделиться на другие сайты
  • 4 месяца спустя...

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

Ссылка на сообщение
Поделиться на другие сайты
  • 7 месяцев спустя...

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...