Всем привет! Перерыл весь модуль, но так и не нашел, почему после успешного оформления заказа, не происходит success. Так же не понятно, почему заказ попадает в систему со статусом 0 (т.е. ошибочный или потерянный). Система ocstore 2.3.0.2 + Quick Checkout 6.3.2.0 Кто может натолкнуть на мысль, где посмотреть ?
Второе объясняет первое: если статус 0, значит обработка заказа прерывается ещё задолго до перехода на success. Надо отлавливать ошибки.
В том то и дело, что ошибок нет. Сам заказ приходит отлично. И в админке его можно модерировать. Все нужные поля заполнены. На фронте тоже ошибок нет. Просто весь прикол в том, что я не вижу логики, когда нужно выдать страницу success. Т.е. по идеи, должна быть какая то логика, если все ок, и т.п. то давай на success. Ну или что то в этом духе. Но ее нет попросту...
Да, и при любом методе доставки. Да. Причем, даже не совем понятно, как оно проставляет статус заказа, поскольку в дефолтной модели есть для этого отдельный специальный метод addOrderHistory. Здесь же этого нет. Короче, что я сделал.. у этого модуля, есть такая штука, как - $this->model_d_quickcheckout_order->updateOrder($this->session->data['order_id'], $order_data); Причем она работает постоянно) Как только ты вошел на страницу, что то пытаешь всписать, сделать будет идти апдейт заказа.. Если ты изменил данные или изменил кол-во, то будет создан новый заказ и т.д... При этом старые заказы не удаляются и получается куча дублей в бд со статусом 0. Я добавил проверку, аля if(!empty($result)) и вставил туда станаднртный метод opencarta. PHP: if(!empty($result)){ $this->load->model('checkout/order'); // Set the order history if (isset($this->request->post['order_status_id'])) { $order_status_id = $this->request->post['order_status_id']; } else { $order_status_id = $this->config->get('config_order_status_id'); } $this->model_checkout_order->addOrderHistory($result, $order_status_id);} И что ты будешь думать? Заработала вся логика, заказ заносится с правильным статусом, летят на почту уведомления пользователю и админу... Ну типа збс и все дела... НО НЕТ SUCCESS ))) Я уже пробовал делать: PHP: $this->response->redirect($this->url->link('checkout/success', '', true)); И там уже прописать очистку все сессии.. Но не идет редирект, вообще ни как... Даже не идет через window.location.replace или window.location.href или window.location.assign Ставился на голую версию из коробки написано, что он поддерживает 2.3, но херас два, я включал поддержку. Изи задача, и столько времени занимает... Какие могут быть варианты, чтобы просто скинуть пользователя на success ?
А где именно? Это есть смысл делать только в том контроллере и методе, который генерирует полную страницу, а не аякс ответ. Если модуль полностью работает через аякс, то единственный вариант таки "window.location", но безо всяких href и replace.
Да, только ajax... Добавил в том контроллере, где идет ajax на success. catalog/controller/d_quickcheckout/confirm.php в методе updateOrder() SUCCESS сделал только в js по возврату order_id. Но почему оно по дефолту не работало для меня остается откровенно говоря загадкой..