Перейти к содержанию
Форум поддержки пользователей VamShop

Корзина ошибки и проблемы


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

Добрый день! У меня проблемы :lol: 

1. Попытаюсь пояснить на пальцах, потому что ошибка, потому что отследить ее у меня не получается. Плавающая ошибка, но наблюдается особенно у пользователей хрома.

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

 

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

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, SHKEd сказал:

Добрый день! У меня проблемы :lol: 

1. Попытаюсь пояснить на пальцах, потому что ошибка, потому что отследить ее у меня не получается. Плавающая ошибка, но наблюдается особенно у пользователей хрома.

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

 

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

Здравствуйте!

1. Так а что можо сказать, если Вы даже ссылку не даёте на магазин!? Пришлите хотя бы ссылку, тоже попробовать добавить в корзину. Нужно ведь как-то увидеть "в-живую" этот глюк, что б можно было что-либо сказать.

2. А при оплате онлайн пользователь возвращается с сайта платёжной система в маназин?! Теоретически, коризна не очистится если не вернуться в магазин, т.е. не нажать кнопку Вернуться в магазин на сайте платёжной системы.

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

1.https://akvagrim-studio.ru Ну наврятли вы найдете эту ошибку. Она плавающая и возникает не у всех, не пойму пока что пользователю не возвращается

2. Да, мне нужно сделать так, чтобы корзина очищалась, когда пользователь хочет платить онлайн, или кнопка оплатить была где "Спасибо за заказ" - чтобы корзина уже была пустой, так как сегодня я человеку оформлял заказ с его аккаунта, потому что в админке нельзя выбрать покупателя при создании заказа (!), метод оплаты онлайн. А сие действие из-за ошибки 1  - потому что пользователь не смог оформить заказ - положить товар в корзину - у него ошибка ундефайнд.

И естественно, когда заказ был сформирован, я вышел из его аккаунта и очистил корзину. Естветсвенно у меня очистился и заказ - а позиций там было не мало.... 

И человек может позже же оплатить, а корзина у него не очищена - а он хочет новый заказ O_O) вот такая логика. Админы получили заказ - значит он сформирован и не должен подлежать уже изменению. А то я сейчас сижу и в корзине ужас навожу. Оплата онлайн - пускай следят, на сколько же я закажу)))))

 

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, SHKEd сказал:

Яндекс (все на сайте есть  - мы очистим ваши тестовые заказы =) 

Что б корзина чистилась, попорбуйте в /app/Plugins/Payment/Controller/YandexController.php поменять:

		$content .= '
			<button class="btn btn-default" type="submit" value="{lang}Pay Now{/lang}"><i class="fa fa-dollar"></i> {lang}Pay Now{/lang}</button>
			</form>';

Например на:

		$content .= '
			<button class="btn btn-default" type="submit" value="{lang}Pay Now{/lang}"><i class="fa fa-dollar"></i> {lang}Pay Now{/lang}</button>
			</form>';

			// Empty the cart
			$_SESSION['Customer']['order_id'] = null;

 

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

Но не уверен, что подойдёт такой код, попробуйте.

Наверное сессия обнулится до того как будет форма сгенерирована для перехода к платежу.

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

Да, происходит удаление до)

Повесил на кнопку обработчик, чтобы в ордер контроллер отправил запрос на очистку (знаю, что не правильно) - а только потом отправил уже форму.... 

Подскажите как отправить на сам контроллер яндекса?

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, SHKEd сказал:

Да, происходит удаление до)

Повесил на кнопку обработчик, чтобы в ордер контроллер отправил запрос на очистку (знаю, что не правильно) - а только потом отправил уже форму.... 

Подскажите как отправить на сам контроллер яндекса?

Не знаю, в том же и вопрос, что форма оплаты формируется из сессии, а сессия (корзина) очищается при возвращении с сайта платёжной системы, а сразу два действия на кнопку формы вряд ли можно повесить.

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

Ну ладно, пускай будет так.... АJAX при клике отправляем запрос на контроллер ордера, и отсылаем форму яшке.... Потом чет придумаю... Главное ошибку найди ундефайнд.... 

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

Я думаю, что это как раз связано с неочисткой корзины, т.е. не нажимают вернуться в магазин и корзина остаётся.

Но пока даже и не знаю, как решить эту проблему.

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

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

Я уже решил эту проблему так:

YandexController.php

Замена и дополнения:

public function before_process() {

....

$content .= '
			<button class="btn btn-default" type="button" onclick="submitYandex(this.form)" value="{lang}Process to Payment{/lang}"><i class="fa fa-check"></i> {lang}Process to Payment{/lang}</button>
			</form>';

		$content .= '
			<script>
				function submitYandex(form){
					http_send = "/orders/yandex_form";
			$.ajax({
	        	type: "POST",
	       	 	url: http_send,
				 data: {
					\'clear\': \'clear\',
  				 },
			     success: function(){
	        		$(form).submit();
	        	}
	    	})

		}
			</script>
			';

}

и в  OrdersController.php

public function yandex_form() {
		if ($_POST['clear'] == "clear") {
			$_SESSION['Customer']['order_id'] = null;
		}

	}

создал пустой файл /app/View/Orders/yandex_form.ctp

 

Знаю, что костыль, но работает

Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, SHKEd сказал:

Я уже решил эту проблему так:

YandexController.php

Замена и дополнения:


public function before_process() {

....

$content .= '
			<button class="btn btn-default" type="button" onclick="submitYandex(this.form)" value="{lang}Process to Payment{/lang}"><i class="fa fa-check"></i> {lang}Process to Payment{/lang}</button>
			</form>';

		$content .= '
			<script>
				function submitYandex(form){
					http_send = "/orders/yandex_form";
			$.ajax({
	        	type: "POST",
	       	 	url: http_send,
				 data: {
					\'clear\': \'clear\',
  				 },
			     success: function(){
	        		$(form).submit();
	        	}
	    	})

		}
			</script>
			';

}

и в  OrdersController.php


public function yandex_form() {
		if ($_POST['clear'] == "clear") {
			$_SESSION['Customer']['order_id'] = null;
		}

	}

создал пустой файл /app/View/Orders/yandex_form.ctp

 

Знаю, что костыль, но работает

Понятно, спасибо, что поделились своим решением.

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

Я поймал ошибку ундефайн, что теперь делать то))))

Array
(
    [Order] => Array
        (
            [shipping] => 0
            [tax] => 0
        )

)
Warning (2): Invalid argument supplied for foreach() [APP/Controller/Component/OrderBaseComponent.php, line 130]

https://www.dropbox.com/s/b564yjzdn0ltbxq/2017-07-26_21-32-42.mp4?dl=0

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

А у Вас файл /app/Controller/Component/OrderBaseComponent.php

Такой же как я прицепил к сообщению, размер файла такой же?!

Это когда происходит, после оформления заказа или не важно?!

Вы авторизованы в магазине или нет?!

OrderBaseComponent.php

14 минуты назад, SHKEd сказал:

Я поймал ошибку ундефайн, что теперь делать то))))

 

 

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

Да, я авторизирован

Это происходит в начале заказа) сча попробую выйти.... 

С вашим файлом:

Warning (2): Invalid argument supplied for foreach() [APP/Controller/Component/OrderBaseComponent.php, line 98]

Warning (2): Invalid argument supplied for foreach() [APP/Controller/Component/OrderBaseComponent.php, line 138]

 

Ссылка на сообщение
Поделиться на другие сайты
Только что, SHKEd сказал:

Да, я авторизирован

Это происходит в начале заказа) сча попробую выйти.... 

Ваш файл совпадает с тем, что я прицепил?!

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

С вашим файлом:

Warning (2): Invalid argument supplied for foreach() [APP/Controller/Component/OrderBaseComponent.php, line 98]

Warning (2): Invalid argument supplied for foreach() [APP/Controller/Component/OrderBaseComponent.php, line 138]

 

Я пока не выхожу, подожду вашего ответа.... Может быть пока надо будет проверить, пока авторизирован. А то вдруг убежит ошибка)))) А жалко)))) Так как она с самого начала работы магазина, не попадалась мне))))

Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, SHKEd сказал:

Я пока не выхожу, подожду вашего ответа.... Может быть пока надо будет проверить, пока авторизирован. А то вдруг убежит ошибка)))) А жалко))))

Судя по ошибкам, пишет, что корзина пуста.

т.е. не записываются чтоли данные в order_products таблицы.

Эх, вот бы как-то эту ошибку у себя на компе отловить/увидеть.

Может есть какой-то вариант пошаговых действий, который прям железно приводит к этой ошибке?!

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

Видимо, опять связано со сбросом сессии.

Попробуйте ради эксперимента в /app/Controller/CartController.php поменять, к примеру:

	public function purchase_product () {

на:

	public function purchase_product () {
			// Empty the cart
			$_SESSION['Customer']['order_id'] = null;

 

Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, VaM сказал:

Судя по ошибкам, пишет, что корзина пуста.

т.е. не записываются чтоли данные в order_products таблицы.

Эх, вот бы как-то эту ошибку у себя на компе отловить/увидеть.

Я сам за ней охотился уже полгода)))))))

 

>Может есть какой-то вариант пошаговых действий, который прям железно приводит к этой ошибке?!

Нету ))) она то возникает, то нет. Железно приводит, если человек авторизирован, вот что я понял. И надо проводить разные манипуляции с заказами. Может быть удаление прежних заказов данного аккаунта влияет... не знаю...

 

>>>>>Попробуйте ради эксперимента в /app/Controller/CartController.php поменять, к примеру:

ОШИБКИ НЕТ, УШЛА.... ))) 

Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, SHKEd сказал:

Я сам за ней охотился уже полгода)))))))

 

>Может есть какой-то вариант пошаговых действий, который прям железно приводит к этой ошибке?!

Нету ))) она то возникает, то нет. Железно приводит, если человек авторизирован, вот что я понял. И надо проводить разные манипуляции с заказами. Может быть удаление прежних заказов данного аккаунта влияет... не знаю...

 

>>>>>Попробуйте ради эксперимента в /app/Controller/CartController.php поменять, к примеру:

ОШИБКИ НЕТ, УШЛА.... ))) 

Хорошо.

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

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

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

Да) теперь нельзя заказывать товары))))  так что надо дальше ковырять путь полета товара в корзину... Как-то делать новый ордер айди если корзина в нуле и пошел новый товар в нее

.....

Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, SHKEd сказал:

Да) теперь нельзя заказывать товары))))  так что надо дальше ковырять путь полета товара в корзину... Как-то делать новый ордер айди если корзина в нуле и пошел новый товар в нее

.....

Вот с ковырянием сложнее, не видя этой ошибки.

Может backup базы хотя бы пришлёте свой?!

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

 

Ссылка на сообщение
Поделиться на другие сайты
18 минуту назад, SHKEd сказал:

сча пришлю в личку) 

Спасибо, попробую, может что получится откопать.

А под кем авторизуетесь, т.е. входите под email и паролем каким-то?!

C какими данными входите?!

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