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


Быстрый Заказ


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

#21 Eleneva

Eleneva

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

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

Отправлено 12 Февраль 2014 - 11:53

Просмотр сообщенияСake (12 Февраль 2014 - 02:16) писал:

Пожалуйста, сделайте доступными скрытые описания.



У вашего поля адреса доставки задан класс wide вместо fields. Найдите в вашем шаблоне "Быстрый заказ" строку

<li class="wide">

и замените её на

<li class="fields">

Обязательность ввода даты необходимо отключать в разделе Настройки -> Основные.

Ок. Теперь самовывоз хорошо работает. Осталось разобраться с обязательностью времени и его торчанием у почты.
1) (ДЛЯ ПОЧТЫ) Как я уже говорила ранее - при использовании кода убирается ввод даты, но торчит время. Как решить? В предыдущем сообщении есть фото.
2) Ввод времени обязателен для самовывоза и для доставки. Я не хочу убирать галочку напротив него в настройках. Как сделать так чтобы при выборе доставки "почтой" не только пряталось время и дата но и переставали быть необходимыми для введения. Ведь иначе система не даст оформить заказ. Как вариант, могу предложить сделать их автоматически что-то типа checked, но я не знаю как это делать.

#22 Сake

Сake

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

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

Отправлено 13 Февраль 2014 - 03:14

Замените ваш код вставленный в шаблон "Быстрый заказ"

//Меняем поля в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#quickDeliveryZipCode').closest('.fields').show();
$('#quickDeliveryCity').closest('.fields').show();
$('#quickDeliveryAddress').closest('.fields').show();
$('#quickDeliveryConvenientDate').closest('.fields').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '212820') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
$('#quickDeliveryAddress').closest('.fields').hide();
}
// Для курьера скрываем индекс
else if(current_id === '208616') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '217324') {
//$('#quickDeliveryConvenientDate').closest('.fields').hide();
}
else if(current_id === '217325') {
//$('#quickDeliveryConvenientDate').closest('.fields').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
</script>

на следующий код


//Меняем поля в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#quickDeliveryZipCode').closest('.fields').show();
$('#quickDeliveryCity').closest('.fields').show();
$('#quickDeliveryAddress').closest('.fields').show();
$('#quickDeliveryConvenientDate').removeClass('required').removeAttr('required').closest('.fields').show();
$('[name="form[delivery][convenient_time_from]"], [name="form[delivery][convenient_time_to]"]')
   .removeClass('required').removeAttr('required').closest('.fields').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '212820') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
$('#quickDeliveryAddress').closest('.fields').hide();
$('#quickDeliveryConvenientDate').addClass('required').attr('required', 'required');
$('[name="form[delivery][convenient_time_from]"], [name="form[delivery][convenient_time_to]"]')
   .addClass('required').attr('required', 'required');
}
// Для курьера скрываем индекс
else if(current_id === '208616') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
$('#quickDeliveryConvenientDate').addClass('required').attr('required', 'required');
$('[name="form[delivery][convenient_time_from]"], [name="form[delivery][convenient_time_to]"]')
   .addClass('required').attr('required', 'required');
}
// Для почты России скрываем время доставки
else if(current_id === '217324') {
$('#quickDeliveryConvenientDate').closest('.fields').hide();
$('[name="form[delivery][convenient_time_from]"]').closest('.fields').hide();
}
else if(current_id === '217325') {
$('#quickDeliveryConvenientDate').closest('.fields').hide();
$('[name="form[delivery][convenient_time_from]"]').closest('.fields').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
</script>

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

#23 Eleneva

Eleneva

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

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

Отправлено 13 Февраль 2014 - 06:59

Просмотр сообщенияСake (13 Февраль 2014 - 03:14) писал:

Замените ваш код вставленный в шаблон "Быстрый заказ"

//Меняем поля в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#quickDeliveryZipCode').closest('.fields').show();
$('#quickDeliveryCity').closest('.fields').show();
$('#quickDeliveryAddress').closest('.fields').show();
$('#quickDeliveryConvenientDate').closest('.fields').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '212820') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
$('#quickDeliveryAddress').closest('.fields').hide();
}
// Для курьера скрываем индекс
else if(current_id === '208616') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
}
// Для почты России скрываем время доставки
else if(current_id === '217324') {
//$('#quickDeliveryConvenientDate').closest('.fields').hide();
}
else if(current_id === '217325') {
//$('#quickDeliveryConvenientDate').closest('.fields').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
</script>

на следующий код


//Меняем поля в оформлении заказа
$(function() {
$('.deliveryRadio').click(function() {
var current_id = $(this).val();
$('#quickDeliveryZipCode').closest('.fields').show();
$('#quickDeliveryCity').closest('.fields').show();
$('#quickDeliveryAddress').closest('.fields').show();
$('#quickDeliveryConvenientDate').removeClass('required').removeAttr('required').closest('.fields').show();
$('[name="form[delivery][convenient_time_from]"], [name="form[delivery][convenient_time_to]"]')
.removeClass('required').removeAttr('required').closest('.fields').show();
// Для самовывоза скрываем адрес доставки и оставляем комментарий
if(current_id === '212820') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
$('#quickDeliveryAddress').closest('.fields').hide();
$('#quickDeliveryConvenientDate').addClass('required').attr('required', 'required');
$('[name="form[delivery][convenient_time_from]"], [name="form[delivery][convenient_time_to]"]')
.addClass('required').attr('required', 'required');
}
// Для курьера скрываем индекс
else if(current_id === '208616') {
$('#quickDeliveryZipCode').closest('.fields').hide();
$('#quickDeliveryCity').closest('.fields').hide();
$('#quickDeliveryConvenientDate').addClass('required').attr('required', 'required');
$('[name="form[delivery][convenient_time_from]"], [name="form[delivery][convenient_time_to]"]')
.addClass('required').attr('required', 'required');
}
// Для почты России скрываем время доставки
else if(current_id === '217324') {
$('#quickDeliveryConvenientDate').closest('.fields').hide();
$('[name="form[delivery][convenient_time_from]"]').closest('.fields').hide();
}
else if(current_id === '217325') {
$('#quickDeliveryConvenientDate').closest('.fields').hide();
$('[name="form[delivery][convenient_time_from]"]').closest('.fields').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});
</script>

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

Убрала галочку, установила код, почистила куки. Почта ОК, но у самовывоза и доставки время не обязательное.

#24 Сake

Сake

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

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

Отправлено 14 Февраль 2014 - 03:54

По идее классы и атрибуты добавляются корректно. Как я понимаю у вас сейчас "Удобное время доставки" все же является обязательным для заполнения в разделе Настройки -> Основные. Попробуйте временно отключить обязательность заполнения данного поля, для проверки корректности работы скрипта.

#25 Eleneva

Eleneva

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

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

Отправлено 14 Февраль 2014 - 06:20

Просмотр сообщенияСake (14 Февраль 2014 - 03:54) писал:

По идее классы и атрибуты добавляются корректно. Как я понимаю у вас сейчас "Удобное время доставки" все же является обязательным для заполнения в разделе Настройки -> Основные. Попробуйте временно отключить обязательность заполнения данного поля, для проверки корректности работы скрипта.

Всё работает, спасибо большое. Причина в том, что я не проверяла оформлением заказа а ориентировалась на красные звездочки.

#26 Coffee

Coffee

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

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

Отправлено 04 Март 2014 - 11:30

Здравствуйте! А как сделать, чтобы форма быстрого заказа всплывала напрямую при нажатии на кнопку "быстрый заказ"? Сейчас всплывает выбор между "оформить" и "продолжить".  Хочу переделать форму быстрого заказа в "свяжитесь с нами если нашли дешевле", а оформление заказа сделать пошаговым, классическим. Спасибо! :)
	<p id="add_to_cart"> <a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.goodsDataForm');return false;" title="В корзину">В корзину</a></p>
			 
	 <!--  <a class="exclusive" href=""  onclick="quickorder('.goodsDataForm');return true;" title="Купить дешевле">Купить дешевле</a>	-->

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

#27 Сake

Сake

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

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

Отправлено 05 Март 2014 - 01:52

Немного не понятно что именно вы хотите реализовать. Вы хотите чтобы при быстром заказе сразу отображалась форма без дополнительных кнопок "оформить" и "продолжить"? Если да, то для этого необходимо в шаблоне "Быстрый заказ" найти код

<div class="alignCenter">
  <a class="exclusive quickform" id="quickform-order">Оформить заказ</a>
  <a class="exclusive сlose2" id="quickform-close">Продолжить покупки</a>
</div>
<div class="clear"></div>
<div id="quickform2" style="display: none;">

и заменить его на

{% IFNOT FORM_NOTICE_IS_GOOD %}
<div class="alignCenter">
  <a class="exclusive quickform" id="quickform-order">Оформить заказ</a>
  <a class="exclusive сlose2" id="quickform-close">Продолжить покупки</a>
</div>
{% ENDIF %}
<div class="clear"></div>
<div id="quickform2" {% IFNOT FORM_NOTICE_IS_GOOD %}style="display: none;"{% ENDIF %}>

или же просто заменить на

<div class="clear"></div>
<div id="quickform2">


#28 Coffee

Coffee

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

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

Отправлено 05 Март 2014 - 11:33

Просмотр сообщенияСake (05 Март 2014 - 01:52) писал:

Немного не понятно что именно вы хотите реализовать. Вы хотите чтобы при быстром заказе сразу отображалась форма без дополнительных кнопок "оформить" и "продолжить"? Если да, то для этого необходимо в шаблоне "Быстрый заказ" найти код

<div class="alignCenter">
<a class="exclusive quickform" id="quickform-order">Оформить заказ</a>
<a class="exclusive сlose2" id="quickform-close">Продолжить покупки</a>
</div>
<div class="clear"></div>
<div id="quickform2" style="display: none;">

и заменить его на

{% IFNOT FORM_NOTICE_IS_GOOD %}
<div class="alignCenter">
<a class="exclusive quickform" id="quickform-order">Оформить заказ</a>
<a class="exclusive сlose2" id="quickform-close">Продолжить покупки</a>
</div>
{% ENDIF %}
<div class="clear"></div>
<div id="quickform2" {% IFNOT FORM_NOTICE_IS_GOOD %}style="display: none;"{% ENDIF %}>

или же просто заменить на

<div class="clear"></div>
<div id="quickform2">

Почти так. Я хочу оставить кнопку "В корзину", после нажатия на которую перед покупателем встаёт выбор "Продолжить" или "Оформить". Если оформить, то идет классическое оформление заказа в 4 шага.

А ниже я хочу сделать кнопку быстрого заказа - как раз то, что вы мне показали. Это работает.

#29 Сake

Сake

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

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

Отправлено 06 Март 2014 - 03:28

Можно реализовать в данном случае следующий трюк - в шаблоне "Быстрый заказ" замените код

{% IFNOT FORM_NOTICE_IS_GOOD %}
<div class="alignCenter">
<a class="exclusive quickform" id="quickform-order">Оформить заказ</a>
<a class="exclusive сlose2" id="quickform-close">Продолжить покупки</a>
</div>
{% ENDIF %}
<div class="clear"></div>
<div id="quickform2" {% IFNOT FORM_NOTICE_IS_GOOD %}style="display: none;"{% ENDIF %}>

на следующий

{% IFNOT ONLY_BODY %}
<div class="alignCenter">
  <a class="exclusive quickform" id="quickform-order">Оформить заказ</a>
  <a class="exclusive сlose2" id="quickform-close">Продолжить покупки</a>
</div>
{% ENDIF %}
<div class="clear"></div>
<div id="quickform2" {% IFNOT ONLY_BODY %}style="display: none;"{% ENDIF %}>

после этого в файле main.js найдите строку

function quickorder(formSelector)

и замените её на

function quickorder(formSelector, body)

далее найдите

formData.push({name: 'fast_order', value: 1});

и замените на

formData.push({name: 'fast_order', value: 1});
if(body) {
  formData.push({name: 'only_body', value: 1});
}

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

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}');return false;" title="Быстрый заказ">Быстрый заказ</a>

продублируйте её заменив на

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}');return false;" title="Добавить в корзину">Добавить в корзину</a>

