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

Ошибка с корзиной при изменении заказа, ПОМОГИТЕ РЕШИТЬ!


Fimo

Recommended Posts

Добрый день!
Помогите решить проблему движка, нашел ошибку но нигде не могу найти человека кто бы уже сталкивался с такой проблемой движка, видимо я буду первым ))

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

Помогите решить данную проблему в движке!!! Прошу!!!

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


  • 3 months later...

Добрый день!

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

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

Помогите решить данную проблему в движке!!! Прошу!!!

Идентичная проблема, У Вас получилось найти причину и как победили?

Только в добавок к всему товар который пользователь добавил в корзину после оформления заказа весь сыпется в редактируемый товар!

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


  • 1 month later...

Приведу решение проблемы на версии 1.5.5.x

 

В файле catalog/controller/checkout/manual.php находим строку:

$this->customer->login($customer_info['email'], '', true);

После неё добавляем:

$cart_save = isset($this->session->data['cart']) ? $this->session->data['cart'] : array();

В конце файла еть блок кода:

			// Reset everything
			$this->cart->clear();
			$this->customer->logout();
			
			unset($this->session->data['shipping_method']);
			unset($this->session->data['shipping_methods']);
			unset($this->session->data['payment_method']);
			unset($this->session->data['payment_methods']);
			unset($this->session->data['coupon']);
			unset($this->session->data['reward']);
			unset($this->session->data['voucher']);
			unset($this->session->data['vouchers']);

Именно в конце файла. Не в начале.

 

В этом блоке после строки:

$this->cart->clear();

Добавляем:

if (!empty($cart_save)) {
  $this->session->data['cart'] = $cart_save;
}

Нет возможности проверить. Но должно помочь.

Напишите, как пройдёт после доработки.

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

Можно попробовать вариант проще.
Ориентировался на код ocStore 1.5.5.1.2, но скорее всего и на других версиях 1.5.5.х будет так же.

В конце файла перед строкой:

$this->customer->logout();

Добавить:

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

Это предотвратит затирание корзины клиента при логауте.

 

P.S.:

И после строки:

$this->customer->logout();

Добавить:

$this->session->data['cart'] = array();
Змінено користувачем mpn2005
Надіслати
Поділитися на інших сайтах

А в версиях 2.х? начинаю редактировать заказ - у клиента в корзину добавляются товары из заказа, а если у него корзина не пустая - в редактируемый заказ добавляются товары из корзины. Странненько!

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


А в версиях 2.х? начинаю редактировать заказ - у клиента в корзину добавляются товары из заказа, а если у него корзина не пустая - в редактируемый заказ добавляются товары из корзины. Странненько!

Нет особо времени просматривать все версии двойки. Там местами ой какие интересные отличия в структуре и коде.

 

Могу посмотреть на конкретно указанную версию, если интересует.

И описать, как там этот процесс организован.

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

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

 

system/library/session.php

 

для 1.5.5.1

<?php
class Session {
    public $data = array();
            
    public function __construct() {        
        if (!session_id()) {
            ini_set('session.use_cookies', 'On');
            ini_set('session.use_trans_sid', 'On');
            
            session_set_cookie_params(2592000, '/');
            session_start();
        }
    
        $this->data =& $_SESSION;
    }
    
    function getId() {
        return session_id();
    }
}
?>

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

для opencart 2.*

<?php
class Session {
	public $data = array();

	public function __construct($session_id = '',  $key = 'default') {
		if (!session_id()) {
			ini_set('session.use_only_cookies', 'Off');
			ini_set('session.use_cookies', 'On');
			ini_set('session.use_trans_sid', 'On');
			ini_set('session.cookie_httponly', 'On');

			if (isset($_COOKIE[session_name()]) && !preg_match('/^[a-zA-Z0-9,\-]{22,40}$/', $_COOKIE[session_name()])) {
				exit();
			}

			if ($session_id) {
				session_id($session_id);
			}

			session_set_cookie_params(2592000, '/');
			session_start();
		}

		if (!isset($_SESSION[$key])) {
			$_SESSION[$key] = array();
		}

		$this->data =& $_SESSION[$key];
	}

	public function getId() {
		return session_id();
	}

	public function start() {
		return session_start();
	}

	public function destroy() {
		return session_destroy();
	}
}


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

К сожалению, такие вопросы нельзя решить  однозначно..

Описанный метод подойдет, а может и не подойти.

 

Вас выкидывает из админки, когда вы долго в ней сидите, и ничего не делаете?

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

если мой пример выше не помог, то возможно надо в самом конце .htaccess в корне дописать

php_value session.gc_maxlifetime 604800
php_value session.cookie_lifetime 604800
php_value session.save_path /var/www/*/data/www/sessions/

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

если после вставки этого кода у вас 500 ошибка сервера - то использовать его нет надобности.

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

Люди вы читать умеете?
 
Проблема не связана с истечением срока сессии.
 

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

Это именно checkout/manual.
Этот контроллер используется при редактировании заказа в админке.
И корзина пользователя просто при этом процессе очищается.
Надо подправить код и сохранить пользовательскую корзину.
 
 
Про истечения срока сессии есть и оригинальней приколы у хостеров некторых.
Это очистка временной папки по крону, при этом все сесии (которые там хранятся по умолчанию) теряются.
Помогает сменить папку хранения сессий в htaccess.

Но не на всяком хостинге это разрешено.

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

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

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

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

Да. Я тоже несколько раз перечитывал, пока понял на что это похоже.

 

На самом деле мы только предполагаем, а что там на самом деле не установить (по сумбурному описанию).  :-) 

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

Вот что получается: клиент зарегистрирован, делал заказ вчера. Сегодня я этот заказ редактировал, через пару минут клиент вошел в свой профиль и увидел весь старый редактируемый заказ в своей корзине. Зачем оно ему надо?

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


Даже вот еще что: редактируем заказ: добовляем товар в заказ - у клиента этот товар появляется в корзине, другой добавляем - у клиента уже два товара в корзине. Забавно. Завершаем редактировать заказ, а корзина у клиента остается с товарами.

Ну как такое может быть?

2.1.0.2

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


Даже вот еще что: редактируем заказ: добовляем товар в заказ - у клиента этот товар появляется в корзине, другой добавляем - у клиента уже два товара в корзине. Забавно. Завершаем редактировать заказ, а корзина у клиента остается с товарами.

Ну как такое может быть?

2.1.0.2

Посмотрите

https://opencartforum.com/files/file/2958-orderpro-%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%BD%D1%8B%D0%B9-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80-%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0-%D0%B4%D0%BB%D1%8F-155x/

может и для 2ки есть у автора

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


  • 4 weeks later...

У меня такая же проблема, удалось кому-нибудь решить?

 

Opencart.CMS 2.1.0.2.1

 

И прикол в том, что если отредактировать заказ в админке - то приходит письмо на почту что поступил новый заказ.

Это как так?

 

PS в моей версии нет файла catalog/controller/checkout/manual.php

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


  • 3 years later...
В 28.07.2016 в 09:24, zyto сказал:

У меня такая же проблема, удалось кому-нибудь решить?

 

Opencart.CMS 2.1.0.2.1

 

И прикол в том, что если отредактировать заказ в админке - то приходит письмо на почту что поступил новый заказ.

Это как так?

 

PS в моей версии нет файла catalog/controller/checkout/manual.php

А вы решили эту проблему?

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


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

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

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

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

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

Вхід

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

Вхід зараз

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

Important Information

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