SL-251638
В карточке товара в форме "быстрый заказ" 5 раз подряд повторяется блок выбора способа оплаты. Как оставить один и убрать лишние?
0
Ошибка В Форме Быстрый Заказ
Автор Ильяc, 14 мая 2015 08:05
Сообщений в теме: 4
#1
Отправлено 14 Май 2015 - 08:05
#2
Отправлено 14 Май 2015 - 08:36
В шаблоне Быстрый заказ найдите:
замените на:
<script type="text/javascript"> $(document).ready(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); $('.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); } }); // Валидация формы на странице оформления заказа $("#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>
замените на:
<script type="text/javascript"> $(document).ready(function(){ setTimeout(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); $('.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); } }); // Валидация формы на странице оформления заказа $("#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 }); },800); }); </script>
#3
Отправлено 14 Май 2015 - 08:57
Спасибо! Есть еще одна небольшая проблема. Когда нажимаю кнопку "Быстрый заказ" товар автоматически добавляется в корзину, но на главной странице в шапке, в корзине его не видно, только когда заходишь на саму страницу корзины, товар появляется. нужно сделать так чтобы сразу в корзине на главной странице появилась сумма заказа
#4
Отправлено 14 Май 2015 - 09:24
Может стоит вставить страницу корзины в начало шаблона Быстрый заказ?
В шаблоне Быстрый заказ найдите:
перед ним вставьте:
В шаблоне Быстрый заказ найдите:
<form action="{ORDER_STAGE_CONFIRM_URL}" method="post" id="quickform"> <div style="padding:0 0.5em;">
перед ним вставьте:
<form action="{CART_URL}" method="post" class="cartForm"> <div> {% IF FORM_NOTICE %}<h5 class="{% IF FORM_NOTICE_IS_GOOD %}green{% ELSE %}errorMessage{% ENDIF %}">{FORM_NOTICE | nl2br}</h5>{% ENDIF %} {% IF cart_items_empty %} <div class="cartFormEmpty"> <h3>Ваша корзина пуста</h3><br /> Предлагаем выбрать нужный Вам товар из <a href="{CATALOG_URL}">каталога</a>. </div> {% ELSE %} <div id="ms-errors"></div> <input type="hidden" name="hash" value="{HASH}" /> <table class="cartFormTable"> <thead class="cartFormThead"> <tr> <th colspan="2">Наименование</th> <th>Цена</th> <th>Общая сумма</th> <th>Удалить</th> </tr> </thead> <tbody class="cartFormTbody"> <!-- Позиции заказа --> {% FOR cart_items %} <tr> <td class="cell1"> <a href="{cart_items.GOODS_URL}"><img class="goods-image-icon" src="{% IF cart_items.GOODS_IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-icon.png{% ELSE %}{cart_items.GOODS_IMAGE_ICON}{% ENDIF %}"></a> </td> <td class="cell2"> <a href="{cart_items.GOODS_URL}" class="cartFormTbodyHeader"> {cart_items.GOODS_NAME} <!-- Если у товара есть отличительные свойства для модификации товара, допишем их к названию товара --> {% IFNOT cart_items.distinctive_properties_empty %}<span>({% FOR distinctive_properties %}{cart_items.distinctive_properties.NAME}: {cart_items.distinctive_properties.VALUE}{% IFNOT cart_items.distinctive_properties.last %}, {% ENDIF %}{% ENDFOR %})</span>{% ENDIF %} </a> <!-- Путь к категории, из которой заказали товара --> <div class="cartFormTbodyNavigate"> <a href="http://{NET_DOMAIN}/">Главная</a> {% FOR catalog_path %} » <a href="{cart_items.catalog_path.URL}" >{cart_items.catalog_path.NAME}</a> {% ENDFOR %} </div> </td> <td class="cell4 num"> {cart_items.GOODS_MOD_PRICE_NOW | money_format} </td> <td class="cell5 num"> {cart_items.ORDER_LINE_PRICE_NOW | money_format} </td> <td class="cell6"> <a href="{cart_items.ORDER_LINE_DELETE_URL}"><img src="{ASSETS_IMAGES_PATH}cartDelete.png" /></a> </td> </tr> {% ENDFOR %} <!-- Скидки, действующие на заказ --> {% FOR cart_discount %} {% IF cart_discount.DISCOUNT_IS_ENABLED %} <tr> <td class="cell1"></td> <td class="cell2"> <span class="cartFormTbodyHeader"> {cart_discount.DISCOUNT_NAME} </span> </td> <td class="cell4 num"> {cart_discount.END_PRICE | money_format} </td> <td class="cell5 num"> {cart_discount.END_PRICE | money_format} </td> <td class="cell6"></td> </tr> {% ENDIF %} {% ENDFOR %} </tbody> <tfoot class="cartFormTfoot"> <tr> <td colspan="2" class="cartFormTfootTruncate"></td> <td colspan="4" class="cartFormTfootSum"> <table class="cartFormTfootSumTable"> <tr> <td class="cell1">Итого: </td> <td class="cell2"> {% FOR cart_sum %} {cart_sum.NOW_WITH_DISCOUNT | money_format}<br /> {% ENDFOR %} </td> </tr> </table> </td> </tr> </tfoot> </table> {% ENDIF %} </div> </form>
#5
Отправлено 14 Май 2015 - 10:19
Не совсем то, что я хотел, но очень здорово получилось! Спасибо!
Я хотел следующее. Например я нажал на кнопку "Быстрый Заказ" и передумал, решил не заполнять эту форму, закрыл ее, но система уже добавила товар в корзину и его не видно там, на главной странице, нужно зайти в саму корзину и только тогда сможешь его увидеть. Если товар один в наличии, покупатель уже повторно не сможет добавить или купить его, из-за этого человек просто уйдет с сайта. Можно еще сделать оформление быстрого заказа не добавляя товар в корзину, если это возможно
Я хотел следующее. Например я нажал на кнопку "Быстрый Заказ" и передумал, решил не заполнять эту форму, закрыл ее, но система уже добавила товар в корзину и его не видно там, на главной странице, нужно зайти в саму корзину и только тогда сможешь его увидеть. Если товар один в наличии, покупатель уже повторно не сможет добавить или купить его, из-за этого человек просто уйдет с сайта. Можно еще сделать оформление быстрого заказа не добавляя товар в корзину, если это возможно
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных