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


Masacra

Регистрация: 01 нояб. 2012
Offline Активность: 28 апр. 2021 15:43
-----

#87443 Интеграция С Сервисом Доставки

Отправлено Stasya на 02 Сентябрь 2013 - 17:47

В файле main.js найдите блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
});
и замените его на
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');

$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value).parent().parent().show();
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryZonePrice:visible').hide();
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
// ставим куки
setCookie('delivery_zone_id', $(this).find('option:selected').attr('value'));
});


// Если есть куки
if(getCookie('delivery_zone_id')){
// находим значение варианта оплаты по куки файлу
// устанавливаем в селект поле нужный пункт
// выполняем JS действие при изменении поля варианта оплаты
$('.orderInfo select > option[value="' + getCookie('delivery_zone_id') + '"]').parent().val(getCookie('delivery_zone_id')).change();
}

В самое начало main.js вставьте блок
function setCookie(name, value, expires, path, domain, secure) {
	if (!name || !value) return false;
	var str = name + '=' + encodeURIComponent(value);
   
	if (expires) str += '; expires=' + expires.toGMTString();
	if (path)	str += '; path=' + path;
	if (domain)  str += '; domain=' + domain;
	if (secure)  str += '; secure';
   
	document.cookie = str;
	return true;
}
function getCookie(name) {
	var pattern = "(?:; )?" + name + "=([^;]*);?";
	var regexp  = new RegExp(pattern);
   
	if (regexp.test(document.cookie))
	return decodeURIComponent(RegExp["$1"]);
   
	return false;
}



#85145 Интеграция С Сервисом Доставки

Отправлено Сake на 20 Август 2013 - 00:56

Просмотр сообщенияMasacra (18 Август 2013 - 08:26) писал:

Да, то же ничего совсем не изменилось :( Что-то не так в коде.

Не заметили вы изменений вероятно по той причине, что у вас было мало пунктов, тем самым максимальная высота не была превышена для появления скролла. Был задан стиль max-height: 200px;

Цитата

а, спасибо большое! Очистка куков как всегда спасла ситуацию Только осталось одно "но". Если не выбирать зону, он спокойно даёт пройти на следующий шаг с нулевой стоимостью.

Добавьте в main.js

$(function() {
  if($('.deliveryRadio').length) {
	 $('.deliveryRadio:checked').closest('form').submit(function() {
	   var tbody = $('.deliveryRadio:checked').closest('tbody');
	   if(!tbody.find('select').length || parseInt(tbody.find('select').val())) {
		  return(true);
	   }
	   alert('Пожалуйста, выберите зону доставки');
	   return(false);
	 });
  }
});



#85122 Интеграция С Сервисом Доставки

Отправлено Stasya на 19 Август 2013 - 21:17

Просмотр сообщенияvelena168 (19 Август 2013 - 16:23) писал:

Stasya, очень ждем еще Вашей помощи, чтобы довести дело до конца. Спасибо.

Из-за того что Вы там что-то убрали код работает не совсем правильно. Сделайте бекап за 17 число.  Так же блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);
// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();
});
в файле main.js вставьте после блока
// Действия при выборе варианта доставки на этапе оформления заказа
$('.deliveryRadio').click(function(){

// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
	 $('.deliveryZoneRadio:checked').click().attr('checked', false);
}
});

По поводу перестановки галочек, то здесь уже прописан код, который выполняет данную функцию .То есть как только пользователь нажимает на стрелочку для выбора зоны, то галочка автоматически переставляется на этот способ доставки.

Просмотр сообщенияMasacra (18 Август 2013 - 22:27) писал:

Вот уже больше похоже на правду. Вроде работает, только шарика нету, и стоимость доставки обновляется только после обновления страницы. Т.е. покупатель не увидит во сколько обойдётся ему доставка до 4го шага.

Я изменила инструкцию выше, поэтому подправьте свой код, пожалуйста.


#84991 Интеграция С Сервисом Доставки

Отправлено Stasya на 18 Август 2013 - 21:04

