Здравствуйте!
Столкнулся с несколькими проблемами. По порядку:
1) Установил кнопку Быстрого заказа на страницу с товаром. Все бы хорошо, но не дает нажать "Оформить заказ", так как якобы не указан способ доставки.
Вот скрин:
Перерыл весь форум, не нашел решения Помогите, пожалуйста. Сейчас я закомментил эту кнопку, так как сайт работает и не стоит вводить посетителей в заблуждение.
2) Если выполнить пункт 1, то мы имеем две кнопки "В корзину" и "Заказ в 1 клик". Первая нужна чтобы выбрать несколько товаров, вторая чтобы максимально быстро оформить один товар.
Сейчас в Быстром заказе я все скрыл и оставил только Имя и Телефон. Этого достаточно для Заказа в 1 клик. А вот для оормления через корзину не достаточно.
Хочу добавить вторую форму быстрого заказа, которая будет располагаться в корзине вместо "Оформить заказ", но в ней необходимо сделать выбор способа оплаты и доставки, то есть примерно как это реализовано на этом сайте: http://domvd.ru/checkout/
3) Не могу найти, где можно ускорить анимацию развертывания и свертывания всплывающих окон. Это и "товар добавлен в корзину, продолжить покупки или оформить заказ" и анимация увеличения картинок.
На выходе получаем:
Возможность купить товар сразу или положить в корзину;
Возможность купить товар в 1 клик, введя только Имя и Телефон;
Возможность положить несколько товаров в корзину, и оформить заказ введя Имя, Телефон, почту, способ оплаты и доставки.
Быструю анимацию свертывания и развертывания.
Сайт: smallpet.ru
Аккаунт: SL-22123
PS: Сейчас в оформлении заказа по шагам при выборе способа доставки меняются поля, например, скрывается Индекс, если доставка курьером или самовывоз и пр. Хочется, чтобы это осталось.
0
- Авторизуйтесь для ответа в теме
Сообщений в теме: 2
#2 Сake
Отправлено 17 Декабрь 2013 - 03:23
1) У вас отсутствуют дополнительные поля оформления заказа. В шаблоне "Быстрый заказ" должны присутствовать поля доставки, оплаты. Вам необходимо восстановить исходное состояние шаблона "Быстрый заказ" или же заменить данный шаблон любым кодом из темы в которой изначально есть данный шаблон. Например код темы "Вечность"
2) Почитайте тему форума http://forum.storela...аталоге-товаров
3) К сожалению, изменить данное поведение затруднительно, так как существует сильная привязка подобного поведения в библиотеке nyroModal.
Скрытый текст
{% IF FORM_NOTICE %}<ul class="message {% IF FORM_NOTICE_IS_GOOD %}success-msg{% ELSE %}error-notice{% ENDIF %}"><li>{FORM_NOTICE | nl2br}</li></ul>{% ENDIF %} {% IF cart_count_empty %} <h2 class="alignCenter">Ваша корзина пуста, пожалуйста, выберите другой товар для оформления заказа</h2> {% ELSE %} <style> #quickform label {margin-top:0.7em;} #quickform .control {margin-top:0.5em;} #quickform .control label {margin-top:0;line-height: 18px;} #quickform .orderStageDeliveryListTable label, #quickform .orderStagePaymentListTable label {margin-top:0;} #quickform .showPassBlock {margin-top:0.2em;} #quickform-order {float: left;} #quickform-close {float: right;} @media screen and (max-width: 768px) { #quickform-order, #quickform-close {margin:0.1em 0;float: none;display:inline-block;text-align:center;} } </style> <div class="alignCenter"> <button type="button" class="submit quickform" id="quickform-order">Оформить заказ</button> <button type="submit" class="submit сlose2" id="quickform-close">Продолжить покупки</button> </div> <div class="clear"> <div id="quickform2" style="display: none;"> <form action="{ORDER_STAGE_CONFIRM_URL}" method="post" id="quickform"> <div style="padding:0 0.5em;"> <input type="hidden" name="hash" value="{HASH}" /> <h1>Форма быстрого оформления заказа</h1> <div style="margin:0;padding:0 0 1em 0"> <label for="reg_name" class="required">ФИО*</label> <input id="reg_name" name="form[contact][person]" value="{ORDER_FORM_CONTACT_PERSON}" maxlength="100" class="required input-text" type="text"/> <label for="contactEmail" class="required">E-mail{% IF ORDER_FORM_CONTACT_WANT_REGISTER %}*{% ENDIF %}</label> <input id="contactEmail" name="form[contact][email]" value="{ORDER_FORM_CONTACT_EMAIL}" maxlength="255" class="{% IF ORDER_FORM_CONTACT_WANT_REGISTER %}required{% ENDIF %} email input-text" type="text"/> <label for="sites_client_phone" class="required">Телефон для связи*</label> <input id="sites_client_phone" name="form[contact][phone]" value="{ORDER_FORM_CONTACT_PHONE}" maxlength="255" class="required input-text" type="text"/> <br /> <!-- Если в тарифном плане подключен раздел личного кабинета --> {% IF TARIFF_FEATURE_CLIENT_ROOM %} {% IFNOT CLIENT_IS_LOGIN %} <div class="control"> <input type="checkbox" id="contactWantRegister" name="form[contact][want_register]" value="1" {% IF ORDER_FORM_CONTACT_WANT_REGISTER %}checked="checked"{% ENDIF %}><label for="contactWantRegister">Я хочу зарегистрироваться</label> </div> {% ENDIF %} {% ENDIF %} <!-- Если в тарифном плане подключен раздел личного кабинета --> {% IF TARIFF_FEATURE_CLIENT_ROOM %} {% IFNOT CLIENT_IS_LOGIN %} <div class="fieldset contactRegisterNeedElement" {% IFNOT ORDER_FORM_CONTACT_WANT_REGISTER %}style="display:none;"{% ENDIF %}> <label for="contactPassWord" class="required">Придумайте пароль*</label> <input id="contactPassWord" type="password" name="form[contact][pass]" value="{ORDER_FORM_CONTACT_PASS}" maxlength="50" minlength="6" class="input-text {% IF ORDER_FORM_CONTACT_WANT_REGISTER %}required{% ENDIF %}" onkeyup="checkCapsWarning(event)" onfocus="checkCapsWarning(event)" onblur="removeCapsWarning()"/> {% IFNOT user_agent_ie %} <div class="showPassBlock"><a href="#" rel="Скрыть пароль" class="OrderShowPass">Показать пароль</a></div> {% ENDIF %} <div class="alignCenter" style="display:none;width:214px;padding-top:10px;" id="caps_lock"> <img src="{ASSETS_IMAGES_PATH}warningCapslock.png"><br /> <strong class="black">Caps Lock включен.</strong><br /> Пароль может быть введен неверно. </div> <div class="clear"></div> </div> {% ENDIF %} {% ENDIF %} </div> <div class="fieldset"> <h2 class="legend" title="Выберите удобный для вас способ доставки">Cпособ доставки</h2> <table class="orderStageDeliveryListTable basket" style="max-width: 775px;"> {% FOR order_delivery %} <tbody rel="{order_delivery.ID}"> <tr {% IF order_delivery.first %}class="first"{% ENDIF %}> <td class="cell1" width="5%"> <input type="radio" id="quickDeliveryIdMain{order_delivery.ID}" name="form[delivery][id]" value="{order_delivery.ID}" class="required deliveryRadio" {% IFNOT ORDER_FORM_DELIVERY_ID %} {% IF order_delivery.first %} checked="checked" {% ENDIF %} {% ELSEIF order_delivery.ID = ORDER_FORM_DELIVERY_ID %} checked="checked" {% ENDIF %} /> </td> <td class="cell2" width="60%"> <label for="quickDeliveryIdMain{order_delivery.ID}">{order_delivery.NAME}</label> {% IF order_delivery.DESC %} <div class="htmlDataBlock">{order_delivery.DESC}</div> {% ENDIF %} </td> <td class="cell3 price"> <span class="orderStageDeliveryDefaultPrice" {% IF order_delivery.ZONE_ID>0 %}style="display:none;"{% ENDIF%}>{order_delivery.END_PRICE | money_format}</span> <span class="orderStageDeliveryZonePrice" {% IF order_delivery.ZONE_ID<1 %}style="display:none;"{% ENDIF%}>{order_delivery.ZONE_END_PRICE | money_format}</span> </td> </tr> {% IFNOT order_delivery.zone_list_empty %} {% FOR zone_list %} <tr class="zones"> <td></td> <td> <!-- Заголовок внутри метода доставки, появляется только один раз--> {% IF order_delivery.zone_list.index=1 %} <label for="quickDeliveryIdMain{order_delivery.ID}" class="zones-header">Зоны доставки</label> {% ENDIF %} <input type="radio" class="deliveryZoneRadio" deliveryid="{order_delivery.ID}" id="quickDeliveryZoneId{order_delivery.zone_list.ID}" name="form[delivery][zone_id]" value="{order_delivery.zone_list.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %} checked="checked" rel="true" {% ENDIF %} /> <label class="orderStageDeliveryZoneLabel" for="quickDeliveryZoneId{order_delivery.zone_list.ID}" style="color: #333;"> {order_delivery.zone_list.NAME} <span class="deliveryZonePrice" style="color: #333;">{order_delivery.zone_list.END_PRICE | money_format}</span> </label> </td> <td></td> </tr> {% ENDFOR %} {% ENDIF %} </tbody> {% ENDFOR %} </table> {% FOR order_delivery %} {% IFNOT order_delivery.available_payment_list_empty %} <div class="quick_order_payment fieldset" rel="{order_delivery.ID}" style="display: none;"> <h2 class="legend" title="Выберите удобный для вас способ оплаты заказа">Cпособ оплаты</h2> <table class="orderStagePaymentListTable basket" style="max-width: 775px;"> {% FOR available_payment_list %} <tr> <td class="cell1" width="5%"><input type="radio" id="quickPaymentId{order_delivery.ID}_{order_delivery.available_payment_list.ID}" name="form[payment][id]" value="{order_delivery.available_payment_list.ID}" class="required" {% IFNOT ORDER_FORM_PAYMENT_ID %}{% IF order_delivery.available_payment_list.first %}checked="checked"{% ENDIF %}{% ELSEIF order_delivery.available_payment_list.ID = ORDER_FORM_PAYMENT_ID %}checked="checked"{% ENDIF %}/></td> <td class="cell2" width="95%"> <label for="quickPaymentId{order_delivery.ID}_{order_delivery.available_payment_list.ID}">{order_delivery.available_payment_list.NAME}</label> <!-- Сообщение для пользователя --> {order_delivery.available_payment_list.MESSAGE} </td> </tr> {% ENDFOR %} </table> </div> {% ENDIF %} {% ENDFOR %} </div> <div class="fieldset"> <h2 class="legend">Адрес доставки заказа</h2> <ul class="form-list"> <!-- Если поле страны доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_COUNTRY<3 %} <li class="fields"> {% IFNOT country_list_empty %} <div class="field"> <label for="quickDeliveryCountry" {% IF SETTINGS_ORDER_FIELDS_COUNTRY=1 %}class="required"{% ENDIF %}>Страна{% IF SETTINGS_ORDER_FIELDS_COUNTRY=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <select id="quickDeliveryCountry" name="form[delivery][country_id]" {% IF SETTINGS_ORDER_FIELDS_COUNTRY=1 %}class="required"{% ENDIF %} style="float: none;"> {% FOR country_list %} <option value="{country_list.ID}" {% IF country_list.ID=ORDER_FORM_DELIVERY_COUNTRY_ID %}selected="selected"{% ENDIF %}> {country_list.NAME} </option> {% ENDFOR %} </select> </div> </div> {% ENDIF %} </li> {% ENDIF %} <!-- Если поле области запрашивается --> {% IF SETTINGS_ORDER_FIELDS_REGION<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryRegion" {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}class="required"{% ENDIF %}>Область{% IF SETTINGS_ORDER_FIELDS_REGION=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryRegion" name="form[delivery][region]" value="{ORDER_FORM_DELIVERY_REGION}" maxlength="255" class="input-text {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}required{% ENDIF %}"/> </div> </div> </li> {% ENDIF %} <!-- Если поле города запрашивается --> {% IF SETTINGS_ORDER_FIELDS_CITY<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryCity" {% IF SETTINGS_ORDER_FIELDS_CITY=1 %}class="required"{% ENDIF %}>Город{% IF SETTINGS_ORDER_FIELDS_CITY=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryCity" name="form[delivery][city]" value="{ORDER_FORM_DELIVERY_CITY}" class="input-text {% IF SETTINGS_ORDER_FIELDS_CITY=1 %}required{% ENDIF %}" maxlength="255" /> </div> </div> </li> {% ENDIF %} <!-- Если поле почтового индекса запрашивается --> {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryZipCode" {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}class="required"{% ENDIF %}>Почтовый индекс{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryZipCode" name="form[delivery][zip_code]" value="{ORDER_FORM_DELIVERY_ZIP_CODE}" minlength="5" maxlength="6" class="input-text digits {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}required{% ENDIF %}" maxlength="255" /> </div> </div> </li> {% ENDIF %} <!-- Если поле даты доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобная дата доставки{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" class="input-text {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}required{% ENDIF %}" maxlength="10" minlength="10" /> </div> </div> </li> <li class="fields"> <div class="field"> <label for="quickDeliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобное время доставки{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> c <select style="width:95px;margin-right:3px;float: none;" name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select style="width:95px;float: none;" name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </div> </div> </li> {% ENDIF %} <!-- Если поле адреса доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_ADDRESS<3 %} <li class="wide"> <div class="clear"></div> <label for="quickDeliveryAddress" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>Адрес доставки{% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <textarea cols="100" rows="5" id="quickDeliveryAddress" name="form[delivery][address]" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>{ORDER_FORM_DELIVERY_ADDRESS}</textarea> </div> </li> {% ENDIF %} <!-- Если поле адреса доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_COMMENT<3 %} <li class="wide"> <div class="clear"></div> <label for="quickDeliveryComment" {% IF SETTINGS_ORDER_FIELDS_COMMENT=1 %}class="required"{% ENDIF %}>Комментарий{% IF SETTINGS_ORDER_FIELDS_COMMENT=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <textarea cols="100" rows="5" id="quickDeliveryComment" name="form[delivery][comment]" {% IF SETTINGS_ORDER_FIELDS_COMMENT=1 %}class="required"{% ENDIF %}>{ORDER_FORM_DELIVERY_COMMENT}</textarea> </div> </li> {% ENDIF %} </ul> </div> <!-- Если в тарифном плане подключен модуль скидок по купонам и суммам заказов --> {% IF TARIFF_FEATURE_DISCOUNT_COUPONS %} <!-- Если скидки по купонам активированы в панели управления магазином --> {% IF ORDER_DISCOUNT_COUPON_IS_ENABLED %} <div class="fieldset" style="margin-top: 8px;"> <h2 class="legend">Купон на скидку, если имеется</h2> <ul class="form-list"> <li> <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="input-text" /> </div> <li> </ul> </div> {% ENDIF %} {% ENDIF %} <!-- END Если в тарифном плане подключен модуль скидок по купонам и суммам заказов --> <div class="buttons-set"> <button type="submit" class="submit" title="Оформить заказ" style="float: left">Оформить заказ</button> </div> </div> </form> </div> <script type="text/javascript"> $(document).ready(function(){ // При клике на кнопку быстрого оформления заказа $(".quickform").click(function () { // Текущая кнопка по всей логике больше не понадобится пользователю, скрываем её. Аналогично, если пользователь оформляет заказ, с большой вероятностью кнопка продолжить покупки ему тоже не нужна, тем более, что есть кнопка закрытия окна полностью дублирующая функционал кнопки "продолжить покупки" $(this).hide().parent().find('.сlose2').hide(); if ($('#quickform2').hasClass('visible')) { $('#quickform2').removeClass("visible"); $('#quickform2').hide(); } else { $('#quickform2').addClass("visible"); $('#quickform2').show(); } $.fancybox.update(); }); $(".сlose2").click(function () { $.fancybox.close(); }); var ID = $('input[name="form[delivery][id]"]:checked').val(); $('.quick_order_payment').hide(); $('.quick_order_payment[rel="' + ID + '"]').show(); $('.quick_order_payment[rel="' + ID + '"]').find('input:first').attr('checked', true); $('.deliveryRadio').click(function(){ var ID = $('input[name="form[delivery][id]"]:checked').val(); $('.quick_order_payment').hide(); $('.quick_order_payment[rel="' + ID + '"]').show(); $('.quick_order_payment[rel="' + ID + '"]').find('input:first').attr('checked', true); }); // Форма регистрации нового пользователя, при оформлении заказа $('.OrderShowPass').click(function(){ ChangePasswordFieldType(this, $('#contactPassWord')); return false; }); // При оформлении заказа дадим возможность зарегистрироваться пользователю $('#contactWantRegister').click(function(){ if($(this).attr("checked")) { $('.contactRegisterNeedElement').show(); $('#contactEmail, #contactPassWord').addClass('required'); } else { $('.contactRegisterNeedElement').hide(); $('#contactEmail, #contactPassWord').removeClass('required'); } }); // Действия при выборе варианта доставки на этапе оформления заказа $('.deliveryRadio').click(function(){ // Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) { $('.deliveryZoneRadio:checked').click().attr('checked', false); } }); // Действия при выборе зоны внутри варианта доставки на этапе оформления заказа $('.deliveryZoneRadio').click(function(){ var deliveryId = $(this).attr('deliveryid') ,deliveryZonePrice = $(this).parent().find('.deliveryZonePrice') ,deliveryTbody = $('.orderStageDeliveryListTable tbody[rel="' + deliveryId + '"]') ,deliveryBlock = deliveryTbody.find('#quickDeliveryIdMain' + deliveryId) ,deliveryZonePriceBlock = deliveryTbody.find('.orderStageDeliveryZonePrice') ,deliveryDefaultPriceBlock = deliveryTbody.find('.orderStageDeliveryDefaultPrice') ; // Если этот пункт уже выбран, при повторном клике пользователь видимо хочет снять выделение зоны доставки if('true' == $(this).attr('rel')) { $(this).attr('checked', false); $(this).attr('rel', 'false'); // Показываем цену по умолчанию deliveryDefaultPriceBlock.show(); // Скрываем цену образованную от зоны deliveryZonePriceBlock.hide(); // Отмечаем у всех радио баттонов зон доставки свойство говорящее что они не отмечены } else { $('.deliveryZoneRadio').attr('rel', 'false'); $(this).attr('rel', 'true'); // Показываем цену по умолчанию deliveryDefaultPriceBlock.hide(); // Скрываем цену образованную от зоны deliveryZonePriceBlock.show().html(deliveryZonePrice.html()); // Выделяем вариант доставки к которому относится зона доставки deliveryBlock.attr('checked', true).click(); } }); // Валидация формы на странице оформления заказа $("#quickform").submit(function(){ // Если форма невалидна не отправляем её на сервер if(!$(this).valid()) { return false; } // Получаем данные формы, которые будем отправлять на сервер var formData = $(this).serializeArray(); // Сообщаем серверу, что мы пришли через ajax запрос formData.push({name: 'ajax_q', value: 1}); // Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара $.ajax({ type : "POST", dataType: 'json', cache : false, url : $(this).attr('action'), data : formData, success: function(data) { // Если заказ был успешно создан if( data.status == 'ok' ) { window.location = data.location; } else if( data.status == 'error' ) { alert(data.message); } else { alert('Во время оформления заказа возникла неизвестная ошибка. Пожалуйста, обратитесь в службу технической поддержки.'); } } }); return false; }).validate(); $("#quickDeliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : new Date(), firstDay : 1 }); }); </script> {% ENDIF %} <!-- Блок для обновления данных корзины. Не виден пользователю --> <div style="display:none;" id="newCartData"> <div class="summary"> <a href="{CART_URL}"><strong>{% IF cart_count_empty %} <span>0</span> {% ELSE %} {CART_COUNT_TOTAL} {% ENDIF %}</strong> товаров в корзине</a> </div> <div class="basket-summary"> <table {% IF cart_count_empty %}style="display: none;"{% ENDIF %}> <tbody> <tr> <td>Сумма заказа:</td> <td> {% IF cart_count_empty %} <span>0</span> {CURRENCY_NAME} {% ELSE %} {% FOR cart_sum %} {cart_sum.NOW_WITH_DISCOUNT | money_format}<br /> {% ENDFOR %} {% ENDIF %} </td> </tr> </tbody> </table> {% IF cart_count_empty %} <p>Ваша корзина пуста</p> {% ENDIF %} </div> </div> <!-- JS обновление данных корзины --> <script>$('.basket-info:first').html($('#newCartData').html());</script> <!-- end Блок для обновления данных корзины. Не виден пользователю -->
2) Почитайте тему форума http://forum.storela...аталоге-товаров
3) К сожалению, изменить данное поведение затруднительно, так как существует сильная привязка подобного поведения в библиотеке nyroModal.
#3 Atamovich
Отправлено 17 Декабрь 2013 - 19:44
Сake (17 Декабрь 2013 - 03:23) писал:
1) У вас отсутствуют дополнительные поля оформления заказа. В шаблоне "Быстрый заказ" должны присутствовать поля доставки, оплаты. Вам необходимо восстановить исходное состояние шаблона "Быстрый заказ" или же заменить данный шаблон любым кодом из темы в которой изначально есть данный шаблон. Например код темы "Вечность"
2) Почитайте тему форума http://forum.storela...аталоге-товаров
3) К сожалению, изменить данное поведение затруднительно, так как существует сильная привязка подобного поведения в библиотеке nyroModal.
Скрытый текст
{% IF FORM_NOTICE %}<ul class="message {% IF FORM_NOTICE_IS_GOOD %}success-msg{% ELSE %}error-notice{% ENDIF %}"><li>{FORM_NOTICE | nl2br}</li></ul>{% ENDIF %} {% IF cart_count_empty %} <h2 class="alignCenter">Ваша корзина пуста, пожалуйста, выберите другой товар для оформления заказа</h2> {% ELSE %} <style> #quickform label {margin-top:0.7em;} #quickform .control {margin-top:0.5em;} #quickform .control label {margin-top:0;line-height: 18px;} #quickform .orderStageDeliveryListTable label, #quickform .orderStagePaymentListTable label {margin-top:0;} #quickform .showPassBlock {margin-top:0.2em;} #quickform-order {float: left;} #quickform-close {float: right;} @media screen and (max-width: 768px) { #quickform-order, #quickform-close {margin:0.1em 0;float: none;display:inline-block;text-align:center;} } </style> <div class="alignCenter"> <button type="button" class="submit quickform" id="quickform-order">Оформить заказ</button> <button type="submit" class="submit сlose2" id="quickform-close">Продолжить покупки</button> </div> <div class="clear"> <div id="quickform2" style="display: none;"> <form action="{ORDER_STAGE_CONFIRM_URL}" method="post" id="quickform"> <div style="padding:0 0.5em;"> <input type="hidden" name="hash" value="{HASH}" /> <h1>Форма быстрого оформления заказа</h1> <div style="margin:0;padding:0 0 1em 0"> <label for="reg_name" class="required">ФИО*</label> <input id="reg_name" name="form[contact][person]" value="{ORDER_FORM_CONTACT_PERSON}" maxlength="100" class="required input-text" type="text"/> <label for="contactEmail" class="required">E-mail{% IF ORDER_FORM_CONTACT_WANT_REGISTER %}*{% ENDIF %}</label> <input id="contactEmail" name="form[contact][email]" value="{ORDER_FORM_CONTACT_EMAIL}" maxlength="255" class="{% IF ORDER_FORM_CONTACT_WANT_REGISTER %}required{% ENDIF %} email input-text" type="text"/> <label for="sites_client_phone" class="required">Телефон для связи*</label> <input id="sites_client_phone" name="form[contact][phone]" value="{ORDER_FORM_CONTACT_PHONE}" maxlength="255" class="required input-text" type="text"/> <br /> <!-- Если в тарифном плане подключен раздел личного кабинета --> {% IF TARIFF_FEATURE_CLIENT_ROOM %} {% IFNOT CLIENT_IS_LOGIN %} <div class="control"> <input type="checkbox" id="contactWantRegister" name="form[contact][want_register]" value="1" {% IF ORDER_FORM_CONTACT_WANT_REGISTER %}checked="checked"{% ENDIF %}><label for="contactWantRegister">Я хочу зарегистрироваться</label> </div> {% ENDIF %} {% ENDIF %} <!-- Если в тарифном плане подключен раздел личного кабинета --> {% IF TARIFF_FEATURE_CLIENT_ROOM %} {% IFNOT CLIENT_IS_LOGIN %} <div class="fieldset contactRegisterNeedElement" {% IFNOT ORDER_FORM_CONTACT_WANT_REGISTER %}style="display:none;"{% ENDIF %}> <label for="contactPassWord" class="required">Придумайте пароль*</label> <input id="contactPassWord" type="password" name="form[contact][pass]" value="{ORDER_FORM_CONTACT_PASS}" maxlength="50" minlength="6" class="input-text {% IF ORDER_FORM_CONTACT_WANT_REGISTER %}required{% ENDIF %}" onkeyup="checkCapsWarning(event)" onfocus="checkCapsWarning(event)" onblur="removeCapsWarning()"/> {% IFNOT user_agent_ie %} <div class="showPassBlock"><a href="#" rel="Скрыть пароль" class="OrderShowPass">Показать пароль</a></div> {% ENDIF %} <div class="alignCenter" style="display:none;width:214px;padding-top:10px;" id="caps_lock"> <img src="{ASSETS_IMAGES_PATH}warningCapslock.png"><br /> <strong class="black">Caps Lock включен.</strong><br /> Пароль может быть введен неверно. </div> <div class="clear"></div> </div> {% ENDIF %} {% ENDIF %} </div> <div class="fieldset"> <h2 class="legend" title="Выберите удобный для вас способ доставки">Cпособ доставки</h2> <table class="orderStageDeliveryListTable basket" style="max-width: 775px;"> {% FOR order_delivery %} <tbody rel="{order_delivery.ID}"> <tr {% IF order_delivery.first %}class="first"{% ENDIF %}> <td class="cell1" width="5%"> <input type="radio" id="quickDeliveryIdMain{order_delivery.ID}" name="form[delivery][id]" value="{order_delivery.ID}" class="required deliveryRadio" {% IFNOT ORDER_FORM_DELIVERY_ID %} {% IF order_delivery.first %} checked="checked" {% ENDIF %} {% ELSEIF order_delivery.ID = ORDER_FORM_DELIVERY_ID %} checked="checked" {% ENDIF %} /> </td> <td class="cell2" width="60%"> <label for="quickDeliveryIdMain{order_delivery.ID}">{order_delivery.NAME}</label> {% IF order_delivery.DESC %} <div class="htmlDataBlock">{order_delivery.DESC}</div> {% ENDIF %} </td> <td class="cell3 price"> <span class="orderStageDeliveryDefaultPrice" {% IF order_delivery.ZONE_ID>0 %}style="display:none;"{% ENDIF%}>{order_delivery.END_PRICE | money_format}</span> <span class="orderStageDeliveryZonePrice" {% IF order_delivery.ZONE_ID<1 %}style="display:none;"{% ENDIF%}>{order_delivery.ZONE_END_PRICE | money_format}</span> </td> </tr> {% IFNOT order_delivery.zone_list_empty %} {% FOR zone_list %} <tr class="zones"> <td></td> <td> <!-- Заголовок внутри метода доставки, появляется только один раз--> {% IF order_delivery.zone_list.index=1 %} <label for="quickDeliveryIdMain{order_delivery.ID}" class="zones-header">Зоны доставки</label> {% ENDIF %} <input type="radio" class="deliveryZoneRadio" deliveryid="{order_delivery.ID}" id="quickDeliveryZoneId{order_delivery.zone_list.ID}" name="form[delivery][zone_id]" value="{order_delivery.zone_list.ID}" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %} checked="checked" rel="true" {% ENDIF %} /> <label class="orderStageDeliveryZoneLabel" for="quickDeliveryZoneId{order_delivery.zone_list.ID}" style="color: #333;"> {order_delivery.zone_list.NAME} <span class="deliveryZonePrice" style="color: #333;">{order_delivery.zone_list.END_PRICE | money_format}</span> </label> </td> <td></td> </tr> {% ENDFOR %} {% ENDIF %} </tbody> {% ENDFOR %} </table> {% FOR order_delivery %} {% IFNOT order_delivery.available_payment_list_empty %} <div class="quick_order_payment fieldset" rel="{order_delivery.ID}" style="display: none;"> <h2 class="legend" title="Выберите удобный для вас способ оплаты заказа">Cпособ оплаты</h2> <table class="orderStagePaymentListTable basket" style="max-width: 775px;"> {% FOR available_payment_list %} <tr> <td class="cell1" width="5%"><input type="radio" id="quickPaymentId{order_delivery.ID}_{order_delivery.available_payment_list.ID}" name="form[payment][id]" value="{order_delivery.available_payment_list.ID}" class="required" {% IFNOT ORDER_FORM_PAYMENT_ID %}{% IF order_delivery.available_payment_list.first %}checked="checked"{% ENDIF %}{% ELSEIF order_delivery.available_payment_list.ID = ORDER_FORM_PAYMENT_ID %}checked="checked"{% ENDIF %}/></td> <td class="cell2" width="95%"> <label for="quickPaymentId{order_delivery.ID}_{order_delivery.available_payment_list.ID}">{order_delivery.available_payment_list.NAME}</label> <!-- Сообщение для пользователя --> {order_delivery.available_payment_list.MESSAGE} </td> </tr> {% ENDFOR %} </table> </div> {% ENDIF %} {% ENDFOR %} </div> <div class="fieldset"> <h2 class="legend">Адрес доставки заказа</h2> <ul class="form-list"> <!-- Если поле страны доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_COUNTRY<3 %} <li class="fields"> {% IFNOT country_list_empty %} <div class="field"> <label for="quickDeliveryCountry" {% IF SETTINGS_ORDER_FIELDS_COUNTRY=1 %}class="required"{% ENDIF %}>Страна{% IF SETTINGS_ORDER_FIELDS_COUNTRY=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <select id="quickDeliveryCountry" name="form[delivery][country_id]" {% IF SETTINGS_ORDER_FIELDS_COUNTRY=1 %}class="required"{% ENDIF %} style="float: none;"> {% FOR country_list %} <option value="{country_list.ID}" {% IF country_list.ID=ORDER_FORM_DELIVERY_COUNTRY_ID %}selected="selected"{% ENDIF %}> {country_list.NAME} </option> {% ENDFOR %} </select> </div> </div> {% ENDIF %} </li> {% ENDIF %} <!-- Если поле области запрашивается --> {% IF SETTINGS_ORDER_FIELDS_REGION<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryRegion" {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}class="required"{% ENDIF %}>Область{% IF SETTINGS_ORDER_FIELDS_REGION=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryRegion" name="form[delivery][region]" value="{ORDER_FORM_DELIVERY_REGION}" maxlength="255" class="input-text {% IF SETTINGS_ORDER_FIELDS_REGION=1 %}required{% ENDIF %}"/> </div> </div> </li> {% ENDIF %} <!-- Если поле города запрашивается --> {% IF SETTINGS_ORDER_FIELDS_CITY<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryCity" {% IF SETTINGS_ORDER_FIELDS_CITY=1 %}class="required"{% ENDIF %}>Город{% IF SETTINGS_ORDER_FIELDS_CITY=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryCity" name="form[delivery][city]" value="{ORDER_FORM_DELIVERY_CITY}" class="input-text {% IF SETTINGS_ORDER_FIELDS_CITY=1 %}required{% ENDIF %}" maxlength="255" /> </div> </div> </li> {% ENDIF %} <!-- Если поле почтового индекса запрашивается --> {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryZipCode" {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}class="required"{% ENDIF %}>Почтовый индекс{% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryZipCode" name="form[delivery][zip_code]" value="{ORDER_FORM_DELIVERY_ZIP_CODE}" minlength="5" maxlength="6" class="input-text digits {% IF SETTINGS_ORDER_FIELDS_ZIP_CODE=1 %}required{% ENDIF %}" maxlength="255" /> </div> </div> </li> {% ENDIF %} <!-- Если поле даты доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME<3 %} <li class="fields"> <div class="field"> <label for="quickDeliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобная дата доставки{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <input type="text" id="quickDeliveryConvenientDate" name="form[delivery][convenient_date]" value="{ORDER_FORM_DELIVERY_CONVENIENT_DATE}" class="input-text {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}required{% ENDIF %}" maxlength="10" minlength="10" /> </div> </div> </li> <li class="fields"> <div class="field"> <label for="quickDeliveryConvenientDate" {% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}class="required"{% ENDIF %}>Удобное время доставки{% IF SETTINGS_ORDER_FIELDS_CONVENIENT_TIME=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> c <select style="width:95px;margin-right:3px;float: none;" name="form[delivery][convenient_time_from]"> <option></option> {% FOR convenient_time_from_list %} <option value="{convenient_time_from_list.HOUR_INT}" {% IF convenient_time_from_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_from_list.HOUR}</option> {% ENDFOR %} </select> до <select style="width:95px;float: none;" name="form[delivery][convenient_time_to]"> <option></option> {% FOR convenient_time_to_list %} <option value="{convenient_time_to_list.HOUR_INT}" {% IF convenient_time_to_list.SELECTED %}selected="selected"{% ENDIF %}>{convenient_time_to_list.HOUR}</option> {% ENDFOR %} </select> </div> </div> </li> {% ENDIF %} <!-- Если поле адреса доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_ADDRESS<3 %} <li class="wide"> <div class="clear"></div> <label for="quickDeliveryAddress" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>Адрес доставки{% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <textarea cols="100" rows="5" id="quickDeliveryAddress" name="form[delivery][address]" {% IF SETTINGS_ORDER_FIELDS_ADDRESS=1 %}class="required"{% ENDIF %}>{ORDER_FORM_DELIVERY_ADDRESS}</textarea> </div> </li> {% ENDIF %} <!-- Если поле адреса доставки запрашивается --> {% IF SETTINGS_ORDER_FIELDS_COMMENT<3 %} <li class="wide"> <div class="clear"></div> <label for="quickDeliveryComment" {% IF SETTINGS_ORDER_FIELDS_COMMENT=1 %}class="required"{% ENDIF %}>Комментарий{% IF SETTINGS_ORDER_FIELDS_COMMENT=1 %}<em>*</em>{% ENDIF %}</label> <div class="input-box"> <textarea cols="100" rows="5" id="quickDeliveryComment" name="form[delivery][comment]" {% IF SETTINGS_ORDER_FIELDS_COMMENT=1 %}class="required"{% ENDIF %}>{ORDER_FORM_DELIVERY_COMMENT}</textarea> </div> </li> {% ENDIF %} </ul> </div> <!-- Если в тарифном плане подключен модуль скидок по купонам и суммам заказов --> {% IF TARIFF_FEATURE_DISCOUNT_COUPONS %} <!-- Если скидки по купонам активированы в панели управления магазином --> {% IF ORDER_DISCOUNT_COUPON_IS_ENABLED %} <div class="fieldset" style="margin-top: 8px;"> <h2 class="legend">Купон на скидку, если имеется</h2> <ul class="form-list"> <li> <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="input-text" /> </div> <li> </ul> </div> {% ENDIF %} {% ENDIF %} <!-- END Если в тарифном плане подключен модуль скидок по купонам и суммам заказов --> <div class="buttons-set"> <button type="submit" class="submit" title="Оформить заказ" style="float: left">Оформить заказ</button> </div> </div> </form> </div> <script type="text/javascript"> $(document).ready(function(){ // При клике на кнопку быстрого оформления заказа $(".quickform").click(function () { // Текущая кнопка по всей логике больше не понадобится пользователю, скрываем её. Аналогично, если пользователь оформляет заказ, с большой вероятностью кнопка продолжить покупки ему тоже не нужна, тем более, что есть кнопка закрытия окна полностью дублирующая функционал кнопки "продолжить покупки" $(this).hide().parent().find('.сlose2').hide(); if ($('#quickform2').hasClass('visible')) { $('#quickform2').removeClass("visible"); $('#quickform2').hide(); } else { $('#quickform2').addClass("visible"); $('#quickform2').show(); } $.fancybox.update(); }); $(".сlose2").click(function () { $.fancybox.close(); }); var ID = $('input[name="form[delivery][id]"]:checked').val(); $('.quick_order_payment').hide(); $('.quick_order_payment[rel="' + ID + '"]').show(); $('.quick_order_payment[rel="' + ID + '"]').find('input:first').attr('checked', true); $('.deliveryRadio').click(function(){ var ID = $('input[name="form[delivery][id]"]:checked').val(); $('.quick_order_payment').hide(); $('.quick_order_payment[rel="' + ID + '"]').show(); $('.quick_order_payment[rel="' + ID + '"]').find('input:first').attr('checked', true); }); // Форма регистрации нового пользователя, при оформлении заказа $('.OrderShowPass').click(function(){ ChangePasswordFieldType(this, $('#contactPassWord')); return false; }); // При оформлении заказа дадим возможность зарегистрироваться пользователю $('#contactWantRegister').click(function(){ if($(this).attr("checked")) { $('.contactRegisterNeedElement').show(); $('#contactEmail, #contactPassWord').addClass('required'); } else { $('.contactRegisterNeedElement').hide(); $('#contactEmail, #contactPassWord').removeClass('required'); } }); // Действия при выборе варианта доставки на этапе оформления заказа $('.deliveryRadio').click(function(){ // Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) { $('.deliveryZoneRadio:checked').click().attr('checked', false); } }); // Действия при выборе зоны внутри варианта доставки на этапе оформления заказа $('.deliveryZoneRadio').click(function(){ var deliveryId = $(this).attr('deliveryid') ,deliveryZonePrice = $(this).parent().find('.deliveryZonePrice') ,deliveryTbody = $('.orderStageDeliveryListTable tbody[rel="' + deliveryId + '"]') ,deliveryBlock = deliveryTbody.find('#quickDeliveryIdMain' + deliveryId) ,deliveryZonePriceBlock = deliveryTbody.find('.orderStageDeliveryZonePrice') ,deliveryDefaultPriceBlock = deliveryTbody.find('.orderStageDeliveryDefaultPrice') ; // Если этот пункт уже выбран, при повторном клике пользователь видимо хочет снять выделение зоны доставки if('true' == $(this).attr('rel')) { $(this).attr('checked', false); $(this).attr('rel', 'false'); // Показываем цену по умолчанию deliveryDefaultPriceBlock.show(); // Скрываем цену образованную от зоны deliveryZonePriceBlock.hide(); // Отмечаем у всех радио баттонов зон доставки свойство говорящее что они не отмечены } else { $('.deliveryZoneRadio').attr('rel', 'false'); $(this).attr('rel', 'true'); // Показываем цену по умолчанию deliveryDefaultPriceBlock.hide(); // Скрываем цену образованную от зоны deliveryZonePriceBlock.show().html(deliveryZonePrice.html()); // Выделяем вариант доставки к которому относится зона доставки deliveryBlock.attr('checked', true).click(); } }); // Валидация формы на странице оформления заказа $("#quickform").submit(function(){ // Если форма невалидна не отправляем её на сервер if(!$(this).valid()) { return false; } // Получаем данные формы, которые будем отправлять на сервер var formData = $(this).serializeArray(); // Сообщаем серверу, что мы пришли через ajax запрос formData.push({name: 'ajax_q', value: 1}); // Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара $.ajax({ type : "POST", dataType: 'json', cache : false, url : $(this).attr('action'), data : formData, success: function(data) { // Если заказ был успешно создан if( data.status == 'ok' ) { window.location = data.location; } else if( data.status == 'error' ) { alert(data.message); } else { alert('Во время оформления заказа возникла неизвестная ошибка. Пожалуйста, обратитесь в службу технической поддержки.'); } } }); return false; }).validate(); $("#quickDeliveryConvenientDate").datepicker({ dayNames : ['Понедельник', 'Вторник', 'Среда', 'Четверг', 'Пятница', 'Суббота', 'Воскресенье'], dayNamesMin : ['Вс', 'Пн', 'Вт', 'Ср', 'Чт', 'Пт', 'Сб' ], closeText : 'Готово', currentText : 'Сегодня' , duration : '', monthNames : ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Окрябрь','Ноябрь','Декабрь'], monthNamesShort : ['Янв','Фев','Март','Апр','Май','Июнь','Июль','Авг','Сен','Окт','Ноя','Дек'], yearRange : "-6:+6", dateFormat : 'dd.mm.yy', minDate : new Date(), firstDay : 1 }); }); </script> {% ENDIF %} <!-- Блок для обновления данных корзины. Не виден пользователю --> <div style="display:none;" id="newCartData"> <div class="summary"> <a href="{CART_URL}"><strong>{% IF cart_count_empty %} <span>0</span> {% ELSE %} {CART_COUNT_TOTAL} {% ENDIF %}</strong> товаров в корзине</a> </div> <div class="basket-summary"> <table {% IF cart_count_empty %}style="display: none;"{% ENDIF %}> <tbody> <tr> <td>Сумма заказа:</td> <td> {% IF cart_count_empty %} <span>0</span> {CURRENCY_NAME} {% ELSE %} {% FOR cart_sum %} {cart_sum.NOW_WITH_DISCOUNT | money_format}<br /> {% ENDFOR %} {% ENDIF %} </td> </tr> </tbody> </table> {% IF cart_count_empty %} <p>Ваша корзина пуста</p> {% ENDIF %} </div> </div> <!-- JS обновление данных корзины --> <script>$('.basket-info:first').html($('#newCartData').html());</script> <!-- end Блок для обновления данных корзины. Не виден пользователю -->
2) Почитайте тему форума http://forum.storela...аталоге-товаров
3) К сожалению, изменить данное поведение затруднительно, так как существует сильная привязка подобного поведения в библиотеке nyroModal.
Спасибо!
Темы с аналогичным тегами быстрый заказ
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных
Ответить цитируемым сообщениям Очистить