EdZa

Оформление нового заказа. Запрос адреса клиента ТОЛЬКО при доставке

Рекомендуемые сообщения

EdZa

Интересует возможность разделить пункт (1.  Имя клиента и адрес доставки)

и вынести запрос адреса (или временно скрывать запрос адреса) до момента выбора способа доставки.

В пункте (5.  Способ доставки)

При выборе доставки №1, открыть поля с запросом адреса клиента. 

При выборе самовывоза, не запрашивать адрес клиента СОВСЕМ.

Куда копать ? Что править ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
21 минуту назад, EdZa сказал:

Интересует возможность разделить пункт (1.  Имя клиента и адрес доставки)

и вынести запрос адреса (или временно скрывать запрос адреса) до момента выбора способа доставки.

В пункте (5.  Способ доставки)

При выборе доставки №1, открыть поля с запросом адреса клиента. 

При выборе самовывоза, не запрашивать адрес клиента СОВСЕМ.

Куда копать ? Что править ?

Именно так сделал один из пользователей форма, shked

Вот пример - https://akvagrim-studio.ru/

Добавьте товаре в корзину и посмотрите как сделано оформление.

Правда это VamShop 2, но не суть, в принципе, всё одинаково.

 

Начинать нужно с модулей доставки, с переделки всех модулей доставки, класса shipping

т.е. для начала что б знать, какому модулю доставки нужен адрес, какому нет.

 

Я вот всё думаю по умочанию сделать такое же оформление, но пока что до конца не решился.

Довольно сложный модуль, много всего затрагивается, много всего переделывать, если делать всё удобно.

Очень сложно сделать всё удобно, а самое главное универсально, что б подходило любым магазинам, с любой спецификой.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

С моими познаниями проще дождаться функционала с патчем, если только не пару условий в одном файле прописать.

Посмотрю конечно, но раз уже задумано, может сделать и выложить.

Клиенты пошли нервные и на любой лишний запрос личной информации падают в обморок и бьются в истерике. Причем не реагируют на возможность ввести "пустую" информацию. Вот.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
30 минут назад, EdZa сказал:

С моими познаниями проще дождаться функционала с патчем, если только не пару условий в одном файле прописать.

Посмотрю конечно, но раз уже задумано, может сделать и выложить.

Клиенты пошли нервные и на любой лишний запрос личной информации падают в обморок и бьются в истерике. Причем не реагируют на возможность ввести "пустую" информацию. Вот.

Так я ж не могу обещать, что прям в следюущем обновлении будет.

Пока что надо просто убирать все лишние поля и оставлять только то, что действительно нужно.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

Лишнее убрал.

для доставки нужен адрес.

для самовывоза не нужен.

Хотел простыми условиями поля прятать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
1 час назад, EdZa сказал:

Лишнее убрал.

для доставки нужен адрес.

для самовывоза не нужен.

Хотел простыми условиями поля прятать.

Вроде как таких простых условий нет, насколько я понимаю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

посмотрел как переключаются оплаты в зависимости от доставки.

Уточните, где код который прячет и открывает поля оплаты в зависимости от типа доставки ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
29 минут назад, EdZa сказал:

посмотрел как переключаются оплаты в зависимости от доставки.

Уточните, где код который прячет и открывает поля оплаты в зависимости от типа доставки ?

/templates/шаблон/modules/checkout_payment_block.html

 

<script type="text/javascript">
{literal}
$(document).ready(function() {

	$("div#qiwi_rest").hide();
	$("div#schet").hide();
	$("div#kvitancia").hide();

	$("input#qiwi_rest").click(function (){
		$("div#qiwi_rest").toggle();
	});
	$("input#schet").click(function (){
		$("div#schet").toggle();
	});
	$("input#kvitancia").click(function (){
		$("div#kvitancia").toggle();
	});

});
{/literal}
</script>

Это jQuery код.

Описание как это работает на http://api.jquery.com

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

<div id="payment_options" class="sm_layout_box"><h2>6.&nbsp;&nbsp;Способ оплаты</h2><div class="itemOdd">
<p>
<label for="cash"><input type="hidden" name="payment" value="cash"> 
</p></div>

предыдущий код эти элементы не трогает.

Где-то еще ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

нашел. буду пробовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
1 час назад, EdZa сказал:

<div id="payment_options" class="sm_layout_box"><h2>6.&nbsp;&nbsp;Способ оплаты</h2><div class="itemOdd">
<p>
<label for="cash"><input type="hidden" name="payment" value="cash"> 
</p></div>

предыдущий код эти элементы не трогает.

Где-то еще ?

Он и не должен их трогать.

Этот код открывает, закрывает поля для ввода данных в модулях оплаты киви, квитанция, счёт.

Если это не то, тогда уточните, что Вы имели в виду под "где код который прячет и открывает поля оплаты в зависимости от типа доставки"?

1 минуту назад, EdZa сказал:

нашел. буду пробовать

Хорошо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

при самовывозе только ИМя, Фамилия, мэйл, телефон

при доставке открываются доп.поля, адрес, город

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
11 минут назад, EdZa сказал:

при самовывозе только ИМя, Фамилия, мэйл, телефон

при доставке открываются доп.поля, адрес, город

Я ж уже писал, что такого кода по умолчанию нет.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

checkout_payment_block.html

при открытии страницы

спрятал блок с адресом доставки в функции $(document).ready(function() {

    $("div#shipping_address").hide();

При выборе способа доставки проверяю тип доставки и открываю блок (или не открываю) в функции $(document).ajaxStop(function() {

if ($('input[name=payment]').val() == 'cash') {
    $("div#shipping_address").hide();
} else {$("div#shipping_address").show();
}

cash - самовывоз

cod - доствка курьером

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
EdZa

Да, потом еще добавил в адрес и город значения по умолчанию. )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
VaM
2 часа назад, EdZa сказал:

Да, потом еще добавил в адрес и город значения по умолчанию. )

Понятно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти