Обязательные поля, гостевая покупка, prestashop 1.5

Автор Esmeralda773, 12 марта 2013, 20:32:47

« назад - далее »

coder

На форуме обсуждали не раз, как убирать обязательные поля.
customer_lastname обязательное поле, если его удаляете, то меняйте функции проверки.
Если нужно сделать такую работу, пишите в личку.

koteyko

а ссылку не кините для начала, где это обсуждалось? может быть я сам разберусь, если нет - тогда напишу.

PrestaMan

В этой теме все написано, достаточно чтобы понять принцип.
Таких тем действительно много, только вопрос задавался по разному.
Гостевое оформление заказа
Убрать поле регион при регистрации
и т.д.
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!

kulich

Пытаюсь убрать e-mail из оформления заказа. Возникает ошибка как чуть выше



В файле Customer.php поставил false напротив e-mail. Т.е без мыла он не может сохранить аккаунт. Читал, что можно просто что-то присваивать вместо него. Но лучше бы без этого разобраться. Подскажите?

kulich


kvestin80


coder

И не будет работать. Уже обсуждали не раз.
Вот, например, http://prestashop-forum.ru/index.php/topic,945.0.html
Лучше менять все на уровне класса/контроллера. А в шаблоне прятать или забивать значения не нужно. Все равно ошибки будут вылезать.

Ira Kun

#22
Сделала, но поля в адресе все равно остаются обязательными. Преста 1.5.6.1

DarinSr

Цитата: coder от 17 декабря 2013, 21:59:24
Лучше менять все на уровне класса/контроллера. А в шаблоне прятать или забивать значения не нужно. Все равно ошибки будут вылезать.
Если вы хотите изменить форму заказа, то нужно убрать проверку полей в js функции и контроллере.
Прятать поля нельзя, это приведет к ошибке.
Значения в полях проверяются 2 раза, перед отправкой данных с помощью javascript и после отправки данных при обработке в php.  Т.е вам нужно еще отменить проверку в AuthController.php и AddressController.php.


Ira Kun

ЦитироватьЗначения в полях проверяются 2 раза, перед отправкой данных с помощью javascript и после отправки данных при обработке в php.  Т.е вам нужно еще отменить проверку в AuthController.php и AddressController.php.

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

Как считаете, прокатит такая схема? Версия престы 1.5.6.1

tigran

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

bodich

Цитата: coder от 27 июня 2013, 17:47:15
Написано же
Цитировать<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
Неверный выбор страны

tigran

style="display:none;"
Нельзя для обязательных полей.
Была же тема, что убирать обязательные поля нельзя, только прятать.

bodich

Цитата: tigran от 09 октября 2014, 18:53:08
style="display:none;"
Нельзя для обязательных полей.
Была же тема, что убирать обязательные поля нельзя, только прятать.

Подскажите, пожалуйста, как толково спрятать <select>... Облазил все что мог, не попалось ни разу. Целый день ковыряю.