Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Нет в наличии - удалить из корзины


Recommended Posts

Доброго времени суток.
Интересует возможен ли ниже описанный функционал...

Например, накидал посетитель товаров в корзину и призадумался.... Да не на минутку призадумался, а на недельку. А в это время одна из позиций товара закончилась. Понятно , что человек не сможет оформить заказ, потому что товара не стало в наличии, но сама позиция в корзине то висит. И когда посетитель кидал товар в корзину то позиция была в наличии. И мало того , что ему и в голову не приходит что товар может закончится, так он ещё и не видит что там горят красные звёздочки, потому что он тупо не понимает ситуации, почему  у него нет кнопки ОФОРМИТЬ ЗАКАЗ.
Так вот хотелось бы узнать. Возможно ли сделать так чтобы товар автоматически удалялся с корзины при обнулении количества товара.

Как это сделано , например, на сайте katrin-artshop.com

Настоящим временем это проверить конечно не удастся. Ну может кто знаком с сайтом...

Надіслати
Поділитися на інших сайтах


3 минуты назад, prochet сказал:

По умолчанию срок жизни корзины (сессии) ограничен минутами...

И обнулится вся корзина?
Это не вариант.

 

Не знаю какие  у кого ограничения,  у меня несколько дней висит товар в корзине и ни какой срок жизни по умолчанию не страшен )

Змінено користувачем Allaur
Надіслати
Поділитися на інших сайтах


То есть готового решения этого вопроса нет...

48 минут назад, thentru сказал:

Добавить нужную проверку в класс корзины
\system\library\cart.php

Сколько будет стоить ваше решение?
vqmod   OS1.5x

Надіслати
Поділитися на інших сайтах


Вопрос поднялся у меня в теме, ответил там, перенесу сюда

 

Мне кажется это нужно делать в момент авторизации пользователя, просто добавить пару строк кода в класс покупателя: обход товаров в корзине, если наличие ноль - удаление. Всё же по опыту предвижу больше вопросов, нежели пользы. Когда товар добавляется в корзину, есть в миникорзине, но внезапно нет в заказе - это понятно владельцу магазина, так как он это включил через настройку. Но абсолютно непонятно пользователю, впервые попавшему на сайт. Это на самом деле довольно тонкий нюанс.

 

Например в файлах

 

\catalog\controller\account\login.php

\catalog\controller\checkout\login.php

 

добавить после строки

 

unset($this->session->data['guest']);

 

код

 

foreach ($this->cart->getProducts() as $product) {
  if (!$product['stock']) {
    $this->cart->remove($product['key']);
  }
}

  • +1 1
Надіслати
Поділитися на інших сайтах

1 час назад, deeman сказал:

Вопрос поднялся у меня в теме, ответил там, перенесу сюда

 

Мне кажется это нужно делать в момент авторизации пользователя, просто добавить пару строк кода в класс покупателя: обход товаров в корзине, если наличие ноль - удаление. Всё же по опыту предвижу больше вопросов, нежели пользы. Когда товар добавляется в корзину, есть в миникорзине, но внезапно нет в заказе - это понятно владельцу магазина, так как он это включил через настройку. Но абсолютно непонятно пользователю, впервые попавшему на сайт. Это на самом деле довольно тонкий нюанс.

 

Например в файлах

 

\catalog\controller\account\login.php

\catalog\controller\checkout\login.php

 

добавить после строки

 

unset($this->session->data['guest']);

 

код

 

foreach ($this->cart->getProducts() as $product) {
  if (!$product['stock']) {
    $this->cart->remove($product['key']);
  }
}


Благодарю. Протестирую, отпишусь.

=====================================

/catalog/controller/checkout/simplecheckout_login.php

сюда ещё добавил
не удаляется

Змінено користувачем Allaur
Надіслати
Поділитися на інших сайтах


  • 2 years later...

Тоже задался этим вопросом.

2 года прошло, может уже не актуально.

В

\system\library\cart.php

добавил

 

 

в массиве

$product_data[] = array(

 

'stock_status'    => $product_query->row['stock_status_id'],

 

и 

 

 

   public function hasPrice() {
        foreach ($this->getProducts() as $product) {
            if ($product['price'] == 0 && $product['stock_status'] == 5) {
                $query = $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "' AND product_id = '" . (int)$product['product_id'] . "'");
            }
        }

        return true;
    }

 

также в файлах

 

\catalog\controller\checkout\cart.php

\catalog\controller\checkout\checkout.php

 

добавил проверку этого класса,

удаляется из корзины товар, если цена вдруг стала равна 0 (авторизован или нет)

Наколхозил, но работает 

Змінено користувачем vuraddo
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.