Автор Тема: Проблема с подтверждением заказа в версии 1.6.1.3  (Прочитано 1772 раз)

18 Август 2017, 15:54:06
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго дня! После восстановления хостинга появилась проблема с оформлением и подтверждением заказа. При стандартном оформлении заказа в 5 шагов при подтверждении выдает следующую ошибку: "500 Server Error Oops, something went wrong. Try to refresh this page or feel free to contact us if the problem persists." и данный заказ не отображается в корзине. Висит в брошенной корзине и когда сам пытаюсь этот заказ довести создать в админке выдает следующее в новом окне: [PrestaShopException]

Can't save Order
at line 345 in file classes/PaymentModule.php
340.                     // Creating order
341.                     $result = $order->add();
342.
343.                     if (!$result) {
344.                         PrestaShopLogger::addLog('PaymentModule::validateOrder - Order cannot be created', 3, null, 'Cart', (int)$id_cart, true);
345.                         throw new PrestaShopException('Can\'t save Order');
346.                     }
347.
348.                     // Amount paid by customer is not the right one -> Status = payment error
349.                     // We don't use the following condition to avoid the float precision issues : http://www.php.net/manual/en/language.types.float.php
350.                     // if ($order->total_paid != $order->total_paid_real)
PaymentModuleCore->validateOrder - [line 1160 - controllers/admin/AdminOrdersController.php] - [9 Arguments]
1155.                     $employee = new Employee((int)Context::getContext()->cookie->id_employee);
1156.                     $payment_module->validateOrder(
1157.                         (int)$cart->id, (int)$id_order_state,
1158.                         $cart->getOrderTotal(true, Cart::BOTH), $payment_module->displayName, $this->l('Manual order -- Employee:').' '.
1159.                         substr($employee->firstname, 0, 1).'. '.$employee->lastname, array(), null, false, $cart->secure_key
1160.                     );
1161.                     if ($payment_module->currentOrder) {
1162.                         Tools::redirectAdmin(self::$currentIndex.'&id_order='.$payment_module->currentOrder.'&vieworder'.'&token='.$this->token);
1163.                     }
1164.                 }
1165.             } else {
AdminOrdersControllerCore->postProcess - [line 178 - classes/controller/Controller.php]
173.             if (!$this->content_only && ($this->display_header || (isset($this->className) && $this->className))) {
174.                 $this->setMedia();
175.             }
176.
177.             // postProcess handles ajaxProcess
178.             $this->postProcess();
179.
180.             if (!empty($this->redirect_after)) {
181.                 $this->redirect();
182.             }
183.
ControllerCore->run - [line 367 - classes/Dispatcher.php]
362.             if (isset($params_hook_action_dispatcher)) {
363.                 Hook::exec('actionDispatcher', $params_hook_action_dispatcher);
364.             }
365.
366.             // Running controller
367.             $controller->run();
368.         } catch (PrestaShopException $e) {
369.             $e->displayMessage();
370.         }
371.     }
372.
DispatcherCore->dispatch - [line 58 - admin/index.php]
53. if (!isset($_REQUEST['controller']) && isset($_REQUEST['tab'])) {
54.     $_REQUEST['controller'] = strtolower($_REQUEST['tab']);
55. }
56.
57. // Prepare and trigger admin dispatcher
58. Dispatcher::getInstance()->dispatch();


