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

08 Октябрь 2013, 11:59:12
Ответ #15
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
На форуме обсуждали не раз, как убирать обязательные поля.
customer_lastname обязательное поле, если его удаляете, то меняйте функции проверки.
Если нужно сделать такую работу, пишите в личку.
08 Октябрь 2013, 12:13:34
Ответ #16
  • Новичок
  • *
  • Сообщений: 8
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
а ссылку не кините для начала, где это обсуждалось? может быть я сам разберусь, если нет - тогда напишу.
08 Октябрь 2013, 12:32:16
Ответ #17
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
В этой теме все написано, достаточно чтобы понять принцип.
Таких тем действительно много, только вопрос задавался по разному.
Гостевое оформление заказа
Убрать поле регион при регистрации
и т.д.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
17 Декабрь 2013, 09:32:37
Ответ #18
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пытаюсь убрать e-mail из оформления заказа. Возникает ошибка как чуть выше



В файле Customer.php поставил false напротив e-mail. Т.е без мыла он не может сохранить аккаунт. Читал, что можно просто что-то присваивать вместо него. Но лучше бы без этого разобраться. Подскажите?
17 Декабрь 2013, 09:52:19
Ответ #19
  • Старожил
  • ****
  • Сообщений: 293
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Нашел подробное решение. Может понадобится кому.

http://prestablog.ru/thread-20-1-1.html
17 Декабрь 2013, 11:55:36
Ответ #20
  • Фрилансер
  • *
  • Сообщений: 140
  • Репутация: +2/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Не работает на 1.5.6.1. Еще есть варианты?
17 Декабрь 2013, 21:59:24
Ответ #21
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
И не будет работать. Уже обсуждали не раз.
Вот, например, http://prestashop-forum.ru/index.php/topic,945.0.html
Лучше менять все на уровне класса/контроллера. А в шаблоне прятать или забивать значения не нужно. Все равно ошибки будут вылезать.
24 Январь 2014, 22:47:32
Ответ #22
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сделала, но поля в адресе все равно остаются обязательными. Преста 1.5.6.1
25 Январь 2014, 16:02:27
Ответ #23
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Лучше менять все на уровне класса/контроллера. А в шаблоне прятать или забивать значения не нужно. Все равно ошибки будут вылезать.
Если вы хотите изменить форму заказа, то нужно убрать проверку полей в js функции и контроллере.
Прятать поля нельзя, это приведет к ошибке.
Значения в полях проверяются 2 раза, перед отправкой данных с помощью javascript и после отправки данных при обработке в php.  Т.е вам нужно еще отменить проверку в AuthController.php и AddressController.php.

25 Январь 2014, 17:38:05
Ответ #24
  • Новичок
  • *
  • Сообщений: 12
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
Значения в полях проверяются 2 раза, перед отправкой данных с помощью javascript и после отправки данных при обработке в php.  Т.е вам нужно еще отменить проверку в AuthController.php и AddressController.php.

Можно ли в поля адреса забить значения по умолчанию и пусть они проверяются?
В нашем магазине ситуация такая: основной товар - виртуальный, но иногда люди заказывают бумажные книги, который тоже есть в продаже. Поэтому хотелось бы сделать примерно так:
1) одностраничная форма заказа;
2) упрощенная регистрация (имя, фамилия, мейл) - это я сделала, вроде работает;
3) в поля адреса вбить значения по умолчанию, написав в форме заказа, что для покупки виртуального товара вы можете оставить поля адреса как есть;
4) при покупке физического товара предложить поля адреса заполнить актуальной информацией.

Как считаете, прокатит такая схема? Версия престы 1.5.6.1
25 Январь 2014, 19:19:06
Ответ #25
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Если дать значения по умолчанию, то заработает. Только такой метод не всем понравится. Лучше выводить что-то типа справки - "При покупки не виртуального товара укажите город, страну и т.д. ".
09 Октябрь 2014, 16:59:27
Ответ #26
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Написано же
Цитировать
<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" />
...
Также и для города.

В новой версии prestashop, видимо по-другому. здесь страна это <select>.
Я исправил так:
Было:
        <select name="id_country" id="id_country" class="form-control">
{foreach from=$countries item=v}
<option value="{$v.id_country}"{if (isset($guestInformations) && isset($guestInformations.id_country) && $guestInformations.id_country == $v.id_country) || (!isset($guestInformations) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'html':'UTF-8'}</option>
{/foreach}
</select>

Стало:
<select style="display:none;" name="id_country" id="id_country" class="form-control">
        <option value="216" selected="selected">Украина</option>
/*{foreach from=$countries item=v}
<option value="{$v.id_country}"{if (isset($guestInformations) && isset($guestInformations.id_country) && $guestInformations.id_country == $v.id_country) || (!isset($guestInformations) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'html':'UTF-8'}</option>
{/foreach}*/
</select>

И все-равно ошибка:
Страна не может быть загружена с address->id_country
Неверный выбор страны
09 Октябрь 2014, 18:53:08
Ответ #27
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
style="display:none;"Нельзя для обязательных полей.
Была же тема, что убирать обязательные поля нельзя, только прятать.
09 Октябрь 2014, 21:27:08
Ответ #28
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
style="display:none;"Нельзя для обязательных полей.
Была же тема, что убирать обязательные поля нельзя, только прятать.

Подскажите, пожалуйста, как толково спрятать <select>... Облазил все что мог, не попалось ни разу. Целый день ковыряю.
09 Октябрь 2014, 21:32:12
Ответ #29
  • Ветеран
  • *****
  • Сообщений: 16667
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля