Автор Тема: Ошибка 500 при регистрации покупателя  (Прочитано 45 раз)

10 Сентябрь 2017, 18:10:06
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Привет! Помогите пожалуйста решить проблему. Prestashop 1.7.2.2. Шаблон классический. Начал настраивать магазин и столкнулся с проблемой. На форумах подобные проблемы обсуждались, но обсуждение, где до конца все решено не нашел.
Прилагаю скрины, думаю с них все понятно будет: при регистрации покупателя во фронт-офисе 4 шага для заполнения
- личные данные;
- адреса;
- способ доставки;
- оплата.

Поля к заполнению во втором шаге редактируются в админке Интернациолизация/География. Так вот, если в админке в поле, где можно добавлять и редактировать поля хоть что-то изменить (как у меня на скринах), то во фронт-офисе при переходе на следующий шаг выдается ошибка 500.
Подскажите как решить проблему так, чтобы и поля редактировались и ошибка не появлялась?
10 Сентябрь 2017, 18:16:07
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22307
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Ошибка 500 не от редактирования полей в адмике. Если бы вы меняли шаблон, тогда возможно. Так как вы шаблоны не трогали, причина в другом. Смотрите лог ошибок или включите показ ошибок в prestashop. Отключите кеширование.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
10 Сентябрь 2017, 18:19:08
Ответ #2
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ошибка 500 не от редактирования полей в адмике. Если бы вы меняли шаблон, тогда возможно. Так как вы шаблоны не трогали, причина в другом. Смотрите лог ошибок или включите показ ошибок в prestashop. Отключите кеширование.
Если возвратить поля по умолчанию в админке - ошибка 500 не появляется.
10 Сентябрь 2017, 18:23:26
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22307
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Включите показ ошибок в prestashop. Отключите кеширование.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
10 Сентябрь 2017, 18:27:27
Ответ #4
  • Ветеран
  • *****
  • Сообщений: 14006
  • Репутация: +14568/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Ошибка 500 говорит о некорректной обработке запросов, это внутренняя ошибка сервера, о причинах вызывающих ошибку 500 можно прочитать в логе ошибок.
10 Сентябрь 2017, 18:34:14
Ответ #5
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Включите показ ошибок в prestashop. Отключите кеширование.
Кеш отключил. Показ ошибок имеется ввиду режим отладки в админке или нужно поменять define('_PS_MODE_DEV_', false)?
10 Сентябрь 2017, 18:36:39
Ответ #6
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Ошибка 500 говорит о некорректной обработке запросов, это внутренняя ошибка сервера, о причинах вызывающих ошибку 500 можно прочитать в логе ошибок.
Error.log у меня почему-то не обновляется. Написал в поддержку хоста - обнулили мне error.log сказали теперь должны записываться ошибки. Во фронт-офисе пару раз переходил на страницу с ошибкой 500 - error.log все равно пустой
10 Сентябрь 2017, 19:40:07
Ответ #7
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Включите показ ошибок в prestashop. Отключите кеширование.
Показ ошибок выдал следующую информацию:

[PrestaShopException]

Свойство Address->id_country пусто.
at line 944 in file classes/ObjectModel.php

939.             }
940.
941.             $message = $this->validateField($field, $this->$field);
942.             if ($message !== true) {
943.                 if ($die) {
944.                     throw new PrestaShopException($message);
945.                 }
946.                 return $error_return ? $message : false;
947.             }
948.         }
949.
ObjectModelCore->validateFields - [line 272 - classes/ObjectModel.php]
ObjectModelCore->getFields - [line 518 - classes/ObjectModel.php]
ObjectModelCore->add - [line 174 - classes/Address.php] - [2 Arguments]
AddressCore->add - [line 476 - classes/ObjectModel.php] - [2 Arguments]
ObjectModelCore->save - [line 76 - classes/form/CustomerAddressPersister.php]
CustomerAddressPersisterCore->save - [line 162 - classes/form/CustomerAddressForm.php] - [2 Arguments]
CustomerAddressFormCore->submit - [line 111 - classes/checkout/CheckoutAddressesStep.php]
CheckoutAddressesStepCore->handleRequest - [line 57 - classes/checkout/CheckoutProcess.php] - [1 Arguments]
CheckoutProcessCore->handleRequest - [line 201 - controllers/front/OrderController.php] - [1 Arguments]
OrderControllerCore->initContent - [line 205 - classes/controller/Controller.php]
ControllerCore->run - [line 379 - classes/Dispatcher.php]
DispatcherCore->dispatch - [line 28 - index.php]
10 Сентябрь 2017, 20:26:24
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 2992
  • Репутация: +72/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Страна обязательное поле, через админку не отключишь. Спрятать можно в шаблоне. К стране привязана доставка.
10 Сентябрь 2017, 23:18:22
Ответ #9
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Страна обязательное поле, через админку не отключишь. Спрятать можно в шаблоне. К стране привязана доставка.
В админке есть возможность убирать любое поле и добавлять любое поле - зачем эта возможность дана если ей нельзя воспользоваться??
Текст ошибки в приложенном скрине. Подскажите пожалуйста что дальше-то делать?
11 Сентябрь 2017, 09:45:40
Ответ #10
  • Ветеран
  • *****
  • Сообщений: 14006
  • Репутация: +14568/-2
  • Сообщество PrestaShop
    • Просмотр профиля
Страну добавьте в формат адреса и ошибки не будет.
11 Сентябрь 2017, 11:20:02
Ответ #11
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Страну добавьте в формат адреса и ошибки не будет.
Более-менее разобрался что к чему. Добавил поля на которые ругается и ошибка перестала выскакивать. НО - изначально поля убирались за ненадобностью: у меня магазин в черте одного населенного пункта работает - зачем клиенту заполнять поле городи тем более страна!? Поле страна можно скрыть, оно заполняется автоматически и если скрыть проблем быть не должно. Но поле город является обязательным (скрин подтвердит) и заполняется вручную - значит если скрыть, то будут проблемы. Кто-нить знает как обойти этот момент???
11 Сентябрь 2017, 11:44:42
Ответ #12
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22307
  • Репутация: +17114/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Можно скрыть не нужные поля и присвоить значения по дефолту. Как это сделать полно тем на форуме.
https://prestashop-forum.ru/index.php/topic,7614.0.html
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
12 Сентябрь 2017, 15:16:28
Ответ #13
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Можно скрыть не нужные поля и присвоить значения по дефолту. Как это сделать полно тем на форуме.
https://prestashop-forum.ru/index.php/topic,7614.0.html
Тем полно, только они все про версии 1.4 и 1.5 и немного с намеками на 1.6. У меня последняя версия 1.7.2.2 - файлы и поля описанные в темах уже другие в этой версии. Порылся в 5-6 темах на форумах - практически ни один из описанных файлов не нашел ни по имени ни по директориям
12 Сентябрь 2017, 15:42:32
Ответ #14
  • Ветеран
  • *****
  • Сообщений: 2992
  • Репутация: +72/-5
  • Сообщество PrestaShop
    • Просмотр профиля
По prestashop 1.7.2.2 мало информации. Но принцип изменений один - делать input type hidden и сразу определить value.