• Объявления

    • dinox

      Закрытый раздел разработчиков   21.08.2017

      У нас на форуме существует закрытый раздел для разработчиков в котором мы обсуждаем нюансы работы на нашем форуме, в каталоге дополнений и другие моменты которые интересны в большинстве случаев только разработчикам. На данный момент существует лишь 2 условия для попадания:
      1. Наличие промодерированного дополнения в нашем каталоге  2. Отсуствие варезной деятельности 
      Если эти правила выполнены, пишите запрос @ArtemPitov на попадание в раздел разработчиков
Fimo

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

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

Fimo    8

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

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

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

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


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

Добрый день!

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

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

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

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

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

Изменено пользователем Maxim45

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


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

этож опенкарт. свыкнитесь постепенно с редактированием заказов

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


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

Привет! Напишите ваши версии опенкарта.

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


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

Приведу решение проблемы на версии 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;
}

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

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

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


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

Можно попробовать вариант проще.
Ориентировался на код 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

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


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

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

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


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

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

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

 

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

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

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


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

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

 

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

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


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

для 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

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


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

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

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

 

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

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


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

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

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

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

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

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


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

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

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

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

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

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


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

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

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


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

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

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

 

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

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


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

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

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


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

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

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

2.1.0.2

Изменено пользователем hmade

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


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

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

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

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ки есть у автора

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


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

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

 

Opencart.CMS 2.1.0.2.1

 

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

Это как так?

 

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

Изменено пользователем zyto

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


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

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

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

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

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

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

Войти

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

Войти


  • Похожий контент

    • От SestoELEMENTO
      Доброго времени суток. 
      Проблема с CMS, а именно с корзиной, не отправляется заказ, даже больше он не проходит дальше чем с корзины никуда, не фиксируется в разделе заказов в OcStore, не уходит письмо на почту с номером заказа и продукцией, последняя отправка заказа приходила в апреле, особо ничего касательного корзины и файлов simplecheckout не трогал, заметил что не идут заказы только недавно, дополнительно кидаю Mail.log, order.php и order.tpl - файлы отвечающие за отправку, ошибку сам не нашёл, скину еще что-либо, если потребуется. Помогите найти проблему отправки с сайта заказа и почему он не фиксируется в OcStore.
       
      И если я написал не в тот раздел - заранее прошу прощения
      mail.log
      order.php
      order.tpl
    • От contakt
      Добрый день!
      Подскажите пожалуйста, как убрать корзину, нужен просто каталог без оформления, например, вместо купить сделать подробнее, только информация.
      Спасибо.
    • От sv2109


      View File Акции, Подарки
      Больше 10 тысяч загрузок модулей от sv2109!
      Что делает этот модуль?
      Дает возможность создавать и красиво показывать в карточке товара, каталоге и других страницах всевозможные акции. За основу в создании этого модуля был взят опыт больших интернет магазинов.
      Зачем?
      Акции - это очень мощный инструмент продаж с помощью которого при правильном подходе можно в разы увеличить прибыть магазина, так как акция дает сильный стимул купить именно этот товар и именно сейчас.
      Не поэтому ли практически все большие интернет магазины очень активно используют этот инструмент? Зайдите на любой такой магазин и увидите огромное количество акций, скидок, подарков, распродаж итд.
      Что может быть акцией?
      Товар-подарок. Пример: "Купи ноутбук и получи мышку в подарок", "купи смартфон и получи чехол в подарок", "купи фотоаппарат и получи карту памяти в подарок" итд. При добавлении товара в корзину автоматически в корзину добавляется товар-подарок с нулевой ценой. Неизвестный подарок, приз. Пример: "Купите этот товар и получите ценный подарок от нашего магазина". Сам подарок показывается на сайте в виде красивой коробки, что внутри - сюрприз. Суперцена. Показывает что у товара очень привлекательная цена. Скидка на другой товар. Пример: "Купи фотоаппарат и получи скидку 20% на покупку объектива". Розыгрыш призов. Пример: "Среди купивших офисный стул с 1 по 31 декабря будет разыгрываться ноутбук". Бесплатная доставка. Новинка. Показывает, что товар новый. Скидка на товар. "Только 2 ноутбука в 1 руки!" - реальная акция в Розетке Что угодно Некоторые советы по акциям
      обязательно указывайте дату окончания акции! Она должна быть минимальной, а не через 2 месяца. Это дополнительно будет стимулировать покупателя совершить покупку именно сейчас, а не уйти с мыслью вернуться через 2 месяца, то есть никогда. указывайте, что количество подарков или акционных товаров ограничено. Это дополнительно будет стимулировать покупателя купить товар именно сейчас, потому что уже через час подарка может не быть. создавайте реально полезные для ваших покупателей акции, а не банальные 5% при 50% наценке. Иногда полезно даже ничего не заработать на этой первой продаже но получить лояльного, постоянного покупателя, который принесет прибыть в будущем. постоянно экспериментируйте, придумывайте новые, оригинальные акции. постоянно использует этот очень мощный инструмент продаж, а не только перед праздниками. В планах дальнейшее развитие этого модуля.
      Модуль использует vQmod, но возможна установка и без vQmod
      Модуль использует IonCube, обычно на 99% хостингов он установлен, но на всякий случай можете проверить.
      Одна лицензия модуля позволяет установить этот модуль на 1 домене.
      Совместимость:
      Модуль должен работать на всех 1.5.х версиях OpenCart, OcStore.
      Версию для OpenCart 2.0 можно скачать тут
      Демо:
      Товар 1 Товар 2 Товар 3 Товар 4 Товар 5 Категория Админка Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2014
      Submitter sv2109 Submitted 12/12/2014 Category Модули Системные требования Сайт разработчика sv2109.com Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1 OpenCart.Pro, ocShop OcShop 1.5.6.4.х  
    • От sv2109
      Больше 10 тысяч загрузок модулей от sv2109!
      Что делает этот модуль?
      Дает возможность создавать и красиво показывать в карточке товара, каталоге и других страницах всевозможные акции. За основу в создании этого модуля был взят опыт больших интернет магазинов.
      Зачем?
      Акции - это очень мощный инструмент продаж с помощью которого при правильном подходе можно в разы увеличить прибыть магазина, так как акция дает сильный стимул купить именно этот товар и именно сейчас.
      Не поэтому ли практически все большие интернет магазины очень активно используют этот инструмент? Зайдите на любой такой магазин и увидите огромное количество акций, скидок, подарков, распродаж итд.
      Что может быть акцией?
      Товар-подарок. Пример: "Купи ноутбук и получи мышку в подарок", "купи смартфон и получи чехол в подарок", "купи фотоаппарат и получи карту памяти в подарок" итд. При добавлении товара в корзину автоматически в корзину добавляется товар-подарок с нулевой ценой. Неизвестный подарок, приз. Пример: "Купите этот товар и получите ценный подарок от нашего магазина". Сам подарок показывается на сайте в виде красивой коробки, что внутри - сюрприз. Суперцена. Показывает что у товара очень привлекательная цена. Скидка на другой товар. Пример: "Купи фотоаппарат и получи скидку 20% на покупку объектива". Розыгрыш призов. Пример: "Среди купивших офисный стул с 1 по 31 декабря будет разыгрываться ноутбук". Бесплатная доставка. Новинка. Показывает, что товар новый. Скидка на товар. "Только 2 ноутбука в 1 руки!" - реальная акция в Розетке Что угодно Некоторые советы по акциям
      обязательно указывайте дату окончания акции! Она должна быть минимальной, а не через 2 месяца. Это дополнительно будет стимулировать покупателя совершить покупку именно сейчас, а не уйти с мыслью вернуться через 2 месяца, то есть никогда. указывайте, что количество подарков или акционных товаров ограничено. Это дополнительно будет стимулировать покупателя купить товар именно сейчас, потому что уже через час подарка может не быть. создавайте реально полезные для ваших покупателей акции, а не банальные 5% при 50% наценке. Иногда полезно даже ничего не заработать на этой первой продаже но получить лояльного, постоянного покупателя, который принесет прибыть в будущем. постоянно экспериментируйте, придумывайте новые, оригинальные акции. постоянно использует этот очень мощный инструмент продаж, а не только перед праздниками. В планах дальнейшее развитие этого модуля.
      Модуль использует vQmod, но возможна установка и без vQmod
      Модуль использует IonCube, обычно на 99% хостингов он установлен, но на всякий случай можете проверить.
      Одна лицензия модуля позволяет установить этот модуль на 1 домене.
      Совместимость:
      Модуль должен работать на всех 1.5.х версиях OpenCart, OcStore.
      Версию для OpenCart 2.0 можно скачать тут
      Демо:
      Товар 1 Товар 2 Товар 3 Товар 4 Товар 5 Категория Админка Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2014
    • От sv2109


      View File Акции, Подарки
      Больше 10 тысяч загрузок модулей от sv2109!
      Это вторая версия модуля, который имеет уже больше 100 покупок!
      Что делает этот модуль?
      Дает возможность создавать и красиво показывать в карточке товара, каталоге и других страницах всевозможные акции. За основу в создании этого модуля был взят опыт больших интернет магазинов.
      Зачем?
      Акции - это очень мощный инструмент продаж с помощью которого при правильном подходе можно в разы увеличить прибыть магазина, так как акция дает сильный стимул купить именно этот товар и именно сейчас.
      Не поэтому ли практически все большие интернет магазины очень активно используют этот инструмент? Зайдите на любой такой магазин и увидите огромное количество акций, скидок, подарков, распродаж итд.
      Что может быть акцией?
      Товар-подарок. Пример: "Купи ноутбук и получи мышку в подарок", "купи смартфон и получи чехол в подарок", "купи фотоаппарат и получи карту памяти в подарок" итд. При добавлении товара в корзину автоматически в корзину добавляется товар-подарок с нулевой ценой. Неизвестный подарок, приз. Пример: "Купите этот товар и получите ценный подарок от нашего магазина". Сам подарок показывается на сайте в виде красивой коробки, что внутри - сюрприз. Суперцена. Показывает что у товара очень привлекательная цена. Скидка на другой товар. Пример: "Купи фотоаппарат и получи скидку 20% на покупку объектива". Розыгрыш призов. Пример: "Среди купивших офисный стул с 1 по 31 декабря будет разыгрываться ноутбук". Бесплатная доставка. Новинка. Показывает, что товар новый. Скидка на товар. "Только 2 ноутбука в 1 руки!" - реальная акция в Розетке Что угодно Некоторые советы по акциям
      обязательно указывайте дату окончания акции! Она должна быть минимальной, а не через 2 месяца. Это дополнительно будет стимулировать покупателя совершить покупку именно сейчас, а не уйти с мыслью вернуться через 2 месяца, то есть никогда. указывайте, что количество подарков или акционных товаров ограничено. Это дополнительно будет стимулировать покупателя купить товар именно сейчас, потому что уже через час подарка может не быть. создавайте реально полезные для ваших покупателей акции, а не банальные 5% при 50% наценке. Иногда полезно даже ничего не заработать на этой первой продаже но получить лояльного, постоянного покупателя, который принесет прибыть в будущем. постоянно экспериментируйте, придумывайте новые, оригинальные акции. постоянно использует этот очень мощный инструмент продаж, а не только перед праздниками. В планах дальнейшее развитие этого модуля.
      Совместимость:
      OpenCart и ocStore 2.0.x, 2.1.x, 2.2.x, 2.3.x
      OpenCart 3.0 - по запросу.
      Версию для Opencart, ocStore 1.5.x можно скачать тут
       
      Модуль использует ocmod
      Модуль использует IonCube, обычно на 99% хостингов он установлен, но на всякий случай можете проверить.
      Одна лицензия модуля позволяет установить этот модуль на 1 домене.
      Демо:
      Товар 1 Товар 2 Товар 3 Товар 4 Товар 5 Категория Админка Для связи с автором модуля пишите на sv2109@gmail.com
      © Стасюк Владимир (sv2109.com), 2016
      Submitter sv2109 Submitted 02/10/2016 Category Модули Системные требования Сайт разработчика sv2109.com Старая цена Метод активации По запросу в ЛС Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х  
  • Последние посетители   0 пользователей онлайн

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