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

17 Апрель 2014, 15:38:11
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Значит возникает иногда такая ситуация.
В ходе оформления заказа если клиент решил изменить Адрес доставки
То после его редактирования в списке "Способов оплаты"
Отображается такое сообщение:
Ошибка: пожалуйста укажите адрес

Решается проблема выходом и повторной регистрацией...

Может кто сталкивался с подобным???
17 Апрель 2014, 16:39:05
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop 1.6 такая проблема. Там выходить не обязательно, достаточно перегрузить страницу заказа.
Эти проблемы связанны с темой, классы и идентификаторы указанные не так, как в javascript.
Читал на оф.сайте писали, что нужно менять в order-address.js идентификторы. Точно что и как не помню.
17 Апрель 2014, 16:58:28
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В prestashop 1.6 такая проблема. Там выходить не обязательно, достаточно перегрузить страницу заказа.
Эти проблемы связанны с темой, классы и идентификаторы указанные не так, как в javascript.
Читал на оф.сайте писали, что нужно менять в order-address.js идентификторы. Точно что и как не помню.

Случайно не это?
http://forge.prestashop.com/browse/PSCFI-1852
17 Апрель 2014, 18:20:05
Ответ #3
  • Новичок
  • *
  • Сообщений: 49
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
18 Апрель 2014, 08:53:15
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот так выглядит ошибка см. вложение...

С чего начать, чтобы вычислить эту ошибку?

Пока остановился на шаблоне order-payment.tpl
if $HOOK_PAYMENT}
   {if $opc}<div id="opc_payment_methods-content">{/if}
      <div id="HOOK_PAYMENT">{$HOOK_PAYMENT}</div>

В этом месте $HOOK_PAYMENT ошибка 
Куда дальше копать?
Я правильно предполагаю, что $HOOK_PAYMENT генерируется в  /controllers/front/OrderOpcController.php ?
Правильно. Нашёл место где генерируется ошибка, вот:
protected function _getPaymentMethods()
.....
if (!$this->context->cart->id_address_delivery || !$this->context->cart->id_address_invoice || !Validate::isLoadedObject($address_delivery) || !Validate::isLoadedObject($address_invoice) || $address_invoice->deleted || $address_delivery->deleted)
         return '<p class="warning">'.Tools::displayError('Error: Please select an address.').'</p>';

Нашёл врага в этой цепочке. Это $address_invoice->deleted
Из-за этого срабатывает ошибка
Что это за зверь такой $address_invoice->deleted ???
18 Апрель 2014, 11:53:51
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Firefox+Firebug.
Выделяете блок, на который кликаете, в js ставите breakpoint и смотрите значение переменных.
18 Апрель 2014, 14:10:09
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 527
  • Репутация: +1/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добавил в
if (!$this->context->cart->id_address_delivery || !$this->context->cart->id_address_invoice || !Validate::isLoadedObject($address_delivery) || !Validate::isLoadedObject($address_invoice) || $address_invoice->deleted || $address_delivery->deleted)

$this->context->customer->mylogout();

Теперь думаю проблем не будет...