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


metry

Регистрация: 27 февр. 2017
Offline Активность: 15 апр. 2024 17:00
*****

#291568 Добавление Нового Параметра Доступности Товара

Отправлено stasia на 16 Январь 2023 - 19:17

Просмотр сообщенияstatus321 (02 Декабрь 2022 - 09:25) писал:

Доброе утро.Добавил,выдает ошибку JS и предлогает 2 варианта доставки.

Здравствуйте. Приносим свои извинения за длительное ожидание ответа.
1)Зайдите в раздел Сайт---Редактор шаблонов---Товар и найдите код:

		<!-- Доступность товара -->
				   <div class="goodsDataMainModificationAvailable">
						 <div rel="true" class="available-true" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE < 200 %}style="display:none;"{% ENDIF %} >В наличии: <span>Доставка:ТК СДЭК</span></div>
						  <div rel="true" class="available-true2" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE < 100 || GOODS_MOD_REST_VALUE > 199 %}style="display:none;"{% ENDIF %} >В наличии: <span>Доставка Почта-бесплатно</span></div>
						   <div rel="true" class="available-true3" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE > 99 %}style="display:none;"{% ENDIF %}>В наличии: <span>Доставка:Самовывоз</span></div>
						   <div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0%}style="display:none;"{% ENDIF %}>Наличие товара: <span>Нет в наличии</span></div>
			  </div>		
		<!-- Следующий и Предыдущий товар -->

Замените его на:

		<!-- Доступность товара -->
				   <div class="goodsDataMainModificationAvailable">
						 <div rel="true" class="available-true3" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE != 1 %}style="display:none;"{% ENDIF %} >В наличии: <span>Доставка:Самовывоз</span></div>
						 <div rel="true" class="available-true2" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE != 150 %}style="display:none;"{% ENDIF %} >В наличии: <span>Доставка Почта-бесплатно</span></div>
						 <div rel="true" class="available-true"  {% IFGOODS_MOD_REST_VALUE=0 ||  GOODS_MOD_REST_VALUE != 250 %}style="display:none;"{% ENDIF %} >В наличии: <span>Доставка:ТК СДЭК</span></div>
						 <div rel="true" class="available-true4" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE != 350 %}style="display:none;"{% ENDIF %} >В наличии: <span>Доставка:Boxberry</span></div>
						 <div rel="false" class="available-false" {% IF GOODS_MOD_REST_VALUE>0%}style="display:none;"{% ENDIF %} >Наличие товара: <span>Нет в наличии</span></div>
			  </div>		
		<!-- Следующий и Предыдущий товар -->


2)Зайдите в Редактор шаблонов --- main.js и найдите данный код:

		goodsPriceOld				 = $('.goodsDataMainModificationPriceOld'),
		goodsAvailable						  = $('.goodsDataMainModificationAvailable'),
		goodsAvailableTrue					  = goodsAvailable.find('.available-true'),
		goodsAvailableTrue2					 = goodsAvailable.find('.available-true2'),
		goodsAvailableTrue3					 = goodsAvailable.find('.available-true3'),

И сразу после добавьте данный код:

		goodsAvailableTrue4					 = goodsAvailable.find('.available-true4'),



3)Найдите данный код:

	   // Есть ли товар есть в наличии
								if(modificationRestValue>0 && modificationRestValue<99) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue.hide();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue3.show();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
								} else if(modificationRestValue>99 && modificationRestValue<200) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue.hide();
								  goodsAvailableTrue2.show();
								  goodsAvailableTrue3.hide();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
								} else if(modificationRestValue>199) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue.show();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue3.hide();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
								} else {
								  goodsAvailableFalse.show();
								  goodsAvailableTrue.hide();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue3.hide();
								  goodsAvailableAddCart.hide();
								  goodsAvailableQty.hide();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').show();
								}

		// Если товар есть в списке сравнения

И замените его на:

	   // Есть ли товар есть в наличии
						 // Остаток товара 1 = Доставка:Самовывоз
								if(modificationRestValue == 1) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue.hide();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue4.hide();
								  goodsAvailableTrue3.show();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
						 // Остаток товара 150 = Доставка Почта-бесплатно
								} else if(modificationRestValue == 150) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue.hide();
								  goodsAvailableTrue2.show();
								  goodsAvailableTrue3.hide();
								  goodsAvailableTrue4.hide();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
						 // Остаток товара 250 = Доставка:ТК СДЭК
								} else if(modificationRestValue == 250) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue.show();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue3.hide();
								  goodsAvailableTrue4.hide();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
						 // Остаток товара 350 = Доставка:Boxberry
								} else if(modificationRestValue == 350) {
								  goodsAvailableFalse.hide();
								  goodsAvailableTrue4.show();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue3.hide();
								  goodsAvailableTrue.hide();
								  goodsAvailableAddCart.show();
								  goodsAvailableQty.show();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').hide();
						 // Остаток товара 0 и другое = Доставка:Самовывоз
								} else {
								  goodsAvailableFalse.show();
								  goodsAvailableTrue.hide();
								  goodsAvailableTrue2.hide();
								  goodsAvailableTrue3.hide();
								  goodsAvailableTrue4.hide();
								  goodsAvailableAddCart.hide();
								  goodsAvailableQty.hide();
								  $('.add-to-box .callback, .goodsDataMainModificationEmpty').show();
								}

		// Если товар есть в списке сравнения



#290082 Недопустимый Тип Объекта В Поле "author"

Отправлено Foxis_10 на 01 Ноябрь 2021 - 10:58

Для Прайм, Делюкс, Фреш, Какаду
Скрытый текст

Для Профи, Драйв, Гламур, Цейлон, Маркетплейс, Шарм
Скрытый текст

Для Техно, Нептун, Неон, Цветочный, Ночь, Сканди (в 2 местах), Инфинити, Лотос, Город, Дружок, Мотор, Мастер, Лазурь, Ассорти, Новогодний, Спорт, Рассвет, Лето
Скрытый текст

Для Франт
Скрытый текст

Для Фазенда, Сервис, Будуар, Динамика, Индиго, Дольче, Бетховен, Фиеста, Фитнес, Сказка
Скрытый текст

Для Кондитер
Скрытый текст

Для Хобби
Скрытый текст

Для Цитрус
Скрытый текст



#289573 Сортировка. Добавляем Кнопки Вместо Списка

Отправлено Foxis_10 на 23 Июль 2021 - 17:16

Добавим 2 кнопки Сначала дороже и Сначала дешевле вместо выпадающего списка

В шаблоне Товары (в 2х местах) найдите

<div class="sort-by">
		 <label>Сортировать по:</label>
		 <select name="goods_search_field_id" class="selectBox" title="Название сортировки" onchange="this.form.submit();">
			 {% FOR goods_order_fields %}
			 <option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option>
			 {% ENDFOR %}
		 </select>
		 </div>

замените на

<div class="sort-by">
<label>Сортировать по:</label>
<span class="cheaper">Сначала подешевле</span>
<span class="expensive">Сначала подороже</span>
<select name="goods_search_field_id" style="display:none" class="selectBox" title="Название сортировки" onchange="this.form.submit();">
{% FOR goods_order_fields %}
<option value="{goods_order_fields.ID}" {% IF goods_order_fields.SELECTED %}selected="selected"{% ENDIF %}>{goods_order_fields.NAME}</option>
{% ENDFOR %}
</select>
</div>

В шаблоне main.css в самый низ добавьте

.expensive, .cheaper{cursor: pointer;font-size: 14px;}

В шаблоне main.js

// Фильтры по товарам. При нажании на какую либо характеристику или свойство товара происходит фильтрация товаров
$('.contentTbodySearchFilterBlock input').click(function(){
$(this)[0].form.submit();
});

замените на

// Фильтры по товарам. При нажании на какую либо характеристику или свойство товара происходит фильтрация товаров
$('.contentTbodySearchFilterBlock input').click(function(){
$(this)[0].form.submit();
});

$(function(){
cheaper = $('.cheaper');
expensive = $('.expensive');
cheaper.on('click', function(){
$('select[name="goods_search_field_id"] option').removeAttr('selected');
$('select[name="goods_search_field_id"] option[value="2"]').attr('selected', 'selected');
$('select[name="goods_search_field_id"]').val(2);
	 $('select[name="goods_search_field_id"]').change();
});
expensive.on('click', function(){
$('select[name="goods_search_field_id"] option').removeAttr('selected');
$('select[name="goods_search_field_id"] option[value="1"]').attr('selected', 'selected');
$('select[name="goods_search_field_id"]').val(1);
$('select[name="goods_search_field_id"]').change();
});

})



#288690 Наличие товара "Под заказ" и кнопка "Заказать"

Отправлено Никита Панин на 01 Февраль 2021 - 16:46

Реализуем наличие товара "Под заказ" и отображение кнопки "Заказать", при остатке товара 999.

Для этого перейдём в раздел Сайт --> Редактор шаблонов --> в шаблоне "Товар" найдём (ctrl + f) :

<div class="available-true" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}>Наличие товара: <span><font color="#03b335">В наличии</font></span></div>

и заменим на :
<div class="available-true" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE=999 %}style="display:none;"{% ENDIF %}>Наличие товара: <span><font color="#03b335">В наличии</font></span></div>
<div class="available-true-zakaz" {% IF GOODS_MOD_REST_VALUE !=999 %}style="display:none;"{% ENDIF %}>Наличие товара: <span><font color="#03b335">Под заказ</font></span></div>

тем самым мы добавляем новую строку "Под заказ" и добавляем условие для строки "В наличии", если остаток товара 999 , то скрываем "В наличии".

далее найдём :
<!-- Добавление товара в Корзину -->
<div class="add-to-box f-fix {% IF SETTINGS_GOODS_DONT_PUT_TO_CART_MORE_THAN_AVAILABLE %}add-to-form{% ENDIF %}" {% IF GOODS_MOD_REST_VALUE=0 %}style="display:none;"{% ENDIF %}>

и заменим на :
<a href="#show-callback" class="zakaz button" {% IF GOODS_MOD_REST_VALUE != 999 %}style="display:none;"{% ENDIF %} title="Cделать заказ">Заказать</a>
<!-- Добавление товара в Корзину -->
<div class="add-to-box f-fix {% IF SETTINGS_GOODS_DONT_PUT_TO_CART_MORE_THAN_AVAILABLE %}add-to-form{% ENDIF %}" {% IF GOODS_MOD_REST_VALUE=0 || GOODS_MOD_REST_VALUE=999 %}style="display:none;"{% ENDIF %}>

тем самым мы добавляем кнопку "Заказать" и добавляем условие для кнопки "Купить", если остаток товара 999 , то скрываем кнопку "Купить".

далее в конец данного шаблона "Товар" добавим :
<script>
$(function() {
$(".zakaz").fancybox();
})
</script>
<div id="show-callback" style="display:none;">
<form method="post" action="{CALLBACK_URL}" class="callbackForm2" enctype="multipart/form-data">
<input type="hidden" name="hash" value="{HASH}" />
<input type="hidden" name="form[Название товара]" value="{GOODS_NAME}" />
<input class="callbackredirect" type="hidden" name="return_to" value="{CALLBACK_URL}"/>
<!-- Набор полей которые не видит пользователь, но видят боты. Когда они их заполняют мы точно знаем, что их прислал нам бот и мы не сохраняем подобный отзыв о товаре, а боту отправившему отзыв сообщаем, что отзыв добавлен успешно, но будет отображён здесь после прохождения модерации -->
{ANTISPAM_CODE}
{% IF FORM_NOTICE %}<div class="{% IF FORM_NOTICE_IS_GOOD %}success{% ELSE %}warning{% ENDIF %}">{FORM_NOTICE}</div>{% ENDIF %}
<input id="callback_person1" class="inputText callback_person1 required" type="text" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PERSON}]" value="{FORM_CALLBACK_PERSON}" placeholder="Представьтесь, пожалуйста" maxlength="50" title="Представьтесь, пожалуйста" autocomplete="off" />
<input id="callback_phone1" class="inputText callback_phone1 required" type="text" name="form[{ANTISPAM_FORM_FIELD_NAME_CALLBACK_PHONE}]" value="{FORM_CALLBACK_PHONE}" placeholder="Введите номер телефона" maxlength="50" title="Введите номер телефона" autocomplete="off" />
<div class="pp">Нажимая на кнопку отправить, Вы соглашаетесь с <a href="#">правилами обработки данных</a></div>
{% IFNOT FORM_SEND_OK %}<button type="submit" title="Отправить" class="button">Отправить</button>{% ENDIF %}
</form>
</div>

тем самым мы добавляем форму, открывающаяся при нажатии на кнопку "Заказать" и вешаем скрипт на данную кнопку.

далее перейдём в файл main.js и найдём :
// Есть ли товар есть в наличии
if(modificationRestValue>0) {
goodsAvailableTrue.show();
goodsAvailableFalse.hide();
// Если товара нет в наличии

и заменим на :
// Есть ли товар есть в наличии
if(modificationRestValue>0) {
// Если остаток товара 999
if (modificationRestValue==999) {
// Скрываем кнопку купить
$(".product-view .add-to-box.f-fix.add-to-form").hide();
// Показываем строку "Наличие: под заказ" и кнопку "Заказать"
$(".available-true-zakaz, a.zakaz.button").show();
// Скрываем строку "Наличие: в наличии"
goodsAvailableTrue.hide();
// Если остаток товара не равен 999
} else {
// Показываем кнопку купить
$(".product-view .add-to-box.f-fix.add-to-form").show();
// Скрываем строку "Наличие: под заказ" и кнопку "Заказать"
$(".available-true-zakaz, a.zakaz.button").hide();
//Показываем строку "Наличие: в наличии"
goodsAvailableTrue.show();
}
goodsAvailableFalse.hide();
// Если товара нет в наличии

тем самым при выборе модификации в карточке товара, будет отображаться нужное "Наличие товара" с соответствующей кнопкой.

далее перейдём в файл main.css и добавим (в самый конец) :
a.zakaz.button {background: #09afe7;font-size: 16px;}

тем самым корректируем внешний вид нашей кнопки "Заказать".


#287334 Фикс Ошибки При Оформлении Заказа

Отправлено M1STERE0 на 10 Июнь 2020 - 12:04

Добрый день!

Если при нажатии на кнопку "Оформить заказ" появляется ошибка (красный блок справа), и заказ не оформляется, то у Вас, скорее всего, поля для заполнения Адреса доставки в настройках выставлены обязательными, а в этом шаблоне эти поля отсутствуют.
Этот фикс должен решить проблему, не меняя настройки сайта.

Итак, открываем раздел сайт > редактор шаблонов > main.js > найдите этот блок
// Разделение поле адрес на Улица, Дом, Квартира
function address(){
$('#quickform .button').click(function(){
if($('#quickDeliveryAddressStreet').val() !='' || $('#quickDeliveryAddressHome').val() !='' || $('#quickDeliveryAddressFlat').val() !=''){
	 if ( $('#quickDeliveryAddress').val().match( /(.*)(улица)+(.*)/i ) ) {
	 $('#quickDeliveryAddress').val(null);
	 }
	 $('#quickDeliveryAddress').val('Улица: ' + $('#quickDeliveryAddressStreet').val() + ', Дом/Корпус: ' + $('#quickDeliveryAddressHome').val() + ', Квартира: ' + $('#quickDeliveryAddressFlat').val());
	 $(this).submit();
	 return false;
}
});
}

и замените его этим кодом
// Разделение поле адрес на Улица, Дом, Квартира
function address(){
$('#quickform .button').click(function(){
if($('#quickDeliveryAddress').length) {
	 if($('#quickDeliveryAddressStreet').val() !='' || $('#quickDeliveryAddressHome').val() !='' || $('#quickDeliveryAddressFlat').val() !=''){
	 if ( $('#quickDeliveryAddress').val().match( /(.*)(улица)+(.*)/i ) ) {
		 $('#quickDeliveryAddress').val(null);
	 }
	 $('#quickDeliveryAddress').val('Улица: ' + $('#quickDeliveryAddressStreet').val() + ', Дом/Корпус: ' + $('#quickDeliveryAddressHome').val() + ', Квартира: ' + $('#quickDeliveryAddressFlat').val());
	 $(this).submit();
	 return false;
	 }
}
});
}



#287332 Выпадающее Меню Категорий Как При Нажатии На Кнопку Каталога

Отправлено M1STERE0 на 10 Июнь 2020 - 10:08

Просмотр сообщенияveilofmaya1234 (10 Июнь 2020 - 02:12) писал:

Добрый день, подскажите пожалуйста сложно ли будет сделать для блока категорий товаров слева (где указано кол-во товара)
сделать так же выпадающее меню для категорий 2-го уровня? при наведении.
Как при нажатии на кнопку каталога товаров (там категории 2го уровня выпадающим окном)

Добрый день!

Вам нужно перейти в раздел сайт > редактор шаблонов > HTML

Найдите этот код
<!-- Каталог -->
			 {% IFNOT catalog_full_empty %}
			 <div class="block catalog">
			 <h3 class="title"><a href="{CATALOG_URL}"><span class="text">Каталог</span></a></h3>
			 <div class="content">
				 <ul>
				 {% FOR catalog_full %}
					 {% IF catalog_full.FIRST %}{% IFNOT catalog_full.LEVEL = 0 %}<ul class="sub">{% ENDIF %}{% ENDIF %}
					 <li {% IF catalog_full.HIDE %}style="display:none;"{% ENDIF %} class="{% IF catalog_full.ISSET_VISIBLE_SUB %}parent{% ENDIF %} {% IF catalog_full.LEVEL = 0 %}subhead{% ENDIF %} {% IF catalog_full.CURRENT || catalog_full.CURRENT_PARENT %}active{% ENDIF %}" title="{catalog_full.NAME}">
					 <a href="{catalog_full.URL}" {% IF catalog_full.CURRENT %}class="active"{% ENDIF %}>
						 {% IF catalog_full.IMAGE_ICON %}<img src="{catalog_full.IMAGE_ICON}" class="goods-cat-image-icon"/>{% ENDIF %}{% IF catalog_full.ISSET_VISIBLE_SUB %}<span class="open-sub {% IF catalog_full.CURRENT_PARENT || catalog_full.CURRENT %}active{% ENDIF %}"></span>{% ENDIF %}
						 {catalog_full.NAME}
						 {% IF catalog_full.GOODS_COUNT>0 %} <span class="count">{catalog_full.GOODS_COUNT}</span>{% ELSEIF catalog_full.BRANCH_GOODS_COUNT>0 %}<span class="count">{catalog_full.BRANCH_GOODS_COUNT}</span>{% ENDIF %}
					 </a>
					 {% IF catalog_full.ISSET_SUB=0 %}</li>{% ENDIF %}
					 {% IF catalog_full.LAST %}{%FOR out%}</ul>{%IFNOT catalog_full.out.LAST%}</li>{%ENDIF%}{%ENDFOR%}{% ENDIF %}
					 <!-- Отображение количества товаров в категории -->
				 {% ENDFOR %}
				 </ul>
			 </div>
			 </div>
			 {% ENDIF %}
			 <!-- /END Каталог -->

И замените его этим
<!--Выпадающий каталог товаров -->
			 <div class="menu_main">
			 <a href="{CATALOG_URL}" title="Каталог" style="text-decoration: none"><h4 class="hidden-phone">Каталог</h4></a>
			 {%IFNOT catalog_full_empty%}
				 {%FOR catalog_full%}
				 {% IF catalog_full.FIRST %}<ul>{% ENDIF %}
				 <li {% IF catalog_full.CURRENT %}class="open"{% ELSEIF catalog_full.CURRENT_PARENT %}class="open"{% ENDIF %}{% IF catalog_full.HIDE %} style="display:none;"{% ENDIF %}>
					 <a href="{catalog_full.URL}"{% IF catalog_full.CURRENT %}class="selected"{% ENDIF %}>{catalog_full.NAME}</a><span class="icons"{% IFNOT catalog_full.ISSET_SUB %}style="display: none;"{% ENDIF %}></span>
				 {% IF catalog_full.ISSET_SUB=0 %}</li>{% ENDIF %}
				 {% IF catalog_full.LAST %}{%FOR out%}</ul>{%IFNOT catalog_full.out.LAST%}</li>{%ENDIF%}{%ENDFOR%}{% ENDIF %}
				 {%ENDFOR%}
			 {%ENDIF%}
			 </div>
			 <!--Выпадающий каталог товаров -->

Далее откройте раздел main.css и в самый конец шаблона добавьте этот код
/* Выпадающий каталог */
.menu_main ul {padding-left: 10px;}
.menu_main li {list-style: none;margin: 10px 0;}
.menu_main li a {font-size: 16px;}
.menu_main ul li ul {display: none;position: absolute;top: 0;z-index: 1;left: 65%;width: 100%;min-height: 100%;background-color: #fff;padding: 0;border: 1px solid #f1f1f1;border-left-style: none;}
.menu_main ul li ul li {border-bottom: 1px solid #e4e4e4;padding: 10px;}
.menu_main ul li ul li:hover {border-bottom: 1px solid #55188f;}
.menu_main ul li:hover ul {display: block;}



#262763 Название Товаров. Стиль Написания.

Отправлено v4i3 на 04 Июнь 2017 - 22:39

Рано шум поднял))
поискал и начал уже разбираться. Сделал!!

Кто может столкнется с этим:
файл main.css

.title h4 {
margin-bottom: 3px;
height: 43px;
text-transform: capitalize;


ставим вместо capitalize -> none