В шаблоне Оформление заказа найдите блок
<!-- Шаг 2. Доставка -->
	 {% IF ORDER_STAGE_NUM=2%}
	 <div class="orderStageDelivery">
		 <h3>Выберите удобный для вас способ доставки</h3>
		 <div class="orderInfo">
		
		 <table class="orderStageDeliveryListTable">
			 {% FOR order_delivery %}
			 <tbody rel="{order_delivery.ID}">
				 <tr>
				 <td class="cell1" rowspan="2">
					 <input type="radio" id="deliveryId{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">
					 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 </td>
				 <td rowspan="2" class="cell3 num">
					 + <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>
				 <tr>
				 <td class="cell4">{order_delivery.DESC}</td>
				 </tr>
				 {% IFNOT order_delivery.zone_list_empty %}
				 {% FOR zone_list %}
				 <tr>
					 <td></td>
					 <td class="cell5">
					
					 <!-- Заголовок внутри метода доставки, появляется только один раз-->
					 {% IF order_delivery.zone_list.index=1 %}
						 <label class="orderStageDeliveryZoneHeader" for="deliveryId{order_delivery.ID}">Зоны доставки</label>
					 {% ENDIF %}
					
					 <input
						 type="radio"
						 class="deliveryZoneRadio"
						 deliveryid="{order_delivery.ID}"
						 id="deliveryZoneId{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="deliveryZoneId{order_delivery.zone_list.ID}">
						 {order_delivery.zone_list.NAME}
						 <span class="deliveryZonePrice">{order_delivery.zone_list.END_PRICE | money_format}</span>
					 </label>
					 </td>

				 </tr>
				 {% ENDFOR %}
				 {% ENDIF %}
			 </tbody>
			 {% ENDFOR %}
		 </table>
		 </div>
и замените его на
<!-- Шаг 2. Доставка -->
	 {% IF ORDER_STAGE_NUM=2%}
	 <div class="orderStageDelivery">
		 <h3>Выберите удобный для вас способ доставки</h3>
		 <div class="orderInfo">
		
		 <table class="orderStageDeliveryListTable">
			 {% FOR order_delivery %}
			 <tbody rel="{order_delivery.ID}">
				 <tr>
				 <td class="cell1" rowspan="2">
					
					
					 <input type="radio" id="deliveryId{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">
					 <label for="deliveryId{order_delivery.ID}">{order_delivery.NAME}</label>
				 </td>
				 <td rowspan="2" class="cell3 num">
					 + <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>
				 <tr>
				 <td class="cell4">{order_delivery.DESC}</td>
				 </tr>
				 {% IFNOT order_delivery.zone_list_empty %}
				 <tr>
					 <td></td>
					 <td class="cell5">
					 <select style="margin-left:0;" class="deliveryZoneRadio" data-deliveryid="{order_delivery.ID}" name="form[delivery][zone_id]" {% IF order_delivery.zone_list.ID = ORDER_FORM_DELIVERY_ZONE_ID %}class="required"{% ENDIF %}>
						 <option value="0" data-price="{order_delivery.END_PRICE | number_format("0", ",", " ")}"> - выберите зону доставки - </option>
						 {% FOR zone_list %}
						 <option value="{order_delivery.zone_list.ID}" data-price="{order_delivery.zone_list.END_PRICE | number_format("0", ",", " ")}" {% IF order_delivery.zone_list.ID=ORDER_FORM_DELIVERY_ZONE_ID %}selected="selected"{% ENDIF %}>
							 {order_delivery.zone_list.NAME}
						 </option>
						 {%ENDFOR%}
					 </select>
					 </td>
				 </tr>
				 {% ENDIF %}
			 </tbody>
			 {% ENDFOR %}
		 </table>
		 </div>
		

Теперь в  файле main.js вставьте блок
// Смена стоимости доставки при выборе конкретной зоны доставки
$('.orderInfo select').change(function(){
var value = $(this).find('option:selected').attr('data-price');
$('tbody[rel="' + $(this).attr('data-deliveryid') + '"] .orderStageDeliveryDefaultPrice .num').text(value);

// Установка шарика на пункт зоны доставки
$('#deliveryId' + $(this).attr('data-deliveryid')).click();

});
после блока
// Действия при выборе варианта доставки на этапе оформления заказа
$('.deliveryRadio').click(function(){

// Если текущая выделенная зона доставки не относится к выбранному варианту доставки, снимаем выделение с зоны доставки
if($('.deliveryZoneRadio:checked').attr('deliveryid') != $(this).val()) {
	 $('.deliveryZoneRadio:checked').click().attr('checked', false);
}
});