Подскажите, пожалуйста чем можете. в рнр ноль. Модуль кэшонделивери переустанавливал не помогло. кэш чистил, тоже не помогло((
18 Август 2017, 16:01:22
Ответ #1
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
в логах по ошибкам вот это

mod_fcgid: stderr: PHP Warning:  Invalid argument supplied for foreach() in /var/www/u             /data/www/         .ru/override/classes/Customer.php on line 16
mod_fcgid: stderr: PHP Warning:  require_once(/var/www/u              /data/www/      .ru/modules/advancedcheckout/advancedcheckout.php): failed to open stream: No such file or directory in /var/www/u           /data/www/         .ru/override/controllers/front/OrderOpcController.php on line 2
mod_fcgid: stderr: PHP Fatal error:  require_once(): Failed opening required '/var/www/u       /data/www/         .ru/modules/advancedcheckout/advancedcheckout.php' (include_path='/var/www/u             /data/www/          .ru/tools/htmlpurifier/standalone:.:') in /var/www/u         /data/www/
      .ru/override/controllers/front/OrderOpcController.php on line 2
18 Август 2017, 16:23:25
Ответ #2
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
в 16 строке customer.php и в 18 строке addres.php прописано вот это: foreach ($res as $r)
18 Август 2017, 17:24:35
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ошибка в модуле advancedcheckout. Удалите этот модуль или переустановите.
21 Август 2017, 11:40:04
Ответ #4
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо за помощь. Проблема в том, что я его не могу найти. Зато есть в другом магазине, правда там версия престы 1.5. Как думаете, можно тот модуль скопировать?
21 Август 2017, 12:34:11
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Модуль для prestashop 1.5 будет работать с версией 1.6.
21 Август 2017, 13:17:22
Ответ #6
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Подскажите, пожалуйста, как такое может быть, что я не могу найти тот файл, на который ссылается ошибка в логе: /modules/advancedcheckout/advancedcheckout.php
21 Август 2017, 13:22:28
Ответ #7
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Модуль был удален с ошибками. Нужно искать и удалять старые файлы модуля, записи в базе данных.
21 Август 2017, 16:22:04
Ответ #8
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем большое спасибо за помощь! Глупый вопрос конечно, а если я скопирую целиком папку с модулем с другого магазина и вставлю в тот, с которым проблема, ничего страшного не будет?
21 Август 2017, 18:59:37
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Нужно не только перенести папку модуля, но и установить.
21 Август 2017, 22:57:28
Ответ #10
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Всем большое спасибо! Работает как часики!  :)
21 Август 2017, 23:44:38
Ответ #11
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Дико извиняюсь за еще один вопрос. В логах еще одна ошибка висит. Буду очень признателен, если что-нибудь посоветуете.

ругается почему то на эту строчку
<?php if ($_smarty_tpl->tpl_vars['isMobile']->value==1){?>
сам этот скрипт небольшой:
<script type="text/javascript">
$(window).load(function(){
var sitems=3;
var sritems=2;
<?php if ($_smarty_tpl->tpl_vars['isMobile']->value==1){?>
sitems=1;
sritems=1;
<?php }?>
if($(window).width()<=479){
sitems=1;
sritems=1;
}

// Responsive layout, resizing the items
$('#carousel-productscategory').carouFredSel({
responsive: true,
auto: false,
width:'100%',
height : 'variable',
prev: '#prev-productscategory',
next: '#next-productscategory',
swipe: {
onTouch : true
},
scroll:{
items:sritems
},
items: {
height : 'auto',
width: 300,
visible: {
min: 1,
max: sitems
}
}
});
});
$('#prev-productscategory, #next-productscategory').bind('click', function() {
          if(touch == false){
            var that = $("#productscategory_list");
            var items = that.find('.not-animated');
            items.removeClass('not-animated').unbind('appear');
           
            items = that.find('.animated');
            items.removeClass('animated').unbind('appear');
          }
        });
</script>
21 Август 2017, 23:45:52
Ответ #12
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
может ширину увеличить или уменьшить?
21 Август 2017, 23:53:42
Ответ #13
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Блин теперь на главной странице вот такая хрен еще вылезла(((:

Notice: Undefined offset: 4 in /var/www/u              /data/www/               .ru/cache/smarty/compile/70/2d/f8/702df88faf0e88682467af5e471e73b9fd30cb37.file.cshometab.tpl.cache.php on line 83
вот эта  строчка 83 строчка
<div class="title_tab"><?php echo $_smarty_tpl->tpl_vars['tab']->value->title[(int)$_smarty_tpl->tpl_vars['cookie']->value->id_lang];?>
Я так понимаю в обоих моментах речь идет о разрешении...или нет?  :-\
Подскажите, пожалуйста((
22 Август 2017, 09:49:34
Ответ #14
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Очистите кеш или отлючите кеширование и включите перекомпиляцию.
Ошибка от того, что тема сделана плохо. В prestashop модулях и темах используют переменные определенные в контроллерах, шаблонизатор smarty.
Нужно переделать шаблон cshometab.tpl по требованиям prestashop.