Перейти к содержимому


Изменения В Форме Заказа


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 36

#21 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 26 Ноябрь 2016 - 22:49

1) Здравствуйте. Некоторые покупатели, оформляя заказ, пишут номер неверно. Хотелось бы сделать следующее: при написании номера телефона, чтобы в начале была стационарная цифра "+7", дальше, через пробел, скобки, в которых нужно вписать только 3 цифры (код оператора). Далее, через пробел, три цифры номера телефона, тире, две цифры, снова тире и последние две цифры. Чтобы в при начале ввода было такое: +7 ( ) - -   . Далее, пользователь вводит номер только в таком формате: +7 (999) 123-45-67. Если телефон введен неточно (не все цифры), то оформление заказа невозможно.

2) Пришел к мнению, что нужно сделать обязательную и автоматическую регистрацию при оформлении заказа. Помогите сделать следующее:
  • При оформлении заказа - поле E-mail сделать обязательным к заполнению.
  • Если пользователь не зарегистрирован вообще - при оформлении заказа регистрировать его, и в письме с заказом высылать пароль от его личного кабинета, который он, при желании, может поменять.
  • Если пользователь зарегистрирован, но не авторизирован при оформлении заказа - после оформления заказа и указании им действующего электронного адреса - прикрепить заказ к этому пользователю.

Прикрепленные изображения

  • 1.jpg


#22 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 21 Декабрь 2016 - 15:50

Можно получить ответ на предыдущее сообщение? Пункт 2 уже не нужен. Вопрос только по пункту 1, с телефоном

#23 Firefly

Firefly

    Активный участник

  • Модераторы
  • 3 810 сообщений

Отправлено 24 Декабрь 2016 - 15:09

 bahtin106 (26 Ноябрь 2016 - 22:49) писал:

1) Здравствуйте. Некоторые покупатели, оформляя заказ, пишут номер неверно. Хотелось бы сделать следующее: при написании номера телефона, чтобы в начале была стационарная цифра "+7", дальше, через пробел, скобки, в которых нужно вписать только 3 цифры (код оператора). Далее, через пробел, три цифры номера телефона, тире, две цифры, снова тире и последние две цифры. Чтобы в при начале ввода было такое: +7 ( ) - -   . Далее, пользователь вводит номер только в таком формате: +7 (999) 123-45-67. Если телефон введен неточно (не все цифры), то оформление заказа невозможно.

2) Пришел к мнению, что нужно сделать обязательную и автоматическую регистрацию при оформлении заказа. Помогите сделать следующее:
  • При оформлении заказа - поле E-mail сделать обязательным к заполнению.
  • Если пользователь не зарегистрирован вообще - при оформлении заказа регистрировать его, и в письме с заказом высылать пароль от его личного кабинета, который он, при желании, может поменять.
  • Если пользователь зарегистрирован, но не авторизирован при оформлении заказа - после оформления заказа и указании им действующего электронного адреса - прикрепить заказ к этому пользователю.

Здравствуйте.
Извините за ожидание.
Изменения Вам произвел. Добавил подключение маски ввода и и скрипт в шаблоне Быстрый заказ:  
			  <script type="text/javascript">
			  jQuery(function($){
			  $("#sites_client_phone").mask("+7 (999) 999-9999");
			  });
			  </script>


#24 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 24 Декабрь 2016 - 15:32

 Firefly (24 Декабрь 2016 - 15:09) писал:

Здравствуйте.
Извините за ожидание.
Изменения Вам произвел. Добавил подключение маски ввода и и скрипт в шаблоне Быстрый заказ:  
			 <script type="text/javascript">
			 jQuery(function($){
			 $("#sites_client_phone").mask("+7 (999) 999-9999");
			 });
			 </script>

Спасибо большое)

#25 zabota-mama

zabota-mama

    Активный участник

  • Пользователи
  • PipPipPipPip
  • 732 сообщений

Отправлено 22 Январь 2017 - 18:16

 bahtin106 (24 Декабрь 2016 - 15:32) писал:

<script type="text/javascript">
                          jQuery(function($){
                          $("#sites_client_phone").mask("+7 (999) 999-9999");
                          });
                          </script>

Этот код надо просто в конец скрипт в шаблоне Быстрый заказ добавить?
Или на что-то заменить?

