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


like.hornet.6

Регистрация: 08 нояб. 2014
Offline Активность: 04 апр. 2023 09:18
-----

#286788 Изменение Изображения При Смене Модификации

Отправлено MikDark на 21 Апрель 2020 - 13:02

Если Ваш товар имеет несколько цветов и Вы хотите, чтобы при выборе цвета появлялась соответствующая картинка, то выполните следующую инструкцию:

1) В шаблоне Товар после кода:

<input type="hidden" name="is_has_in_compare_list" value="{goods_modifications.IS_HAS_IN_COMPARE_LIST}" />

добавьте:

<input type="hidden" name="goods_mod_image_id" value="{goods_modifications.GOODS_MOD_IMAGE_ID}" />

2) В шаблоне Товар заменить:

 <li><a href="{goods_images.LARGE}" title="{goods_images.NAME}" class="thumblisticon" rel="gallery"><img src="{goods_images.ICON}" alt="{goods_images.NAME}" class="goods-image-icon" /></a></li>

на

 <li><a href="{goods_images.LARGE}" data-id="{goods_images.ID}" title="{goods_images.NAME}" class="thumblisticon" rel="gallery"><img src="{goods_images.ICON}" alt="{goods_images.NAME}" class="goods-image-icon" /></a></li>


3) В шаблоне main.js после кода:

// Идентификатор товарной модификации
goodsModificationId.val(modificationId);

добавьте:


// Меняет главное изображение товара на изображение с идентификатором goods_mod_image_id
function changePrimaryGoodsImage(goods_mod_image_id) {
// Если не указан идентификатор модификации товара, значит ничего менять не нужно.
if(1 > goods_mod_image_id) {
return true;
}
var
// Блок с изображением выбранной модификации товара
goodsModImageBlock = $('.thumblist [data-id="' + parseInt(goods_mod_image_id) + '"'),
// Блок, в котором находится главное изображение товара
MainImageBlock = $('.general-img'),
// Изображение модификации товара, на которое нужно будет изменить главное изображение товара.
MediumImageUrl = goodsModImageBlock.attr('href'),
// Главное изображение, в которое будем вставлять новое изображение
MainImage = MainImageBlock.find('img'),
// В этом объекте хранится идентификатор картинки главного изображения для коректной работы галереи изображений
MainImageIdObject = MainImageBlock.attr('data-id');

// Если изображение модификации товара найдено - изменяем главное изображение
MainImage.attr('src', MediumImageUrl);
// Изменяем идентификатор главного изображения
MainImageBlock.attr("data-id", parseInt(goods_mod_image_id));
return true;
}
// Обновляем изображение модификации товара, если оно указано
changePrimaryGoodsImage(modificationGoodsModImageId);

5) В шаблон main.js после кода:

modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(),

добавить:

modificationGoodsModImageId = modificationBlock.find('[name="goods_mod_image_id"]').val(),



#286826 Скрытие Адреса Доставки При Выборе Самовывоза

Отправлено Никита Панин на 23 Апрель 2020 - 14:29

Создаём в разделе "Настройки" - "Доставка",  доставку с названием "Самовывоз".

Переходим в раздел Сайт - Редактор шаблонов - в шаблоне "main.js" находим строку:

$('.mainSelect').change(function(){

после которой вставляем :

  if($(this).find('option:selected').text() == "Самовывоз") {
  console.log($(".delivery .mainSelect.inputText option[selected='selected']").text());
  $(".adress").hide();
  $("#quickDeliveryCity").val("no");
  $("#quickDeliveryZipCode").val("no");
  $("quickDeliveryAddress").val("no");
  $("#quickDeliveryRegion").val("no");
  $("#quickDeliveryAddressStreet").val("no");
  $("#quickDeliveryAddressHome").val("no");
  $("#quickDeliveryAddressFlat").val("no");
  $("#deliveryConvenientDate").val("none......");
  } else {
$(".adress").show();
  $("#quickDeliveryCity").val("");
  $("#quickDeliveryAddressStreet").val("");
  $("#quickDeliveryAddressHome").val("");
  $("#quickDeliveryZipCode").val("");
  $("quickDeliveryAddress").val("");
  $("#quickDeliveryAddressFlat").val("");
  $("#deliveryConvenientDate").val("");
  $("#quickDeliveryComment").val("");
  }

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

<div class="pp">Нажимая на кнопку Оформить заказ, Вы соглашаетесь с <a href="#">правилами обработки данных</a></div>

после которой вставляем :

<script>
$(function() {
if ($('.mainSelect').find('option:selected').text() == "Самовывоз") {
$(".adress").hide();
$("#quickDeliveryCity").val("no");
$("#quickDeliveryZipCode").val("no");
$("quickDeliveryAddress").val("no");
$("#quickDeliveryRegion").val("no");
$("#quickDeliveryAddressStreet").val("no");
$("#quickDeliveryAddressHome").val("no");
$("#quickDeliveryAddressFlat").val("no");
$("#deliveryConvenientDate").val("none......");
} else {
   $(".adress").show();
$("#quickDeliveryCity").val("");
$("#quickDeliveryAddressStreet").val("");
$("#quickDeliveryAddressHome").val("");
$("#quickDeliveryZipCode").val("");
$("quickDeliveryAddress").val("");
$("#quickDeliveryAddressFlat").val("");
$("#deliveryConvenientDate").val("");
$("#quickDeliveryComment").val("");
}
})
</script>


#288501 Защита На Кнопку "оформить Заказ" От Дублирования Заказа

Отправлено Mr.Nito на 24 Декабрь 2020 - 16:51

в main.js заменить
// Валидация формы на странице оформления заказа
$("#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();
на
// Валидация формы на странице оформления заказа
$("#quickform").submit(function(){
// Если форма невалидна не отправляем её на сервер
if(!$(this).valid()) {
	 return false;
}
// Получаем данные формы, которые будем отправлять на сервер
var formData = $(this).serializeArray();
// Сообщаем серверу, что мы пришли через ajax запрос
formData.push({name: 'ajax_q', value: 1});
var $btn = $("#quickform").find('button[type="submit"]')
// Аяксом добавляем товар в корзину и вызываем форму быстрого заказа товара
$.ajax({
	 type : "POST",
	 dataType: 'json',
	 cache : false,
	 url	 : $(this).attr('action'),
	 data : formData,
	 timeout: 3000,
	 beforeSend: function() {
	 $btn.addClass('disabled').html('Оформляется')
	 },	
	 success: function(data) {
	 // Если заказ был успешно создан
	 if( data.status == 'ok' ) {
		 window.location = data.location;
	 } else if( data.status == 'error' ) {
		 alert(data.message);
		 $btn.removeClass('disabled').html('Оформить заказ')
	 } else {
		 alert('Во время оформления заказа возникла неизвестная ошибка. Пожалуйста, обратитесь в службу технической поддержки.');
	 }
	 },
	 error: function() {
	 $btn.removeClass('disabled').html('Оформить заказ')
	 }
});
return false;	
}).validate();

в main.css добавить строку
.button.disabled {opacity: 0.7;cursor: default; pointer-events: none;}



#289043 Установка Виджета Пунктов Выдачи Заказа Сдэк

Отправлено admin на 17 Март 2021 - 16:31

Просмотр сообщенияFirefly (27 Апрель 2020 - 10:48) писал:

Виджет пунктов выдачи заказа СДЭК

Основные возможности виджета:
  • Выбор города и отображение списка ПВЗ для него
  • Возможность выбора покупателем ПВЗ с передачей данных в соответствующее поле в форме оформления заказа
  • Вывод детальной информации для каждого ПВЗ
Если Вы еще не создали вариант доставки с именем СДЭК, это возможно сделать в разделе Настройки - Доставка.

Для установки виджета перейдите в раздел Сайт - Редактор шаблонов - HTML и добавьте код перед </head>:
<script id="ISDEKscript" type="text/javascript" src="https://widget.cdek.ru/widget/widjet.js"></script>

Далее перейдите в шаблон main.js (в блоке Скрипты) и найдите код:
$('.mainSelect').change(function(){
	 selectedDelId = $(this).find('option:selected').attr('delid');

После него добавьте код, где укажите Ваш идентификатор варианта доставки вместо стандартного 449755*:
// Запускаем виджет СДЭК при выборе варианта доставки с указанным id
if (selectedDelId === '449755') {
	 var widjet = new ISDEKWidjet ({
	 path: 'https://widget.cdek.ru/widget/scripts/',
	 choose: true,
	 defaultCity: 'Москва', // стандартный город на карте
	 cityFrom: 'Москва', // из какого города будет идти доставка
	 country: 'Россия', // можно выбрать страну, для которой отображать список ПВЗ
	 popup: true,
	 onChoose: onChoose,
	 hidedelt: true,
	 apikey: 'YANDEX_API_KEY' // ключ для корректной работы Яндекс.Карт, получить необходимо тут (https://developer.tech.yandex.ru/?from=club)
	 });
	
	 function onChoose(wat) {
		 $('#quickDeliveryComment').val(
			 'Выбран пункт выдачи заказа СДЭК ' + wat.id + "\n" +
			 'Срок: ' + wat.term + " дн.\n" +
			 'Город: ' + wat.cityName + ', Код города: ' + wat.city
		 );
	 }
	
	 setTimeout(function(){
	 widjet.open();
	 }, 1000);
} else {
	 $('#quickDeliveryComment').val('');
};

* В этом коде, как пример, добавлен идентификатор варианта доставки 449755. Свой id можно получить в разделе Настройки - Доставка внутри варианта доставки в URL адресе. Подробнее можно увидеть на скриншоте:
Прикрепленный файл cdek.jpg

На стадии оформления заказа при выборе варианта доставки СДЭК данные будут подставляться в поле "Комментарий" к заказу.

Если в передаваемых данных в комментарий к заказу нужны адрес и как добраться, то после кода:
			 'Выбран пункт выдачи заказа СДЭК ' + wat.id + "\n" +

С новой строки добавьте код:
						 'Адрес: ' + wat.PVZ.Address + "\n" +
						 'Как добраться: ' + wat.PVZ.AddressComment + "\n" +

Добрый день
Помогите что не так, у меня не работает виджет
SL-171870


#288205 Выровнять Надпись

Отправлено Vaccina на 31 Октябрь 2020 - 07:27

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - Товар - найдите:
		<!-- Доступность товара -->
		<span class="goodsDataMainModificationAvailable" align="right">
		  <span class="available-true" {% IF GOODS_MOD_REST_VALUE=0 %} style="display:none;"{% ENDIF %} align="right"><strong><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;В наличии</span></strong></span>
		  <span class="available-false" style="{% IF GOODS_MOD_REST_VALUE>0 %}display:none;{% ENDIF %}" align="right"><strong><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Нет в наличии</span></strong></span>
		</span>


замените на:
		<!-- Доступность товара -->
		<span class="goodsDataMainModificationAvailable" align="right">
		  <span class="available-true" {% IF GOODS_MOD_REST_VALUE=0 %} style="display:none;"{% ENDIF %} align="right"><strong><span>В наличии</span></strong></span>
		  <span class="available-false" style="{% IF GOODS_MOD_REST_VALUE>0 %}display:none;{% ENDIF %}" align="right"><strong><span>Нет в наличии</span></strong></span>
		</span>

далее зайдите в main.css - найдите:
.product-view .product-order .price-box {float: left;margin: 0;}

замените на:
.product-view .product-order .price-box {float: left;margin: 0;}
.product-view .product-order .price-box .goodsDataMainModificationAvailable {float: right;}



#225209 Оформление Товарного Чека

Отправлено MikDark на 01 Февраль 2016 - 18:04

Просмотр сообщенияROS (01 Февраль 2016 - 17:44) писал:

Возможно ли добавить в товарный чек мой логотип?
Прикрепленный файл 2.jpg

Чтобы добавить логотип достаточно в шаблоне Товарный чек перед:
<table border="0" width="100%">

добавить:
<img src="ссылка на логотип">

Что касается даты, на скриншоте не совсем понятно, какую именно дату убрать


#285178 Автоматическая Прокрутка

Отправлено Vaccina на 19 Ноябрь 2019 - 07:44

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - Товар - в самом конце вставьте:
<script type="text/javascript">
$(function(){
  if(getClientWidth() < 481){
	$('html,body').animate({
		scrollTop: $(window).scrollTop() + 207
	});
  }
});
</script>

В шаблоне Товары в самом конце вставьте:
<script>
$(function(){
  if(getClientWidth() < 481){
	$('html,body').animate({
		scrollTop: $("#page-title").offset().top
	});
  }
});
</script>



#284717 Добавить Иконки Категории

Отправлено Vaccina на 19 Октябрь 2019 - 04:58

Здравствуйте.

Это к изменению выше не имеет отношение, в этот момент не подгрузился main.css поэтому такое отображение. Уточните пожалуйста, что не так работает в функционале?


#284716 Скрыть Адрес При Самовывозе

Отправлено Vaccina на 19 Октябрь 2019 - 04:50

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - main.js - найдите:
$(function() {
$('.deliveryRadio').click(function() {
var courier_id = '275732';
var current_id = $(this).val();
$('.adress').show();
if(current_id === courier_id) {
$('.adress').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});

замените на:
$(function() {
$('.deliveryRadio').click(function() {
var courier_id = '275732';
var courier_id2 = '290807';
var current_id = $(this).val();
$('.adress').show();
$('.adress .city').show();
if(current_id === courier_id) {
$('.adress').hide();
} else if (current_id === courier_id2){
$('.adress .city').hide();
}
});
$('.deliveryRadio:checked').trigger('click');
});

далее зайдите в шаблон Быстрый заказ - найдите:
			<!-- Если поле города запрашивается -->
			{% IF SETTINGS_ORDER_FIELDS_CITY < 3 %}
			  <div class="fields">
				<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 {% IF SETTINGS_ORDER_FIELDS_CITY=1 %}required{% ENDIF %}" maxlength="255" />
				</div>
			  </div>
			{% ENDIF %}
    
    
замените на:
			<!-- Если поле города запрашивается -->
			{% IF SETTINGS_ORDER_FIELDS_CITY < 3 %}
			  <div class="fields city">
				<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 {% IF SETTINGS_ORDER_FIELDS_CITY=1 %}required{% ENDIF %}" maxlength="255" />
				</div>
			  </div>
			{% ENDIF %}



#284577 Добавить Иконки Категории

Отправлено Vaccina на 09 Октябрь 2019 - 08:15

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - main.css - найдите:
.header-catalogMenu .header-subcatalog {display: none;list-style: none;padding-left: 30px;background-color: #f6f8fa;}


замените на:
.header-catalogMenu .header-subcatalog {display: none;list-style: none;padding-left: 30px;background-color: rgb(246, 248, 250);float: left;padding-bottom: 10px;}



#284572 Скрыть Адрес При Самовывозе

Отправлено Vaccina на 09 Октябрь 2019 - 06:33

Здравствуйте.

Простите за ожидание, перепроверила инструкцию, ошибки такой не возникает, есть вероятность, что вы нечаянно стерли строку:
$(function(){

после:
// Скрипты для Быстрого заказа
function quickOrderScripts(){

при замене кода, в этом случае я обнаружила всплывающую ошибку. Выполните инструкцию и в случае обнаружения ошибки сообщите.


#282643 Как Сделать Таблицу Адаптивной?

Отправлено Vaccina на 01 Май 2019 - 08:25

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - main.css - найдите:
@media all and (max-width: 481px) {
img {height: auto!important;}

замените на:
@media all and (max-width: 481px) {
.htmlDataBlock table {width: 100% !important;}
img {height: auto!important;}



#266658 Добавить Лого В Карточку Товара

Отправлено MikDark на 30 Август 2017 - 17:00

Просмотр сообщенияRibka (30 Август 2017 - 16:02) писал:

Ага, ждем :) https://prnt.sc/gex99j

В шаблоне Товар Вам нужно заменить код:

<!-- Краткое описание -->
	{% IF GOODS_DESCRIPTION_SHORT %}
	<div class="short-description f-fix">
	  <p itemprop="description">{GOODS_DESCRIPTION_SHORT}</p>
	</div>
	{% ENDIF %}

на

<!-- Краткое описание -->
	{% IF GOODS_DESCRIPTION_SHORT %}
	<div class="short-description f-fix">
	  <p itemprop="description">{GOODS_DESCRIPTION_SHORT | htmlspecialchars_decode}</p>
	</div>
	{% ENDIF %}



#284116 С Этим Товаром Смотрят

Отправлено Vaccina на 15 Август 2019 - 06:13

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - Товар - найдите и удалите(строки 1211-1260):
<!-- Вы смотрели -->
{% IFNOT recently_viewed_goods_empty %}
<div class="viewed product col-md-3 col-xs-12">
<div class="viewed-wrap block-bg">
<h2 class="title">Вы смотрели</h2>
<div class="content">
<div class="viewed-items owl-carousel owl-theme">
<div class="item">
{% FOR recently_viewed_goods %}
<div class="item-inner"  itemscope itemtype="https://schema.org/Product" {%IF recently_viewed_goods.HIDE%}style="display:none;"{%ENDIF%}>
<meta itemprop="name" content="{recently_viewed_goods.NAME}">
<meta itemprop="description" content="{% IF recently_viewed_goods.DESCRIPTION_SHORT %}{recently_viewed_goods.DESCRIPTION_SHORT}{% ELSE %}Описание отсутствует{% ENDIF %}">
<div class="product-image">
<a href="{recently_viewed_goods.URL_MIN_PRICE_NOW | url_amp}" title="{recently_viewed_goods.NAME}" itemprop="url">
<img data-src="{% IF recently_viewed_goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png?design=techno{% ELSE %}{recently_viewed_goods.IMAGE_ICON}{% ENDIF %}" class="goods-image-icon owl-lazy" alt="{recently_viewed_goods.NAME}" title="{recently_viewed_goods.NAME}" itemprop="image">
</a>
</div>
<div class="product-info">
<h2 class="product-name"><a href="{recently_viewed_goods.URL_MIN_PRICE_NOW | url_amp}" title="{recently_viewed_goods.NAME}" itemprop="url">{recently_viewed_goods.NAME}</a></h2>
<div class="ratings">
<div class="rating-box">
{% IF recently_viewed_goods.OPINION_RATING_VALUE %}
<span itemprop="aggregateRating" itemscope itemtype="https://schema.org/A...gregateRating">
<meta itemprop="worstRating" content = "1">
<meta itemprop="bestRating" content = "10">
<meta itemprop="ratingValue" content = "{recently_viewed_goods.OPINION_RATING_VALUE}">
<meta itemprop="reviewCount" content = "{recently_viewed_goods.OPINION_RATING_CNT_ALL}">
<div class="rating" style="width:{recently_viewed_goods.OPINION_RATING_VALUE}0%" alt="{recently_viewed_goods.OPINION_RATING_VALUE}" title="Рейтинг товара"></div>
</span>
{% ELSE %}
<div class="rating" style="width:0%" alt="Рейтинг не определён" title="Рейтинг не определён"></div>
{% ENDIF %}
</div>
</div>
<div class="price-box" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
<meta itemprop="priceCurrency" content="{CURRENCY_CHAR_CODE}"/>
<span class="price {CURRENCY_CHAR_CODE}" itemprop="price" content="{recently_viewed_goods.MIN_PRICE_NOW}">{recently_viewed_goods.MIN_PRICE_NOW | money_format}</span>
</div>
</div>
<div class="clearfix"></div>
</div>
{% IFNOT recently_viewed_goods.last %}{recently_viewed_goods.index | is_divided("3","</div><div>","")}{% ENDIF %}
{% ENDFOR %}
</div>
</div>
</div>
</div>
</div>
{% ENDIF %}
<!-- /END Вы смотрели -->



#284117 Мобильная Версия Ввод Телефона

Отправлено Vaccina на 15 Август 2019 - 06:41

Здравствуйте.

Зайдите в раздел Сайт - Редактор шаблонов - Быстрый заказ - найдите:
				<input id="sites_client_phone" name="form[contact][phone]" value="{ORDER_FORM_CONTACT_PHONE}" maxlength="255" class="required input" type="text"/>

    
замените на:
				<input id="sites_client_phone" name="form[contact][phone]" value="{ORDER_FORM_CONTACT_PHONE}" maxlength="255" class="required input" type="tel"/>