В данном случае только изменяется название кнопки "Быстрый заказ" на "Добавить в корзину". После этого в кнопку быстрого заказа в событие onclick необходимо добавить второй параметр, чтобы кнопка имела вид

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}', true);return false;" title="Быстрый заказ">Быстрый заказ</a>

В итоге две кнопки должны иметь вид

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}', true);return false;" title="Быстрый заказ">Быстрый заказ</a>
<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}');return false;" title="Добавить в корзину">Добавить в корзину</a>


#30 Coffee

Coffee

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

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

Отправлено 06 Март 2014 - 11:39

Просмотр сообщенияСake (14 Февраль 2014 - 03:54) писал:

Можно реализовать в данном случае следующий трюк - в шаблоне "Быстрый заказ" замените код...
Не, не так. На страницу товара заходить обязательно, там выбирается модификация. Прошу у вас помочь сделать кнопку быстрого заказа на странице товара,
а при нажатии "в корзину" чтобы пользователь (после вопроса "продолжить" или "оформить"?) делал стандартное 4-х шаговое оформление заказа. Сейчас же он оформляет заказ по-быстрому.

<p id="add_to_cart"> <a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.goodsDataForm');return false;" title="Быстрый заказ">В корзину</a></p>
		  
			  <a class="exclusive" style="margin-top:20px;" href=""  onclick="quickorder('.goodsDataForm');return true;" title="Быстрый заказ">Быстрый заказ</a>  