#26 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 21 Март 2017 - 11:34

Здравствуйте. Можно ли сделать так, чтобы при оформлении заказа, покупатели вводили адрес в строго определенном порядке (в строке "адрес доставки")? Чтобы вместо этого большого окна, где люди пишут все что угодно, можно было ввести улицу, дом, квартиру/офис.

#27 Ирина345

Ирина345

    Активный участник

  • Модераторы
  • 5 709 сообщений

Отправлено 24 Март 2017 - 10:20

 bahtin106 (21 Март 2017 - 11:34) писал:

Здравствуйте. Можно ли сделать так, чтобы при оформлении заказа, покупатели вводили адрес в строго определенном порядке (в строке "адрес доставки")? Чтобы вместо этого большого окна, где люди пишут все что угодно, можно было ввести улицу, дом, квартиру/офис.
Здравствуйте, в форме оформления заказа можно создать поля улица, дом, квартира/офис и поле адрес доставки скрыть, после заполнения данных полей информация будет передаваться в поле "Адрес доставки".
Если Вас такой вариант устраивает, то уточните для какого варианта доставки, необходим данный вариант.

#28 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 25 Март 2017 - 14:10

 Ирина345 (24 Март 2017 - 10:20) писал:

Здравствуйте, в форме оформления заказа можно создать поля улица, дом, квартира/офис и поле адрес доставки скрыть, после заполнения данных полей информация будет передаваться в поле "Адрес доставки".
Если Вас такой вариант устраивает, то уточните для какого варианта доставки, необходим данный вариант.

Да, такой вариант устраивает. Его нужно применить для способа доставки "По адресу", во все районы. Остальные способы доставки менять не нужно. Спасибо.

#29 b7000

b7000

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 11 Апрель 2017 - 11:02

Здравствуйте!
подскажите как сделать что бы в карточке товара при нажатии В корзину перекидывало в корзину с пересчетом, без появления всплывающего Аякс окна
пока все извенения производятся в тестовом аккаунте SL-412115

#30 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 13 Апрель 2017 - 09:57

 bahtin106 (25 Март 2017 - 14:10) писал:

Да, такой вариант устраивает. Его нужно применить для способа доставки "По адресу", во все районы. Остальные способы доставки менять не нужно. Спасибо.
Здравствуйте. Простите за длительное ожидание ответа.
Вам необходимо в шаблоне Быстрый заказ найти строку
<textarea cols="100" rows="5" id="quickDeliveryAddress" name="form[delivery][address]" class="{% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}required{% ENDIF %} textarea">{ORDER_FORM_DELIVERY_ADDRESS}</textarea>
и сразу после нее вставить код
<div class="newAddress">
					<label>Улица<em>*</em></label>
					<input type="text" class="inputText" id="streetBlock">
					<label>Дом<em>*</em></label>
					<input type="text" class="inputText" id="houseBlock">
					<label>Квартира/офис<em>*</em></label>
					<input type="text" class="inputText" id="officeBlock">
				  </div>
Далее в файле main.js найдите блок
$('.mainSelect').change(function(){
	  selectedDelId = $(this).find('option:selected').attr('delid');  
	  $('.zoneSelect select').hide();
	  $('.zoneSelect select[del="'+selectedDelId+'"]').show();
	  $('.zoneSelect select option').attr('selected',false)
	  $('.zoneSelect select[del="'+selectedDelId+'"] option:first-of-type').attr('selected',true);
	  $('.deliveryOption .deliveryRadio[value="'+selectedDelId+'"]').click();
	 
	  WithoutZone = $('input.deliveryRadio:checked').attr('pricewithoutzones');
	  WithZone =  $('input.deliveryZoneRadio:checked').attr('price');
	 
	  if(WithZone > 0){
		startprice = WithZone;
	  }else{
		startprice = WithoutZone;
	  }
	  $('.changeprice').text(startprice);
	  $('.quick_order_payment').hide();
	  $('.quick_order_payment[rel="'+ selectedDelId +'"]').show();
	 
	  startInputId = $('input.deliveryRadio:checked').attr('value');
	  $('.hiddenpayment input').attr('checked',false);
	  $('.hiddenpayment[rel="'+startInputId+'"] input').each(function(){
		$(this).click();
		return false;
	  })
	  DeliveryDescription = $('input.deliveryRadio:checked').attr('description')
	  $('.currentDeliveryDescription').html(DeliveryDescription);
	}) 
  })
