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

Увеличить время хранения товаров в корзине


Recommended Posts

Подскажите, как увеличить время хранения товаров в корзине ocStore 2.3

В файле \system\library\cart.php есть такая строка:

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

изменил 1 HOUR до 1 MONTH , не помогло 

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


01.05.2022 в 12:50, chukcha сказал:

модфикаторы обновили?

не помню, но сейчас точно обновил))

подскажите, хранение корзины месяц будет как-то влиять на производительность, время загрузки страниц ? 

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


01.05.2022 в 13:23, zhizherinv сказал:

не помню, но сейчас точно обновил))

подскажите, хранение корзины месяц будет как-то влиять на производительность, время загрузки страниц ? 

Когда-то будет.

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

01.05.2022 в 14:27, chukcha сказал:

незначительно
Но это также завит от времени жизни сессии

Подскажите, нужно увеличить сессию и всё?

Есть один магазин, в котором моя корзина уже неделю хранится, хочу сделать на opencart так же, но не пойму, что ещё менять надо

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


  • 1 month later...
15.06.2022 в 11:38, Frolly сказал:

UP - актуальная тема. Модуль такой не помог, нужно кровь с носа увеличить время жизни корзины у юзеров, которые не авторизовуются

Ищите в поиске по форуму - ответы есть (в этой теме тоже), но всё делается вручную в движке. Если сами не готовы, то попросите в Услугах.

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


15.06.2022 в 12:09, Frolly сказал:

уже делали и за деньги и в поиске находил, но не держится корзина

Вы, видимо, не совсем поняли как работает корзина для гостей.
В БД у корзины следующая структура:
 

Скрытый текст

image.png.6691a3d541269702e695f48563f9b5b8.png

Если пользователь авторизован, то в поле customer_id записывается id пользователя, товары, опции и время добавления в корзину товаров.
Вы можете вручную изменить код по примеру выше:
 

 

01.05.2022 в 12:38, zhizherinv сказал:

В файле \system\library\cart.php есть такая строка:

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

изменил 1 HOUR до 1 MONTH , не помогло 


Это "должно" изменить срок очистки корзины ДЛЯ НЕ ЗАРЕГИСТРИРОВАННЫХ пользователей.
Но и тут с гостями всё "слегка" иначе.

Когда гость добавляет товар в корзину, то в поле customer_id пишется 0, и теперь важную роль имеет поле session_id
Например, я добавил гостем товар в корзину:
 

Скрытый текст

image.thumb.png.8d2dc6a7394cc14470fc8cbbbc8ec355.png


Как видно:
customer_id = 0
session_id = 0a423da921c30804d3051182bd

Так вот ID сессии хранится в браузере:
 

Скрытый текст

image.thumb.png.dbd8f9073f4eee38359e1d84469d6037.png


И в поле Expires / Mac-age указано "Сеанс"
 

Скрытый текст

image.png.fb9fa787ba03e979401d3daf2077703b.png


Это говорит о том, что срок браузер будет помнить эту сессию ровно столько, сколько установлено у Вас на сервере (у хостинга) время жизни сеанса. В большинстве случаев по дефолту это 1440 секунд (24 минуты)

Скрытый текст

image.png.4a169f68891438ed2bf6f11f410ab919.png


Т.е. через 24 минуты браузер "забудет" эту сессию и создаст новую, соответственно и корзина (что вполне логично) уже будет "чужая"

Потому Ваша задача - увеличить время жизни сессии (но не стоит переусердствовать). 

И вкупе с правками выше (или с упомянутым модулем) корзина будет "жить" ровно столько, сколько нужно Вам.
 

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

дякую  nogocuHoBuk 

Поміг розібрати, навіть зробив відео для мене неуча :) Купував модулі, платив кошти але без результату було нажаль.

Лишу рішення тут.

 

 

Если хостинг поддерживает, то можно в htaccess прописать:
 

php_value session.gc_maxlifetime 259200
php_value session.cookie_lifetime 259200


Если есть возможность править php.ini:
 

session.gc_maxlifetime = 259200 
session.cookie_lifetime = 259200


И, как вариант, в config.php (или index.php) в самом начале
 

ini_set('session.gc_maxlifetime', 259200);
ini_set('session.cookie_lifetime', 259200);

Мені допомогло рішення з php.ini и в config.php

Можливо комусь буде корисно

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


01.05.2022 в 14:27, chukcha сказал:

незначительно
Но это также завит от времени жизни сессии

Читали?

 

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

  • 1 year later...

@nogocuHoBuk, підкажіть будь ласка, а чи можна задати БІЛЬШЕ значення життя сессії ніж 259200 ? Це може якось вплинути в подальшому на швидкість роботи сайту?

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


  • 6 months later...

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

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

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

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

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

Вхід

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

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

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