Автор Тема: Обязательные поля, гостевая покупка, prestashop 1.5  (Прочитано 29262 раз)

12 Марта 2013, 20:32:47
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте, уважаемые форумчане. Я совсем новенькая в работе с Престашоп и прошу у Вас о помощи.
Помогите, пожалуйста, убрать, но не удалять полностью обязательные поля при регистрации и гостевой покупке (сделать обязательные поля необязательными). Версия престашоп 1.5.

Я очень долго ищу ответ на этот вопрос. Для версии 1.4 нужно было отредактировать Adress.php, но для версии 1.5 это не работает - нужной строчки нет.
Пожалуйста помогите!
12 Марта 2013, 21:23:50
Ответ #1
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102466
  • Репутация: +34217/-0
    • Просмотр профиля
Обязательные поля проходят проверку. Все что можно сделать без изменения кода, это установить поля для адреса и клиента
Локализация > Страны > Редактирование > Страна > Формат адреса > Обязательные поля для адреса
или назначить полю первоначальное значание.
Поиск, Как скрыть поля.
12 Марта 2013, 21:42:05
Ответ #2
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Я уже так делала. Убрала все, оставив только телефон и мейл, однако, Преста все равно выдает ошибку, что нужно заполнить поля. Для наглядности приведу скрины, может, я что-то не так делаю или не допоняла.  :'(

Затем сохраняю.
Итак, ошибка

Снова требует имя и фамилию, хотя я эти поля и удалила.
И часть полей исчезла вовсе (их нет в форме, нельзя заполнить), а не перешли в статус "необязательных".
13 Марта 2013, 14:08:49
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102466
  • Репутация: +34217/-0
    • Просмотр профиля
Цитировать
Обязательные поля проходят проверку.
Поля: Имя, Фамилие, Страна, email - обязательные. Их нельзя удалить из админки.
Нужно не просто скрывать поля, а присвоить им какие-то значения.
13 Марта 2013, 14:46:49
Ответ #4
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
1. Сделать поля в форме регистрации не обязательными:
В файле - /classes/Customer.php
2. Сделать поля в форме адреса не обязательными:
В файле - /classes/Address.php

public static $definition = array(
...
Заменить
'required' => trueна
'required' => false
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
13 Марта 2013, 17:00:56
Ответ #5
  • Новичок
  • *
  • Сообщений: 22
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Огромное всем спасибо, отредактировала Adress.php и теперь все как надо :)
26 Июня 2013, 20:44:08
Ответ #6
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, все сделал как вы говорили. Регистрация упростилась, но возникают такие ошибки при покупке:

There are 3 ошибки :
01. id страны необходим.
02. город необходим.
03. Неверный токен

С последней, погугливши, разобрался. Если у кого-то возникнет, нужно в админке зайти в настройки и там, напротив пункта "Улучшить безопасность" перключить на "Нет".

С остальными не могу разобраться. Подскажите, пожалуйста, как их убрать?
У меня PrestaShop 1.5.4.0

P.S. Прошу прощения за эту некрофилию, но эта тема хорошо проиндексирована гуглом и думаю будущим поколениям будет полезно найти все проблемы в одном месте.
26 Июня 2013, 21:39:22
Ответ #7
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22094
  • Репутация: +17108/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Задайте фикс. значения этим полям и все будет работать.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
27 Июня 2013, 17:24:18
Ответ #8
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Задайте фикс. значения этим полям и все будет работать.

Спасибо за ваш ответ.

Подскажите, эти значения нужно задавать в файле order-opc-new-account.tpl ? В той теме ничего об этом не сказано, а мне изменения в этом файле никак не помогли :\
27 Июня 2013, 17:47:15
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Написано же
Цитировать
<input type="hidden" name="state" id="state" value="код страны из вашей бд, например у меня для  России код 247" />
Берете любое поле, которое нужно спрятать, например, поле - страна, и прописываете значение (в админке смотрите ид страны, у меня Россия ид=178)
{elseif $field_name eq "country" || $field_name eq "Country:name"}
        <input type="hidden" class="text" name="id_country" id="id_country" value="178" />
...
Также и для города.
27 Июня 2013, 18:23:55
Ответ #10
  • Новичок
  • *
  • Сообщений: 3
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
У меня не сработало.

Что я сделал:
1. Файл Adress.php, который находится в корневой папке сайта.
в массиве "public static $definition = array( ..."  я заменил "true" на "false"  в строках с  'id_country' и 'city'

2. Файл order-opc-new-account.tpl, который находится в папке с моей темой:
Для страны
добавил после строки
{elseif $field_name eq "country" || $field_name eq "Country:name"}строку
<input type="hidden" class="text" name="id_country" id="id_country" value="216" />
Для города
добавил после строки
{elseif $field_name eq "city"}строку
<input type="hidden" class="text" name="city" id="city" value="321" />
и
добавил после строки
{elseif $field_name eq "city"}строку
<input type="hidden" class="text" name="city_invoice" id="city_invoice" value="321" />

Подскажите, пожалуйста, что я сделал не так?
27 Июня 2013, 19:22:35
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Поля город и страна прячу так, в файле order-opc-new-account.tpl
{elseif $field_name eq "country" || $field_name eq "Country:name"}
        <input type="hidden" class="text" name="id_country" id="id_country" value="178" />
...
{elseif $field_name eq "city"}
<input type="hidden" class="text" name="city" id="city" value="Москва" />
Работает без ошибок (в настройках страны указано, что регионы не нужны).
Цитировать
"  я заменил "true" на "false"  в строках с  'id_country' и 'city'
Этого не делал, менял только шаблон.
07 Октября 2013, 19:52:42
Ответ #12
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Поправил файлы
/classes/Customer.php
/classes/Address.php
order-opc-new-account.tpl
но выдает ошибку
TECHNICAL ERROR: unable to save account
Details:
Error thrown: [object Object]
Text status: error
Помогите пожалуйста!
07 Октября 2013, 20:17:44
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 32988
  • Репутация: +26759/-0
    • Просмотр профиля
Где-то ошибка, включай показ ошибок и тестируй.
08 Октября 2013, 11:54:09
Ответ #14
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
{"hasError":true,"errors":["\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438."],"isSaved":false,"id_customer":0}
Вот такая ошибка. Видимо из-за того, что не задано customer_lastname
Можете помочь?