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


Исправить "заказ В 1 Клик"


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

#1 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 14 Декабрь 2013 - 18:07

Кнопка работает, все хорошо ;)
Но выявилась проблема:

Допустим человек зашел на страницу товара и решил его оформит "быстрым заказом в 1 клик"
Появилось окошко, где ему надо заполнить 3 графы:
Изображение
НО, он решил передумать и закрывает это окно.
После обновления страницы товар у нас лежит в корзине!
Изображение
* Как сделать так, чтобы этого добавления не происходило, если человек закрыл окно быстрого заказа?
Спасибо!

#2 Koderhan

Koderhan

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

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

Отправлено 16 Декабрь 2013 - 15:23

Не простая задача. Кое как удалось ее решить.
Перед изменениями лучше создать резервную копию шаблона.

Панель администратора, "Сайт"->"Редактор шаблонов".
В файле "main.js".
Найти код:
// Быстрый заказ
function quickorder(formSelector) {
// Находим форму, которую отправляем на сервер, для добавления товара в корзину
var formBlock = $($(formSelector).get(0));
// Проверка на существование формы отправки запроса на добавление товара в корзину
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) {
var width = $(window).width() * 0.8;
if(width < 800) width = 'auto';
$.fn.nyroModalManual({
																 content: data,
																 gallery: null,
																 resizable: true,
																 autoSizable: true,
																 windowResize: true,
																 width: 500,
																 minHeight: 230
});
}
});
return false;
}
$(function(){
if (document.cookie.indexOf('_visited=1') == -1) {
var delay_popup = 1000;
setTimeout("document.getElementById('parent_popup').style.display='block'", delay_popup);
document.cookie = '_visited=1; path=/';
}
});
function addone(i, $this) {
ta1=$($this).closest('.numeric_input').find('input[type="text"]').get(0);
ta1.value=parseInt(ta1.value)+i;
if (parseInt(ta1.value) <= 1) { ta1.value=1; }
}
//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '218595') {
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '26735') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});

Заменить:
// Быстрый заказ
function quickorder(formSelector) {
// Находим форму, которую отправляем на сервер, для добавления товара в корзину
	var formBlock = $($(formSelector).get(0));
// Проверка на существование формы отправки запроса на добавление товара в корзину
	if (1 > formBlock.length || formBlock.get(0).tagName != 'FORM') {
		alert('Не удалось найти форму добавления товара в корзину');
		return false;
	}
// Получаем данные формы, которые будем отправлять на сервер
	//var formData = formBlock.serializeArray();
	var formData = [];
	var formHtml = $('#formTovar');
	formHtml.find('script').remove();
	var formHtmlBlock = '<div id="formHtmlBlock" style="display:none;">' + formHtml.html() + '</div>';
// Сообщаем серверу, что мы пришли через 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) {
			var width = $(window).width() * 0.8;
			if (width < 800)
				width = 'auto';
			$.fn.nyroModalManual({
				content: formHtmlBlock + data,
				gallery: null,
				resizable: true,
				autoSizable: true,
				windowResize: true,
				width: 500,
				minHeight: 230
			});
			function addCart() {
				var formBlock = $('#formHtmlBlock form');
				var formData = formBlock.serializeArray();
				formData.push({name: 'ajax_q', value: 1});
				formData.push({name: 'fast_order', value: 1});
				var formBlock = $('#formHtmlBlock form');
				var formData = formBlock.serializeArray();
				console.log(formData);
				$.ajax({
					type: "POST",
					cache: false,
					url: formBlock.attr('action'),
					data: formData,
					success: function() {
						console.log('Ok. Товар добавлен в корзину!');
					}
				});
			}
			console.log('ok');
			function tovarToCart() {
				console.log('кнопка');
				addCart();
				setTimeout(function() {
					console.log('Отправка формы.')
					$("#quickform").submit();
				}, 2000);
				return false;
			}
			$('.zakaz').click(function(){
			 $(this).addClass('disabled')
			  tovarToCart();
			  return false;
			});
		}
	});
	return false;
}
$(function() {
	if (document.cookie.indexOf('_visited=1') == -1) {
		var delay_popup = 1000;
		setTimeout("document.getElementById('parent_popup').style.display='block'", delay_popup);
		document.cookie = '_visited=1; path=/';
	}
});
function addone(i, $this) {
	ta1 = $($this).closest('.numeric_input').find('input[type="text"]').get(0);
	ta1.value = parseInt(ta1.value) + i;
	if (parseInt(ta1.value) <= 1) {
		ta1.value = 1;
	}
}
//Меняем поля на шаге 2 в оформлении заказа
$(function() {
	$('.deliveryRadio').click(function() {
		var current_id = $(this).val();
		$('#deliveryZipCode').closest('tr').show();
		$('#deliveryCity').closest('tr').show();
		$('#deliveryAddress').closest('tr').show();
		$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
		if (current_id === '218595') {
			$('#deliveryZipCode').closest('tr').hide();
			$('#deliveryCity').closest('tr').hide();
			$('#deliveryAddress').closest('tr').hide();
			$('#deliveryConvenientDate').closest('tr').hide();
		}
// Для курьера скрываем город и индекс
		else if (current_id === '26735') {
			$('#deliveryCity').closest('tr').hide();
			$('#deliveryZipCode').closest('tr').hide();
		}
// Для почты России скрываем время доставки
		else if (current_id === '216337') {
			$('#deliveryConvenientDate').closest('tr').hide();
		}
	});
	$('.deliveryRadio:checked').trigger('click');
});


В файле "Товар" перед кодом:
  <form action="{CART_ADD_GOODS_MODIFICATION_URL}" method="post" class="goodsDataForm">
Добавить:
<div id="formTovar">

И перед кодом:
  <!-- Блок описания товара. Показываем его есть описание товара -->
  {% IF GOODS_DESCRIPTION_LARGE %}
	<h3>{GOODS_NAME}</h3>
	<div class="htmlDataBlock" itemprop="description">
	  {GOODS_DESCRIPTION_LARGE}
	</div>
  {% ENDIF %}
  <!-- END Блок описания товара. Показываем его есть описание товара -->
Добавить:
</div>



Панель администратора, "Сайт"->"Редактор Шаблонов".
В конец файла "main.css".
Добавить код:
.disabled {
	background: grey !important;
}

В файле "Быстрый заказ" в самом начале файла удалить код:
{% IF cart_count_empty %}
<h2 class="alignCenter">Ваша корзина пуста, Пожалуйста выберите другой товар для оформления заказа</h2>
{% ELSE %}
После кода:
$("#quickDeliveryConvenientDate").datepicker({
		 dayNames		: ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
closeText		: 'Готово',
currentText : 'Сегодня' ,
duration		 : '',
monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'],
monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
yearRange		: "-6:+6",
dateFormat : 'dd.mm.yy',
minDate		  : new Date(),
firstDay		 : 1
});
});
</script>
Удалить код:
{% ENDIF %}


#3 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 16 Декабрь 2013 - 22:36

Выражаю огромнейшую благодарность Koderhan, за проделанную работу!
Спасибо!

#4 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 17 Декабрь 2013 - 18:48

Нашел одну ошибочку.
Когда указываешь кол-во и нажимаешь "Купить в 1 клик" - в оформленном заказе нет привязки количества!
Только 1 шт. Как решить? В остальном все работает!

#5 Сake

Сake

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

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

Отправлено 18 Декабрь 2013 - 02:20

Попробуйте строку

var formHtmlBlock = '<div id="formHtmlBlock" style="display:none;">' + formHtml.html() + '</div>';

заменить на

var formHtmlBlock = $('<div id="formHtmlBlock">').append(formHtml.clone()).hide();


#6 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 18 Декабрь 2013 - 06:58

Просмотр сообщенияСake (18 Декабрь 2013 - 02:20) писал:

Попробуйте строку

var formHtmlBlock = '<div id="formHtmlBlock" style="display:none;">' + formHtml.html() + '</div>';

заменить на

var formHtmlBlock = $('<div id="formHtmlBlock">').append(formHtml.clone()).hide();

при переходе заказа не видит. Пишет "Ваша корзина пуста"

#7 Koderhan

Koderhan

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

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

Отправлено 18 Декабрь 2013 - 17:29

Просмотр сообщенияStore-rondell (18 Декабрь 2013 - 06:58) писал:

при переходе заказа не видит. Пишет "Ваша корзина пуста"
Можно попробовать не много изменить скрипт main.js.
После кода:
				success: function(data) {
						var width = $(window).width() * 0.8;
						if (width < 800)
								width = 'auto';
						$.fn.nyroModalManual({
								content: formHtmlBlock + data,
								gallery: null,
								resizable: true,
								autoSizable: true,
								windowResize: true,
								width: 500,
								minHeight: 230
						});
						function addCart() {
								var formBlock = $('#formHtmlBlock form');
Добавить:

formBlock.append('<input name="form[goods_mod_quantity]" value="'+$('#quantity_wanted').val()+'" />');


#8 Store-rondell

Store-rondell

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 187 сообщений
  • ГородМосква

Отправлено 18 Декабрь 2013 - 23:16

Спасибо! Все работает! :rolleyes:

#9 Flor@@

Flor@@

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

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

Отправлено 21 Декабрь 2013 - 19:05

подскажите тоже как подправить форму быстрого заказа немножечко, скрин:

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

  • вид сайта 18.jpg


#10 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 22 Декабрь 2013 - 08:26

1. Красную красную полоску можно убрать таким способом.
Найдите в шаблоне style.css данный блок кода :
.order_carrier_content,#opc_payment_methods{background:#ffffff;border:none;border-top:6px solid #da3b44;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35)}
замените на
.order_carrier_content,#opc_payment_methods{background:#ffffff;border:none;border-top:0px solid #da3b44;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35)}
2. Убираем серую полоску и двигаем все поля вверх:
Найдите в шаблоне style.css данный блок кода:
h3.title{background:transparent;text-shadow:none;border-bottom:1px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: 15px;}
и замените на
h3.title{background:transparent;text-shadow:none;border-bottom:0px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: -40px;}


#11 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 22 Декабрь 2013 - 08:50

3. Перемещаем поле для ввода телефона.
В шаблоне "быстрый заказ" находим данный блок кода:
<label for="sites_client_phone" class="required">Телефон для связи*</label>
	 <div class="input-box">
		 <input id="sites_client_phone" name="form[contact][phone]" value="{ORDER_FORM_CONTACT_PHONE}" maxlength="255" class="required light" type="text"/>
	 </div>

меняем его на данный блок :
<div id="phoneright">
<label for="sites_client_phone" class="required">Телефон для связи*</label>
	 <div class="input-box">
		 <input id="sites_client_phone" name="form[contact][phone]" value="{ORDER_FORM_CONTACT_PHONE}" maxlength="255" class="required light" type="text"/>
	 </div>
</div>
далее в шаблон style.css в самый конец добавляем следующий код:
#phoneright {position:absolute;left:230px;top:112px;}

4. Добавляем надпись
для этого в шаблоне "быстрый заказ" найдите данный блок кода:
<div style="display:none;" id="newCartHoverData">
  <div class="other_cost_wrapper"  style="width: 100%">
	{% IF cart_count_empty %}
	  <p id="cart_block_no_products">Ваша корзина пуста</p>
	{% ELSE %}
	  <span>Товаров </span>
	<span class="price" id="cart_block_shipping_cost">{CART_COUNT_TOTAL}</span>
	  <span>на сумму </span>
	{% ENDIF %}
	<span class="price" id="cart_block_total" style="text-align: right;">{% IF cart_count_empty %}{% ELSE %}{% FOR cart_sum %}{cart_sum.NOW_WITH_DISCOUNT | money_format}{% ENDFOR %}{% ENDIF %}</span>
  </div>
 
</div>
замените его на
<div style="display:none;" id="newCartHoverData">
  <div class="other_cost_wrapper"  style="width: 100%">
	{% IF cart_count_empty %}
	  <p id="cart_block_no_products">Ваша корзина пуста</p>
	{% ELSE %}
	  <span>Товаров </span>
	<span class="price" id="cart_block_shipping_cost">{CART_COUNT_TOTAL}</span>
	  <span>на сумму </span>
	{% ENDIF %}
	<span class="price" id="cart_block_total" style="text-align: right;">{% IF cart_count_empty %}{% ELSE %}{% FOR cart_sum %}{cart_sum.NOW_WITH_DISCOUNT | money_format}{% ENDFOR %}{% ENDIF %}</span>
  </div>
<p>По вопросам звоните по телефону: 8 495 000 00 00</p>
</div>


#12 Flor@@

Flor@@

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

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

Отправлено 23 Декабрь 2013 - 07:11

первый момент просто супер, а вот фраза внизу не появилась...

#13 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 23 Декабрь 2013 - 07:17

Извините, не много не в том месте поставил=)
Щас все должно заработать. Находим данный блок кода в шаблоне Быстрый заказ :
	 <label for="quick_form_coupon_code">Код купона</label>
				 <div class="input-box">
				 <input type="text" id="quick_form_coupon_code" name="form[coupon_code]" value="{ORDER_FORM_COUPON_CODE}" class="light" />
				 </div>
			 <li>
			 </ul>
		 </div>
		 </div>
	 {% ENDIF %}
	 {% ENDIF %}
	 <!-- END Если в тарифном плане подключен модуль скидок по купонам и суммам заказов -->
	
	 <div class="order_carrier_wrapper buttons-set">
	 <input type="submit" class="exclusive" title="Оформить заказ" value="Оформить заказ" />
	 </div>
</div>
</form>
</div>
Меняем его на
	 <label for="quick_form_coupon_code">Код купона</label>
				 <div class="input-box">
				 <input type="text" id="quick_form_coupon_code" name="form[coupon_code]" value="{ORDER_FORM_COUPON_CODE}" class="light" />
				 </div>
			 <li>
			 </ul>
		 </div>
		 </div>
	 {% ENDIF %}
	 {% ENDIF %}
	 <!-- END Если в тарифном плане подключен модуль скидок по купонам и суммам заказов -->
	
	 <div class="order_carrier_wrapper buttons-set">
	 <input type="submit" class="exclusive" title="Оформить заказ" value="Оформить заказ" />
	 </div>
<p>По вопросам звоните по телефону: 8 495 000 00 00</p>
</div>
</form>
</div>


а в данном коде удалите строку про телефон:
<div style="display:none;" id="newCartHoverData">
  <div class="other_cost_wrapper"  style="width: 100%">
		{% IF cart_count_empty %}
		  <p id="cart_block_no_products">Ваша корзина пуста</p>
		{% ELSE %}
		  <span>Товаров </span>
		<span class="price" id="cart_block_shipping_cost">{CART_COUNT_TOTAL}</span>
		  <span>на сумму </span>
		{% ENDIF %}
		<span class="price" id="cart_block_total" style="text-align: right;">{% IF cart_count_empty %}{% ELSE %}{% FOR cart_sum %}{cart_sum.NOW_WITH_DISCOUNT | money_format}{% ENDFOR %}{% ENDIF %}</span>
  </div>
<p>По вопросам звоните по телефону: 8 495 000 00 00</p>
</div>


#14 Flor@@

Flor@@

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

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

Отправлено 23 Декабрь 2013 - 07:26

спасибо!!! КАК убрать полоски, со скрина:

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

  • вид сайта 18.jpg


#15 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 23 Декабрь 2013 - 07:45

Просмотр сообщенияAlexey11 (22 Декабрь 2013 - 08:26) писал:

1. Красную красную полоску можно убрать таким способом.
Найдите в шаблоне style.css данный блок кода :
.order_carrier_content,#opc_payment_methods{background:#ffffff;border:none;border-top:6px solid #da3b44;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35)}
замените на
.order_carrier_content,#opc_payment_methods{background:#ffffff;border:none;border-top:0px solid #da3b44;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px;box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-moz-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35);-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,0.35)}
2. Убираем серую полоску и двигаем все поля вверх:
Найдите в шаблоне style.css данный блок кода:
h3.title{background:transparent;text-shadow:none;border-bottom:1px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: 15px;}
и замените на
h3.title{background:transparent;text-shadow:none;border-bottom:0px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: -40px;}


#16 Flor@@

Flor@@

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

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

Отправлено 23 Декабрь 2013 - 13:17

Просмотр сообщенияAlexey11 (22 Декабрь 2013 - 08:26) писал:

2. Убираем серую полоску и двигаем все поля вверх:
Найдите в шаблоне style.css данный блок кода:
h3.title{background:transparent;text-shadow:none;border-bottom:1px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: 15px;}
и замените на
h3.title{background:transparent;text-shadow:none;border-bottom:0px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: -40px;}
тогда сдвинутся все заголовки.... а мне необходимо убрать именно этот заголовок = именно в форме быстрого заказа....

#17 Alexey11

Alexey11

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

  • Модератоpы
  • 1 057 сообщений
  • ГородНижний новгород

Отправлено 23 Декабрь 2013 - 13:58

в шаблоне быстрый заказ найдите строку
<h3 class="title"></h3>
замените ее на
<h3 class="withoutborder"></h3>
далее в шаблон main.css в самый конец добавьте:
.withoutborder {background:transparent;text-shadow:none;border-bottom:0px solid #c0c0c0;text-transform:none;margin:0 15px;padding:15px 0;text-transform:uppercase;text-align:center;margin-bottom: -45px;}


#18 Flor@@

Flor@@

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

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

Отправлено 23 Декабрь 2013 - 16:47

поле телефон  теперь наезжает на поле представьтесь!!!!!!

#19 Flor@@

Flor@@

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

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

Отправлено 23 Декабрь 2013 - 17:13

помогли по телефону.

#20 Chandr

Chandr

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

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

Отправлено 20 Март 2014 - 21:11

Просмотр сообщенияKoderhan (16 Декабрь 2013 - 15:23) писал:

Не простая задача. Кое как удалось ее решить.
Перед изменениями лучше создать резервную копию шаблона.

Панель администратора, "Сайт"->"Редактор шаблонов".
В файле "main.js".
Найти код:
// Быстрый заказ
function quickorder(formSelector) {
// Находим форму, которую отправляем на сервер, для добавления товара в корзину
var formBlock = $($(formSelector).get(0));
// Проверка на существование формы отправки запроса на добавление товара в корзину
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) {
var width = $(window).width() * 0.8;
if(width < 800) width = 'auto';
$.fn.nyroModalManual({
content: data,
gallery: null,
resizable: true,
autoSizable: true,
windowResize: true,
width: 500,
minHeight: 230
});
}
});
return false;
}
$(function(){
if (document.cookie.indexOf('_visited=1') == -1) {
var delay_popup = 1000;
setTimeout("document.getElementById('parent_popup').style.display='block'", delay_popup);
document.cookie = '_visited=1; path=/';
}
});
function addone(i, $this) {
ta1=$($this).closest('.numeric_input').find('input[type="text"]').get(0);
ta1.value=parseInt(ta1.value)+i;
if (parseInt(ta1.value) <= 1) { ta1.value=1; }
}
//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '218595') {
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if(current_id === '26735') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});

Заменить:
// Быстрый заказ
function quickorder(formSelector) {
// Находим форму, которую отправляем на сервер, для добавления товара в корзину
var formBlock = $($(formSelector).get(0));
// Проверка на существование формы отправки запроса на добавление товара в корзину
if (1 > formBlock.length || formBlock.get(0).tagName != 'FORM') {
alert('Не удалось найти форму добавления товара в корзину');
return false;
}
// Получаем данные формы, которые будем отправлять на сервер
//var formData = formBlock.serializeArray();
var formData = [];
var formHtml = $('#formTovar');
formHtml.find('script').remove();
var formHtmlBlock = '<div id="formHtmlBlock" style="display:none;">' + formHtml.html() + '</div>';
// Сообщаем серверу, что мы пришли через 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) {
var width = $(window).width() * 0.8;
if (width < 800)
width = 'auto';
$.fn.nyroModalManual({
content: formHtmlBlock + data,
gallery: null,
resizable: true,
autoSizable: true,
windowResize: true,
width: 500,
minHeight: 230
});
function addCart() {
var formBlock = $('#formHtmlBlock form');
var formData = formBlock.serializeArray();
formData.push({name: 'ajax_q', value: 1});
formData.push({name: 'fast_order', value: 1});
var formBlock = $('#formHtmlBlock form');
var formData = formBlock.serializeArray();
console.log(formData);
$.ajax({
type: "POST",
cache: false,
url: formBlock.attr('action'),
data: formData,
success: function() {
console.log('Ok. Товар добавлен в корзину!');
}
});
}
console.log('ok');
function tovarToCart() {
console.log('кнопка');
addCart();
setTimeout(function() {
console.log('Отправка формы.')
$("#quickform").submit();
}, 2000);
return false;
}
$('.zakaz').click(function(){
$(this).addClass('disabled')
tovarToCart();
return false;
});
}
});
return false;
}
$(function() {
if (document.cookie.indexOf('_visited=1') == -1) {
var delay_popup = 1000;
setTimeout("document.getElementById('parent_popup').style.display='block'", delay_popup);
document.cookie = '_visited=1; path=/';
}
});
function addone(i, $this) {
ta1 = $($this).closest('.numeric_input').find('input[type="text"]').get(0);
ta1.value = parseInt(ta1.value) + i;
if (parseInt(ta1.value) <= 1) {
ta1.value = 1;
}
}
//Меняем поля на шаге 2 в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#deliveryZipCode').closest('tr').show();
$('#deliveryCity').closest('tr').show();
$('#deliveryAddress').closest('tr').show();
$('#deliveryConvenientDate').closest('tr').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if (current_id === '218595') {
$('#deliveryZipCode').closest('tr').hide();
$('#deliveryCity').closest('tr').hide();
$('#deliveryAddress').closest('tr').hide();
$('#deliveryConvenientDate').closest('tr').hide();
}
// Для курьера скрываем город и индекс
else if (current_id === '26735') {
$('#deliveryCity').closest('tr').hide();
$('#deliveryZipCode').closest('tr').hide();
}
// Для почты России скрываем время доставки
else if (current_id === '216337') {
$('#deliveryConvenientDate').closest('tr').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});


В файле "Товар" перед кодом:
<form action="{CART_ADD_GOODS_MODIFICATION_URL}" method="post" class="goodsDataForm">
Добавить:
<div id="formTovar">

И перед кодом:
<!-- Блок описания товара. Показываем его есть описание товара -->
{% IF GOODS_DESCRIPTION_LARGE %}
<h3>{GOODS_NAME}</h3>
<div class="htmlDataBlock" itemprop="description">
	 {GOODS_DESCRIPTION_LARGE}
</div>
{% ENDIF %}
<!-- END Блок описания товара. Показываем его есть описание товара -->
Добавить:
</div>



Панель администратора, "Сайт"->"Редактор Шаблонов".
В конец файла "main.css".
Добавить код:
.disabled {
background: grey !important;
}

В файле "Быстрый заказ" в самом начале файла удалить код:
{% IF cart_count_empty %}
<h2 class="alignCenter">Ваша корзина пуста, Пожалуйста выберите другой товар для оформления заказа</h2>
{% ELSE %}
После кода:
$("#quickDeliveryConvenientDate").datepicker({
		 dayNames	 : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'],
dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ],
closeText	 : 'Готово',
currentText : 'Сегодня' ,
duration		 : '',
monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'],
monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'],
yearRange	 : "-6:+6",
dateFormat : 'dd.mm.yy',
minDate		 : new Date(),
firstDay		 : 1
});
});
</script>
Удалить код:
{% ENDIF %}

Сделал все как написано, но не работает, выдает ошибку скрипта при попытке заказать((

и в main.js у меня скрипт заканчивается так
if(w < 800) {
// Автоматический ресайз внутреннего блока fancybox-а
$('.fancybox-inner').css('width', 'auto');
// Изменяем размер fancybox окна
$('.fancybox-wrap').css({'width': w + 'px'});
}
return false;
}
});
// :
}
});

return false;
}




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

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