Перейти к содержанию

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

Всем привет!

Подскажите, пожалуйста, как сделать время жизни товара в корзине вечным (ну или хотя-бы 1 год)?

Я заметил, что у меня товар в корзине живет максимум сутки, а иногда и меньше. Куки не чищу.

 

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

Также планирую использовать email-рассылки по брошенным корзинам. 

Поделиться сообщением


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

Сессия удаляется сразу при закрытии браузера (по умолчанию). А с параметром session_set_cookie_params(2592000, '/'); из ссылки предыдущего ответа - будет жить месяц. 

Если поставите год и у хорошая посещаемость - в папке sessions в корне скопятся сотни тысяч фалов сессии. Весят они мало.

Поделиться сообщением


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

Установил параметр для сессии, корзина все-равно очищается.

На яндекс-маркете можно через год зайти и товар в корзине будет. 

Подскажите что я делаю не так?

Поделиться сообщением


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

>> Подскажите что я делаю не так?

не тратите миллиарды на разработку/поддержку.

Поделиться сообщением


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

Спасибо за содержательный ответ.

А решить проблему на нашем движке можно?

Поделиться сообщением


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

у зарегистрированных покупателей "корзина" сохраняется в базу при выходе (logout).

на все остальное вы повлиять не можете (настройки браузера/переустановленная система/другой девайс/другой браузер/...).

Поделиться сообщением


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

А если один девайс и тот-же браузер и пользователь не зарегистрирован?

Корзина хранится сейчас. Но она хранится пару часов, а нужно, например, 6 месяцев. Это же кука где-то выдается. Понять бы какая и где?

Поделиться сообщением


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

Корзина хранится в сессии, и ее жизнь определяется жизнью сессии

Поделиться сообщением


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

это, блин, печально :(

А ведь какие возможности открылись бы по возвращению покупателей на сайт, путем рассылки им брошенных корзин. Бросил корзину -  получай серию писем! 

В текущей реализации рассылка брошенной корзины не реалистична, так как вернувшийся покупатель своего товара в ней не найдет.

Поделиться сообщением


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

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

 

Но если у вас только товары в сессии - кому вы будете письма-то слать?

Поделиться сообщением


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

а я и не буду слать

есть достаточно много сервисов, которые это сделают за меня. И сделают хорошо.

Словить email пользователя и передать куда надо - не проблема. 

 

Привязка товаров к email возможна, если пользователь потом войдет в магазин со своей учеткой.

 

Идеальный вариант - куки 

хранить в куке ID корзины, саму корзину хранить в БД и подтягивать из базы для определенной куки.

 

Странно, что этот функционал настолько убог в нашей CMS :(

Поделиться сообщением


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

Хм... ну... если вы знаете как, то сделайте это для своего магазина. :(

Поделиться сообщением


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

Придется делать видимо :(

Поделиться сообщением


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

Придется делать видимо :(

Ну как, сделали??

Поделиться сообщением


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

тут про полгода жизни корзины говорят, но это наверное странно и бессмысленно, за пол года товар изменится и цена на него тоже. Пару недель ещё куда не шло.

Поделиться сообщением


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

Я с такой же проблемой столкнулся. Поставил время жизни сессии 1 месяц. В результате сессия админки держится, а корзина сбрасывается через 1 час. Кто то смог настроить на ОС 2.2.?

Поделиться сообщением


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

Проблема решена так:

 

Для опенкарта 2.2: здесь /system/library/session.php меняем значение в строке

session_set_cookie_params(0, '/');

на

session_set_cookie_params(60*60*24, '/');

А также вот здесь: /system/library/cart/cart.php меняем значение в строке $this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE customer_id = '0' AND date_added < DATE_SUB(NOW(), INTERVAL 1 HOUR)"); на вот такое:

$this->db->query("DELETE FROM " . DB_PREFIX . "cart WHERE customer_id = '0' AND date_added < DATE_SUB(NOW(), INTERVAL 24 HOUR)");

Для других версий примерно такая-же процедура. Пути могут немного отличаться.

  • +1 4

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.