верхний код должен предлагать оформить заказ, но не по-быстрому, а нижний должен по-быстрому :) так, вкратце..

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

  • Новый.jpg


#31 Сake

Сake

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

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

Отправлено 07 Март 2014 - 06:59

Тогда вам необходимо просто заменить кнопку

<p id="add_to_cart"> <a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.goodsDataForm');return false;" title="Быстрый заказ">В корзину</a></p>

на следующий код

<p id="add_to_cart"> <a class="ajax_add_to_cart_button add_to_cart_ph" onclick="$(this).closest('form').submit();" title="В корзину">В корзину</a></p>


#32 Coffee

Coffee

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

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

Отправлено 07 Март 2014 - 11:09

Просмотр сообщенияСake (07 Март 2014 - 06:59) писал:

Тогда вам необходимо просто заменить кнопку

<p id="add_to_cart"> <a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.goodsDataForm');return false;" title="Быстрый заказ">В корзину</a></p>

на следующий код

<p id="add_to_cart"> <a class="ajax_add_to_cart_button add_to_cart_ph" onclick="$(this).closest('form').submit();" title="В корзину">В корзину</a></p>
А как вызывать форму быстрого заказа напрямую без всплывающего окна "продолжить" и "оформить"?

#33 Сake

Сake

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

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

Отправлено 08 Март 2014 - 01:57

В предыдущей инструкции http://forum.storela..._20#entry125220 именно это и реализовывается. Кнопка отображения формы должна иметь вид

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}', true);return false;" title="Быстрый заказ">Быстрый заказ</a>

В данном случае главным критерием является атрибут

onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}', true);return false;"


#34 Coffee

Coffee

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

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

Отправлено 08 Март 2014 - 18:43

Просмотр сообщенияСake (08 Март 2014 - 01:57) писал:

В предыдущей инструкции http://forum.storela..._20#entry125220 именно это и реализовывается. Кнопка отображения формы должна иметь вид

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}', true);return false;" title="Быстрый заказ">Быстрый заказ</a>

В данном случае главным критерием является атрибут

onclick="quickorder('.product-form-{goods.MIN_PRICE_NOW_ID}', true);return false;"

Работает с каталога. Мне нужно, чтобы со страницы Товар

#35 Сake

Сake

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

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

Отправлено 12 Март 2014 - 04:42

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

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.goodsDataForm');return false;" title="Быстрый заказ">В корзину</a>

который необходимо просто заменить на

<a class="ajax_add_to_cart_button add_to_cart_ph" onclick="quickorder('.goodsDataForm', true);return false;" title="Быстрый заказ">В корзину</a>


#36 Coffee

Coffee

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

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

Отправлено 14 Март 2014 - 16:00

Спасибо, всё работает!




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

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