SHKEd 0 Опубликовано 25 июля, 2017 Жалоба Share Опубликовано 25 июля, 2017 Добрый день! У меня проблемы :lol: 1. Попытаюсь пояснить на пальцах, потому что ошибка, потому что отследить ее у меня не получается. Плавающая ошибка, но наблюдается особенно у пользователей хрома. Человек заходит, но при добавлении в корзину у него ошибка ундефайнд, товар не добавляется. Все капец - приплыли. Наверняка что-то связано с сессиями, но не знаю где капать, что смотреть и как эту ошибку вызвать)))) 2. Человек заходит, делает заказ, выходит из лк - (корзина остается, если оплата онлайн а он пока не оплатил) - он удаляет товары - в базе заказов они тоже исчезают, хотя по логике - он вышел из аккаунта и заказ уже оформлен! Надо очищать корзину уже когда заказ подтвержден. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 июля, 2017 Жалоба Share Опубликовано 25 июля, 2017 1 час назад, SHKEd сказал: Добрый день! У меня проблемы :lol: 1. Попытаюсь пояснить на пальцах, потому что ошибка, потому что отследить ее у меня не получается. Плавающая ошибка, но наблюдается особенно у пользователей хрома. Человек заходит, но при добавлении в корзину у него ошибка ундефайнд, товар не добавляется. Все капец - приплыли. Наверняка что-то связано с сессиями, но не знаю где капать, что смотреть и как эту ошибку вызвать)))) 2. Человек заходит, делает заказ, выходит из лк - (корзина остается, если оплата онлайн а он пока не оплатил) - он удаляет товары - в базе заказов они тоже исчезают, хотя по логике - он вышел из аккаунта и заказ уже оформлен! Надо очищать корзину уже когда заказ подтвержден. Здравствуйте! 1. Так а что можо сказать, если Вы даже ссылку не даёте на магазин!? Пришлите хотя бы ссылку, тоже попробовать добавить в корзину. Нужно ведь как-то увидеть "в-живую" этот глюк, что б можно было что-либо сказать. 2. А при оплате онлайн пользователь возвращается с сайта платёжной система в маназин?! Теоретически, коризна не очистится если не вернуться в магазин, т.е. не нажать кнопку Вернуться в магазин на сайте платёжной системы. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 25 июля, 2017 Автор Жалоба Share Опубликовано 25 июля, 2017 1.https://akvagrim-studio.ru Ну наврятли вы найдете эту ошибку. Она плавающая и возникает не у всех, не пойму пока что пользователю не возвращается 2. Да, мне нужно сделать так, чтобы корзина очищалась, когда пользователь хочет платить онлайн, или кнопка оплатить была где "Спасибо за заказ" - чтобы корзина уже была пустой, так как сегодня я человеку оформлял заказ с его аккаунта, потому что в админке нельзя выбрать покупателя при создании заказа (!), метод оплаты онлайн. А сие действие из-за ошибки 1 - потому что пользователь не смог оформить заказ - положить товар в корзину - у него ошибка ундефайнд. И естественно, когда заказ был сформирован, я вышел из его аккаунта и очистил корзину. Естветсвенно у меня очистился и заказ - а позиций там было не мало.... И человек может позже же оплатить, а корзина у него не очищена - а он хочет новый заказ O_O) вот такая логика. Админы получили заказ - значит он сформирован и не должен подлежать уже изменению. А то я сейчас сижу и в корзине ужас навожу. Оплата онлайн - пускай следят, на сколько же я закажу))))) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 июля, 2017 Жалоба Share Опубликовано 25 июля, 2017 А какой вообще у Вас модуль оплаты онлайн используется?! Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 25 июля, 2017 Автор Жалоба Share Опубликовано 25 июля, 2017 Яндекс (все на сайте есть - мы очистим ваши тестовые заказы =) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 июля, 2017 Жалоба Share Опубликовано 25 июля, 2017 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; Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 июля, 2017 Жалоба Share Опубликовано 25 июля, 2017 Но не уверен, что подойдёт такой код, попробуйте. Наверное сессия обнулится до того как будет форма сгенерирована для перехода к платежу. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 25 июля, 2017 Автор Жалоба Share Опубликовано 25 июля, 2017 Да, происходит удаление до) Повесил на кнопку обработчик, чтобы в ордер контроллер отправил запрос на очистку (знаю, что не правильно) - а только потом отправил уже форму.... Подскажите как отправить на сам контроллер яндекса? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 25 июля, 2017 Жалоба Share Опубликовано 25 июля, 2017 1 час назад, SHKEd сказал: Да, происходит удаление до) Повесил на кнопку обработчик, чтобы в ордер контроллер отправил запрос на очистку (знаю, что не правильно) - а только потом отправил уже форму.... Подскажите как отправить на сам контроллер яндекса? Не знаю, в том же и вопрос, что форма оплаты формируется из сессии, а сессия (корзина) очищается при возвращении с сайта платёжной системы, а сразу два действия на кнопку формы вряд ли можно повесить. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 25 июля, 2017 Автор Жалоба Share Опубликовано 25 июля, 2017 Ну ладно, пускай будет так.... АJAX при клике отправляем запрос на контроллер ордера, и отсылаем форму яшке.... Потом чет придумаю... Главное ошибку найди ундефайнд.... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 Я думаю, что это как раз связано с неочисткой корзины, т.е. не нажимают вернуться в магазин и корзина остаётся. Но пока даже и не знаю, как решить эту проблему. Наверное как-то надо чистить корзину до ухода на сайт платёжной системы. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 Я уже решил эту проблему так: 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 Знаю, что костыль, но работает Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 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 Знаю, что костыль, но работает Понятно, спасибо, что поделились своим решением. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 Я поймал ошибку ундефайн, что теперь делать то)))) 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 Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 А у Вас файл /app/Controller/Component/OrderBaseComponent.php Такой же как я прицепил к сообщению, размер файла такой же?! Это когда происходит, после оформления заказа или не важно?! Вы авторизованы в магазине или нет?! OrderBaseComponent.php 14 минуты назад, SHKEd сказал: Я поймал ошибку ундефайн, что теперь делать то)))) Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 Да, я авторизирован Это происходит в начале заказа) сча попробую выйти.... С вашим файлом: 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] Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 Только что, SHKEd сказал: Да, я авторизирован Это происходит в начале заказа) сча попробую выйти.... Ваш файл совпадает с тем, что я прицепил?! Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 С вашим файлом: 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] Я пока не выхожу, подожду вашего ответа.... Может быть пока надо будет проверить, пока авторизирован. А то вдруг убежит ошибка)))) А жалко)))) Так как она с самого начала работы магазина, не попадалась мне)))) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 4 минуты назад, SHKEd сказал: Я пока не выхожу, подожду вашего ответа.... Может быть пока надо будет проверить, пока авторизирован. А то вдруг убежит ошибка)))) А жалко)))) Судя по ошибкам, пишет, что корзина пуста. т.е. не записываются чтоли данные в order_products таблицы. Эх, вот бы как-то эту ошибку у себя на компе отловить/увидеть. Может есть какой-то вариант пошаговых действий, который прям железно приводит к этой ошибке?! Сколько кликал у себя на локальной копии, выбирал разные способы оплаты, не могу эту же ошибку получить. Видимо, опять связано со сбросом сессии. Попробуйте ради эксперимента в /app/Controller/CartController.php поменять, к примеру: public function purchase_product () { на: public function purchase_product () { // Empty the cart $_SESSION['Customer']['order_id'] = null; Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 8 минут назад, VaM сказал: Судя по ошибкам, пишет, что корзина пуста. т.е. не записываются чтоли данные в order_products таблицы. Эх, вот бы как-то эту ошибку у себя на компе отловить/увидеть. Я сам за ней охотился уже полгода))))))) >Может есть какой-то вариант пошаговых действий, который прям железно приводит к этой ошибке?! Нету ))) она то возникает, то нет. Железно приводит, если человек авторизирован, вот что я понял. И надо проводить разные манипуляции с заказами. Может быть удаление прежних заказов данного аккаунта влияет... не знаю... >>>>>Попробуйте ради эксперимента в /app/Controller/CartController.php поменять, к примеру: ОШИБКИ НЕТ, УШЛА.... ))) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 6 минут назад, SHKEd сказал: Я сам за ней охотился уже полгода))))))) >Может есть какой-то вариант пошаговых действий, который прям железно приводит к этой ошибке?! Нету ))) она то возникает, то нет. Железно приводит, если человек авторизирован, вот что я понял. И надо проводить разные манипуляции с заказами. Может быть удаление прежних заказов данного аккаунта влияет... не знаю... >>>>>Попробуйте ради эксперимента в /app/Controller/CartController.php поменять, к примеру: ОШИБКИ НЕТ, УШЛА.... ))) Хорошо. Но теперь наверное будет глюк с тем, что нельзя будет несколько разных товаров добавить в корзину. Хотя бы более-менее понятно, что дело как раз в корзину, номере заказа, сессии. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 Да) теперь нельзя заказывать товары)))) так что надо дальше ковырять путь полета товара в корзину... Как-то делать новый ордер айди если корзина в нуле и пошел новый товар в нее ..... Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 4 минуты назад, SHKEd сказал: Да) теперь нельзя заказывать товары)))) так что надо дальше ковырять путь полета товара в корзину... Как-то делать новый ордер айди если корзина в нуле и пошел новый товар в нее ..... Вот с ковырянием сложнее, не видя этой ошибки. Может backup базы хотя бы пришлёте свой?! Попробую его к себе на комп залить, может так увижу эту ошибку у себя. Ссылка на сообщение Поделиться на другие сайты
SHKEd 0 Опубликовано 26 июля, 2017 Автор Жалоба Share Опубликовано 26 июля, 2017 сча пришлю в личку) Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 26 июля, 2017 Жалоба Share Опубликовано 26 июля, 2017 18 минуту назад, SHKEd сказал: сча пришлю в личку) Спасибо, попробую, может что получится откопать. А под кем авторизуетесь, т.е. входите под email и паролем каким-то?! C какими данными входите?! Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения