Автор Тема: Оформление заказа сразу после сохранения введенных данных  (Прочитано 485 раз)

17 Июля 2015, 16:49:57
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте!

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

Логика такова:
В файле - themes/default-bootstrap/js/order-opc.js

$.post( "/module/cashondelivery/validation", $( "#idform" ).serialize() );
window.location.replace("/quick-order");

Подскажите как быть в данном случае
17 Июля 2015, 17:19:19
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86335
  • Репутация: +25417/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Если без перезагрузки страницы, только блок корзины перегрузить, то
ajaxCart.updateCart(jsonData);
17 Июля 2015, 17:44:33
Ответ #2
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Да, это помогло, спасибо!
Но все таки интересно почему меня не перекинула сюда - http://test.ru/index.php?controller=order-confirmation?key=17478cbd9db2702b1c10427fa900f2f0&id_cart=53&id_module=72&id_order=39,
если в заголовке явно есть такая строка. Заголовки собственно идентичны с, в случае если я использую кнопку по умолчанию для оформления заказа.
17 Июля 2015, 18:01:22
Ответ #3
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
То есть: $.post( "/module/cashondelivery/validation", $( "#idform" ).serialize() );

Потом меня перекидывает сюда - http://test.ru/index.php?controller=order-confirmation?key=17478cbd9db2702b1c10427fa900f2f0&id_cart=53&id_module=72&id_order=39

и все на этом, а мне надо дальше, на другую страницу
17 Июля 2015, 19:01:34
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 13634
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
17 Июля 2015, 19:14:18
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 13634
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
То есть: $.post( "/module/cashondelivery/validation", $( "#idform" ).serialize() );

Потом меня перекидывает сюда - http://test.ru/index.php?controller=order-confirmation?key=17478cbd9db2702b1c10427fa900f2f0&id_cart=53&id_module=72&id_order=39

и все на этом, а мне надо дальше, на другую страницу
Потому что в этом модуле в контроллере /modules/cashondelivery/controllers/front/validation.php есть редирект после подтверждения заказа.
Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id_cart='.(int)$this->context->cart->id.'&id_module='.(int)$this->module->id.'&id_order='.(int)$this->module->currentOrder);Можете изменить на другую страницу.
17 Июля 2015, 22:20:07
Ответ #6
  • Новичок
  • *
  • Сообщений: 14
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все верно Вы говорите. Но дело в том что редирект:

Tools::redirectLink(__PS_BASE_URI__.'order-confirmation.php?key='.$customer->secure_key.'&id_cart='.(int)$this->context->cart->id.'&id_module='.(int)$this->module->id.'&id_order='.(int)$this->module->currentOrder);


и его след в заголовке, выглядит так:

Request URL:http://modelyersha.ru/index.php?controller=order-confirmation?key=425f305dfa61031fa1a007b5dd100d07&id_cart=71&id_module=72&id_order=57
Request Method:GET
Status Code:200 OK

но по не понятной причине не пренаправляет меня никуда, то есть я как был на странице - quick-order так там и остался, при этом заказ лег в базу и письма ушли, все как надо. 
18 Июля 2015, 10:45:30
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86335
  • Репутация: +25417/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавьте редирект на нужную страницу в обработчик нажатия вашей кнопки после получения положительного ответа.
$.ajax({
type: 'POST',
        .........
        success: function(jsonData)
{
                ........
                //вот сюда