#80931 Странный Глюк Кнопки "в Корзину"

Отправлено Vaccina на 26 Июль 2013 - 01:23

Ваша проблема заключается в том что на данный товар срабатывает установленное вами правило "Уведомить меня". Кнопка в результате выглядит следующим образом

<a href="#" onclick="if($(this).text() == 'Уведомить меня') { document.location = '/feedback/?form[feedback_message]=Могли бы Вы уведомить меня о поступлении товара «Фигурка ЭЦИО В СЕРЕБРИСТОМ КОСТЮМЕ (Ezio Onyx Version Assassin's Creed 2 Brotherhood)»?' } else { $('.goodsDataForm').submit(); } return false;" class="more-link submit">В корзину</a>

Проблема заключается в названии товара, а именно в одинарной кавычке (Assassin's). Удалите из данного названия товара данную кавычку, или используйте вместо кавычки спецсимвол &apos;


#36785 Текст На Странице В Ie

Отправлено Vaccina на 28 Декабрь 2012 - 01:28

В данном случае отображение сайта в каком либо браузере не зависит от платформы. Зависимостью является верстка сайта, а именно адаптация дизайна под конкретный браузер, если тот в свою очередь перестает соблюдать стандарт и начинает работать по своим правилам. Если брать в обзор IE6 - то данный браузер настолько древний, на сколько это возможно, процент данного браузера в так называемых таблицах увеличивается от числа людей которые верстают дизайн под IE6 считая что это необходимо. На самом же деле доля IE6 равняется менее 0.2%

Вы можете поддерживать данный браузер только по своим личным целям - пользы от такой поддержки не будет, будет только расти убыток чтобы поддерживать максимально возможное кол-во совместимых инструкций будь это css или javascript.

Чем больше идет поддержка старых браузеров, тем больше идет нагрузка на пользователей с новыми браузерами, тут можно отнести и лишний код, изображения(IE6 не умеет работать с альфа каналом(прозрачность) изображений png) - в данном случае получаются одни сплошные велосипеды.


#36758 Текст На Странице В Ie

Отправлено Koderhan на 27 Декабрь 2012 - 15:50

Просмотр сообщенияMasacra (27 Декабрь 2012 - 15:29) писал:

Версия IE 6.0.2900.2180. Думаете не стоит обращать внимания?
Вот рейтинг браузеров от сайта http://www.pcbee.ru/
По рейтенгу заметно что аудитория у IE не слишком большая.


#36541 Текст На Странице В Ie

Отправлено Vaccina на 26 Декабрь 2012 - 00:52

Вероятно проблема в ошибочной разметке. Разметка текста на странице http://geekzona.ru/discount у вас имеет вид

<table style="font: 12px/20px Tahoma, Geneva, sans-serif; color: #666;" border="0">
   <tbody>
   <h3>Накопительные скидки всем покупателям!</h3>
	  <br>
	   <div style="font: 12px/20px Tahoma, Geneva, sans-serif; color: #666;" border="5"> &nbsp;&nbsp;Мы любим всех наших клиентов, и постоянных и потенциальных.<br>
		&nbsp;И хотим помочь таким же коллекционерам как мы собирать свои коллекции<br>
		&nbsp;с минимальными затратами. Если ты покупаешь много, то получай скидки.<br> <br>
		&nbsp;При покупках на 5000 рублей - 5% пожизненно<br>  
		&nbsp;При покупках на 10000 рублей - 8% пожизненно<br>  
		&nbsp;При покупках на 15000 рублей - 10% пожизненно<br> <br>
		&nbsp;И, естественно, накопительные скидки суммируются<br>
		&nbsp;с теми акциями, которые указаны ниже:<br> <br>
		</div>
   </tbody>
  </table>

замените данный код на

   <h3>Накопительные скидки всем покупателям!</h3>
	  <br />
	   <div style="font: 12px/20px Tahoma, Geneva, sans-serif; color: #666;" border="5"> &nbsp;&nbsp;Мы любим всех наших клиентов, и постоянных и потенциальных.<br />
		&nbsp;И хотим помочь таким же коллекционерам как мы собирать свои коллекции<br />
		&nbsp;с минимальными затратами. Если ты покупаешь много, то получай скидки.<br /> <br />
		&nbsp;При покупках на 5000 рублей - 5% пожизненно<br />  
		&nbsp;При покупках на 10000 рублей - 8% пожизненно<br />  
		&nbsp;При покупках на 15000 рублей - 10% пожизненно<br /> <br />
		&nbsp;И, естественно, накопительные скидки суммируются<br />
		&nbsp;с теми акциями, которые указаны ниже:<br /> <br />
		</div>

Изменить HTML текста на странице в визуальном редакторе - можно переведя визуальный редактор в режим правки HTML кода(кнопка).

Так же в файле стилей main.css найдите

.goodsListItemName {
	height: 40px;
	line-height: 14px;
}

и замените на

.goodsListItemName {
	height: 34px;
	line-height: 14px;
}



#35566 Изменение Блока В Карточке Товара

Отправлено Koderhan на 18 Декабрь 2012 - 07:41

Просмотр сообщенияMasacra (17 Декабрь 2012 - 22:59) писал:

Спасибо, но результат не совсем такой. Надо чтобы оставалась надпись "Товара нет в наличии"
В файле "Товары".
Отменить предыдущий изменения.
Найти код:
<div class="goodsListItemPriceNew">
Заменить:
<div class="goodsListItemPriceNew"  {% IF goods.MAX_REST_VALUE =0%}style="display:none;"{%ENDIF%}>



#35358 Изменение Блока В Карточке Товара

Отправлено Koderhan на 16 Декабрь 2012 - 09:24

Просмотр сообщенияMasacra (15 Декабрь 2012 - 19:31) писал:

Спасибо, начинает вырисовываться, но не смог экспериментальным путём при отсутствии товара убрать блок с ценой.
Код в шаблоне "товары" такой:
<div class="goodsListalbka">
<!-- Доступность товара -->
<div class="goodsDataMainModificationAvailable">
<div rel="true" class="available-true" {% IF goods.MAX_REST_VALUE=0 %}style="display:none;"{% ENDIF %}></div>
<div rel="false" class="available-false" {% IF goods.MAX_REST_VALUE>0 %}style="display:none;"{% ENDIF %}>Товара нет в наличии, закажи</div>
</div>
<div class="goodsListItemPriceNew">
<div class="goodsListItemPriceNew2"> <a href="{goods.URL_MIN_PRICE_NOW}">{goods.MIN_PRICE_NOW | money_format}</a></div>
</div>
<div class="goodsListItemPriceOld">
{% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
<a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" >{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT}</a>
{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
<a href="{goods.URL_MIN_PRICE_OLD}" >{goods.MIN_PRICE_OLD}</a>
{% ENDIF %}
</div>
</div>

И что изменить в шаблоне "товар", чтобы там убрать блок с ценой, в случае отсутствия товара?
Чтобы на странице товара не выводилась цена для товара которого нету в наличие, вы можете изменить файл "Товар".(Сайт-> Редактор тем).
Найти код:
<!-- Цена сейчас -->
					  <span class="goodsDataMainModificationPriceNow"  title="Цена сейчас">
						 {GOODS_MOD_PRICE_NOW | money_format}
					  </span>
Заменить:
<!-- Цена сейчас -->
					  <span class="goodsDataMainModificationPriceNow" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}  title="Цена сейчас">
						 {GOODS_MOD_PRICE_NOW | money_format}
					  </span>



#35253 Изменение Блока В Карточке Товара

Отправлено Vaccina на 14 Декабрь 2012 - 22:23

Данный вопрос рассматривался в следующих темах форума

http://forum.storela...его/#entry11397
http://forum.storela...ров/#entry31762