[Помогите] Quick Checkout 6.3.2.0 нет success

Тема в разделе "OpenCart", создана пользователем alex_storm, 4 май 2017.

  1. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Всем привет!
    Перерыл весь модуль, но так и не нашел, почему после успешного оформления заказа, не происходит success.

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

    Система ocstore 2.3.0.2 + Quick Checkout 6.3.2.0

    Кто может натолкнуть на мысль, где посмотреть ?
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Второе объясняет первое: если статус 0, значит обработка заказа прерывается ещё задолго до перехода на success.
    Надо отлавливать ошибки.
     
  3. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    В том то и дело, что ошибок нет.
    Сам заказ приходит отлично. И в админке его можно модерировать. Все нужные поля заполнены.
    На фронте тоже ошибок нет.
    Просто весь прикол в том, что я не вижу логики, когда нужно выдать страницу success. Т.е. по идеи, должна быть какая то логика, если все ок, и т.п. то давай на success. Ну или что то в этом духе. Но ее нет попросту...
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Так происходит при любом методе оплаты?

    В смысле, в коде?
     
  5. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Да, и при любом методе доставки.

    Да.
    Причем, даже не совем понятно, как оно проставляет статус заказа, поскольку в дефолтной модели есть для этого отдельный специальный метод 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 ?
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    А где именно? Это есть смысл делать только в том контроллере и методе, который генерирует полную страницу, а не аякс ответ.
    Если модуль полностью работает через аякс, то единственный вариант таки "window.location", но безо всяких href и replace.
     
  7. alex_storm

    alex_storm webdev

    Регистрация:
    11 дек 2012
    Сообщения:
    1.151
    Симпатии:
    667
    Да, только ajax...

    Добавил в том контроллере, где идет ajax на success. catalog/controller/d_quickcheckout/confirm.php в методе updateOrder()

    SUCCESS сделал только в js по возврату order_id. Но почему оно по дефолту не работало для меня остается откровенно говоря загадкой..