и замените его на
$('.mainSelect').change(function(){
	  selectedDelId = $(this).find('option:selected').attr('delid');  
	  $('.zoneSelect select').hide();
	  $('.zoneSelect select[del="'+selectedDelId+'"]').show();
	  $('.zoneSelect select option').attr('selected',false)
	  $('.zoneSelect select[del="'+selectedDelId+'"] option:first-of-type').attr('selected',true);
	  $('.deliveryOption .deliveryRadio[value="'+selectedDelId+'"]').click();
	 
	  WithoutZone = $('input.deliveryRadio:checked').attr('pricewithoutzones');
	  WithZone =  $('input.deliveryZoneRadio:checked').attr('price');
	 
	  if(WithZone > 0){
		startprice = WithZone;
	  }else{
		startprice = WithoutZone;
	  }
	  $('.changeprice').text(startprice);
	  $('.quick_order_payment').hide();
	  $('.quick_order_payment[rel="'+ selectedDelId +'"]').show();
	 
	  if($(this).val()=='167141'){
		$('#quickDeliveryAddress').hide();
		$('.newAddress').show()
	  }else{
		$('#quickDeliveryAddress').show();
		$('.newAddress').hide()
	  }
	 
	  startInputId = $('input.deliveryRadio:checked').attr('value');
	  $('.hiddenpayment input').attr('checked',false);
	  $('.hiddenpayment[rel="'+startInputId+'"] input').each(function(){
		$(this).click();
		return false;
	  })
	  DeliveryDescription = $('input.deliveryRadio:checked').attr('description')
	  $('.currentDeliveryDescription').html(DeliveryDescription);
	}) 
  })
Чуть ниже найдите код
// Валидация формы на странице оформления заказа
  $("#quickform").submit(function(){

	// Если форма невалидна не отправляем её на сервер
	if(!$(this).valid()) {
	  return false;
	}
и замените его на
// Валидация формы на странице оформления заказа
  $("#quickform").submit(function(){
	if($('.mainSelect').val()=='167141'){
	  $('#quickDeliveryAddress').val('Улица: ' + $('#streetBlock').val() + '; Дом: ' + $('#houseBlock').val() + '; Квартира/офис: ' + $('#officeBlock').val());
	}
	// Если форма невалидна не отправляем её на сервер
	if(!$(this).valid()) {
	  return false;
	}
В конец файла main.css добавьте строку
.newAddress{display:none;}


#31 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 13 Апрель 2017 - 10:25

 b7000 (11 Апрель 2017 - 11:02) писал:

Здравствуйте!
подскажите как сделать что бы в карточке товара при нажатии В корзину перекидывало в корзину с пересчетом, без появления всплывающего Аякс окна
пока все извенения производятся в тестовом аккаунте SL-412115
Здравствуйте. В файле main.js найдите блок
// Добавление товара в корзину
function AddCart() {
  $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function() {
   
	// Выносим функции из шаблонов
	if ($(this).attr('rel') === 'quick') {
	  quickOrder(this);
	  return (false);
	}
   
	$('.block.cart').addClass('have-items');
	$('.cart-count').animate({opacity: 0,display: "none"},500);
	$('.cart-count').animate({display: "inline",opacity: 1} , 500 );
   
	// Находим форму, которую отправляем на сервер, для добавления товара в корзину
	var formBlock = $($(this).get(0));
	var adresCart = '/cart';
	  // Проверка на существование формы отправки запроса на добавление товара в корзину
	  if (1 > formBlock.length || formBlock.get(0).tagName != 'FORM') {
		alert('Не удалось найти форму добавления товара в корзину');
		return false;
	  }
	 
	  // Получаем данные формы, которые будем отправлять на сервер
	  var formData = formBlock.serializeArray();
	  // Сообщаем серверу, что мы пришли через ajax запрос
	  formData.push({name: 'ajax_q', value: 1});
	  // Так же сообщим ему, что нужно сразу отобразить форму быстрого заказа
	  //formData.push({name: 'fast_order', value: 1});
	  // Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара
	  $.ajax({
		type: "POST",
		cache: false,
		url: formBlock.attr('action'),
		data: formData,
		success: function(data) {
		  $.fancybox({
			content: data,
			// При изменении размера окна изменяем размер окна оформления заказа
			onUpdate: function() {
			  return false;
			}
		  });
		  setTimeout(function() {
			$.fancybox.update();
		  }, 500);
		}
	  });
	return false;
  });
}
замените его на
// Добавление товара в корзину
function AddCart() {
  $('.goodsDataForm, .goodsToCartFromCompareForm, .goodsListForm').submit(function() {
   
	// Выносим функции из шаблонов
	if ($(this).attr('rel') === 'quick') {
	  quickOrder(this);
	  return (false);
	}
   
	$('.block.cart').addClass('have-items');
	$('.cart-count').animate({opacity: 0,display: "none"},500);
	$('.cart-count').animate({display: "inline",opacity: 1} , 500 );
   
	// Находим форму, которую отправляем на сервер, для добавления товара в корзину
	var formBlock = $($(this).get(0));
	var adresCart = '/cart';
	  // Проверка на существование формы отправки запроса на добавление товара в корзину
	  if (1 > formBlock.length || formBlock.get(0).tagName != 'FORM') {
		alert('Не удалось найти форму добавления товара в корзину');
		return false;
	  }
	 
	  // Получаем данные формы, которые будем отправлять на сервер
	  var formData = formBlock.serializeArray();
	  // Сообщаем серверу, что мы пришли через ajax запрос
	  formData.push({name: 'ajax_q', value: 1});
	  // Так же сообщим ему, что нужно сразу отобразить форму быстрого заказа
	  //formData.push({name: 'fast_order', value: 1});
	  // Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара
	  $.ajax({
		type: "POST",
		cache: false,
		url: formBlock.attr('action'),
		data: formData,
		success: function(data) {
		  /*$.fancybox({
			content: data,
			// При изменении размера окна изменяем размер окна оформления заказа
			onUpdate: function() {
			  return false;
			}
		  });*/
		  setTimeout(function() {
			window.location.replace('/cart')
		  }, 500);
		}
	  });
	return false;
  });
}


#32 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 13 Апрель 2017 - 14:49

 Stasya (13 Апрель 2017 - 09:57) писал:

Здравствуйте. Простите за длительное ожидание ответа.
Вам необходимо в шаблоне Быстрый заказ найти строку
<textarea cols="100" rows="5" id="quickDeliveryAddress" name="form[delivery][address]" class="{% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}required{% ENDIF %} textarea">{ORDER_FORM_DELIVERY_ADDRESS}</textarea>
и сразу после нее вставить код
<div class="newAddress">
				 <label>Улица<em>*</em></label>
				 <input type="text" class="inputText" id="streetBlock">
				 <label>Дом<em>*</em></label>
				 <input type="text" class="inputText" id="houseBlock">
				 <label>Квартира/офис<em>*</em></label>
				 <input type="text" class="inputText" id="officeBlock">
				 </div>
Далее в файле main.js найдите блок
$('.mainSelect').change(function(){
	 selectedDelId = $(this).find('option:selected').attr('delid');
	 $('.zoneSelect select').hide();
	 $('.zoneSelect select[del="'+selectedDelId+'"]').show();
	 $('.zoneSelect select option').attr('selected',false)
	 $('.zoneSelect select[del="'+selectedDelId+'"] option:first-of-type').attr('selected',true);
	 $('.deliveryOption .deliveryRadio[value="'+selectedDelId+'"]').click();
	
	 WithoutZone = $('input.deliveryRadio:checked').attr('pricewithoutzones');
	 WithZone = $('input.deliveryZoneRadio:checked').attr('price');
	
	 if(WithZone > 0){
	 startprice = WithZone;
	 }else{
	 startprice = WithoutZone;
	 }
	 $('.changeprice').text(startprice);
	 $('.quick_order_payment').hide();
	 $('.quick_order_payment[rel="'+ selectedDelId +'"]').show();
	
	 startInputId = $('input.deliveryRadio:checked').attr('value');
	 $('.hiddenpayment input').attr('checked',false);
	 $('.hiddenpayment[rel="'+startInputId+'"] input').each(function(){
	 $(this).click();
	 return false;
	 })
	 DeliveryDescription = $('input.deliveryRadio:checked').attr('description')
	 $('.currentDeliveryDescription').html(DeliveryDescription);
})
})
и замените его на
$('.mainSelect').change(function(){
	 selectedDelId = $(this).find('option:selected').attr('delid');
	 $('.zoneSelect select').hide();
	 $('.zoneSelect select[del="'+selectedDelId+'"]').show();
	 $('.zoneSelect select option').attr('selected',false)
	 $('.zoneSelect select[del="'+selectedDelId+'"] option:first-of-type').attr('selected',true);
	 $('.deliveryOption .deliveryRadio[value="'+selectedDelId+'"]').click();
	
	 WithoutZone = $('input.deliveryRadio:checked').attr('pricewithoutzones');
	 WithZone = $('input.deliveryZoneRadio:checked').attr('price');
	
	 if(WithZone > 0){
	 startprice = WithZone;
	 }else{
	 startprice = WithoutZone;
	 }
	 $('.changeprice').text(startprice);
	 $('.quick_order_payment').hide();
	 $('.quick_order_payment[rel="'+ selectedDelId +'"]').show();
	
	 if($(this).val()=='167141'){
	 $('#quickDeliveryAddress').hide();
	 $('.newAddress').show()
	 }else{
	 $('#quickDeliveryAddress').show();
	 $('.newAddress').hide()
	 }
	
	 startInputId = $('input.deliveryRadio:checked').attr('value');
	 $('.hiddenpayment input').attr('checked',false);
	 $('.hiddenpayment[rel="'+startInputId+'"] input').each(function(){
	 $(this).click();
	 return false;
	 })
	 DeliveryDescription = $('input.deliveryRadio:checked').attr('description')
	 $('.currentDeliveryDescription').html(DeliveryDescription);
})
})
Чуть ниже найдите код
// Валидация формы на странице оформления заказа
$("#quickform").submit(function(){

// Если форма невалидна не отправляем её на сервер
if(!$(this).valid()) {
	 return false;
}
и замените его на
// Валидация формы на странице оформления заказа
$("#quickform").submit(function(){
if($('.mainSelect').val()=='167141'){
	 $('#quickDeliveryAddress').val('Улица: ' + $('#streetBlock').val() + '; Дом: ' + $('#houseBlock').val() + '; Квартира/офис: ' + $('#officeBlock').val());
}
// Если форма невалидна не отправляем её на сервер
if(!$(this).valid()) {
	 return false;
}
В конец файла main.css добавьте строку
.newAddress{display:none;}

Все поменял, кеш почистил, но ничего не изменилось

#33 b7000

b7000

    Пользователь

  • Пользователи
  • PipPip
  • 21 сообщений

Отправлено 15 Апрель 2017 - 16:46

Спасибо

#34 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 24 Апрель 2017 - 11:45

 bahtin106 (13 Апрель 2017 - 14:49) писал:

Все поменял, кеш почистил, но ничего не изменилось
Здравствуйте. Простите, забыла указать что необходимо сменить идентификатор доставки. Сейчас внесла Вам изменения. Проверьте, пожалуйста.

#35 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 27 Апрель 2017 - 11:36

 Stasya (24 Апрель 2017 - 11:45) писал:

Здравствуйте. Простите, забыла указать что необходимо сменить идентификатор доставки. Сейчас внесла Вам изменения. Проверьте, пожалуйста.

При заполнении всех полей, пишет: "Пожалуйста, Укажите адрес доставки"

#36 Stasya

Stasya

    Активный участник

  • Модератоpы
  • 4 007 сообщений

Отправлено 27 Апрель 2017 - 11:42

 bahtin106 (27 Апрель 2017 - 11:36) писал:

При заполнении всех полей, пишет: "Пожалуйста, Укажите адрес доставки"
Внесла Вам изменения. Проверьте, пожалуйста.

#37 bahtin106

bahtin106

    Пользователь

  • Пользователи
  • PipPip
  • 30 сообщений

Отправлено 27 Апрель 2017 - 11:48

 Stasya (27 Апрель 2017 - 11:42) писал:

Внесла Вам изменения. Проверьте, пожалуйста.

Спасибо огромное, все работает, Вы очень помогли.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных