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


Mr.Nito

Регистрация: 14 сент. 2016
Offline Активность: 14 мая 2021 18:32
*****

Мои темы

Ленивая Загрузка Товаров На Главной Из Категорий

12 Май 2021 - 14:09

В шаблоне HTML заменить
<!-- Категории каталога -->
{% IFNOT catalog_full_empty %}
	 <script>
	 var catalog_full = [];
	 </script>
	 {% FOR catalog_full %}
	 {% IF catalog_full.LEVEL = 0 && catalog_full.GOODS_COUNT > 0 && catalog_full.HIDE=0 %}
	 <div class="pdt-{catalog_full.ID} products-container index">
		 <script>
		 catalog_full.push({
			 'id': 'pdt-{catalog_full.ID}',
			 'href': '{catalog_full.URL}'
		 })
		 </script>
		 <div class="container">
		 <div class="content">
			 <div class="block-title _iconed">
			 <svg class="icon block-icon">
				 <use xlink:href="#flower"></use>
			 </svg>			
			 <h2 class="title">{catalog_full.NAME}</h2>
			 <div class="navigation owl-nav"></div>
			 </div>			
			 <div class="products-grid row"></div>
		 </div>
		 </div>				
	 </div>
	 {% ENDIF %}
	 {% ENDFOR %}
{% ENDIF %}
на
<!-- Категории каталога -->
{% IFNOT catalog_full_empty %}
<div id="scroll-goods-container"></div>
<!-- status elements -->
<div class="container">
	 <div class="scroller-status">
	 <div class="infinite-scroll-request loader-ellips">
		 <span class="loader-ellips__dot"></span>
		 <span class="loader-ellips__dot"></span>
		 <span class="loader-ellips__dot"></span>
		 <span class="loader-ellips__dot"></span>
	 </div>
	 <p class="infinite-scroll-error">Ошибка загрузки</p>
	 </div>
</div>
{% ENDIF %}
В конце шаблона HTML сразу после
  <!-- Overlay -->
  <div class="overlay"></div> 
добавить
<!-- Скрипты ленивой подгрузки товаров на главной -->
{% IF index_page %}
<script src="https://unpkg.com/infinite-scroll@4/dist/infinite-scroll.pkgd.min.js"></script>
<script>
var catalog_full = [];

{% FOR catalog_full %}
	 {% IF catalog_full.LEVEL = 0 && catalog_full.GOODS_COUNT > 0 && catalog_full.HIDE=0 %}
		 catalog_full.push({
		 'id': 'pdt-{catalog_full.ID}',
		 'href': '{catalog_full.URL}',
		 'name': '{catalog_full.NAME}'
		 })
	 {% ENDIF %}
{% ENDFOR %}
// Массив страниц с товарами
var nextPages = catalog_full.map(el=>{
var url = new URL(el.href);
return url.pathname + `?only_body=1&goods_view_type=1`
});
// Плагин ленивой загрузки
$('#scroll-goods-container').infiniteScroll({
path: function() {
	 return nextPages[ this.loadCount ];
},
append: '.products-container._ajax', // Искомый контейнер с товарами
history: false,
status: '.scroller-status'
})
.on( 'load.infiniteScroll', function( event, body, path, response ) {
// console.log('Loaded: ${ path }');
})
.on( 'append.infiniteScroll', function( event, body, path, items, response ) {
// console.log('Appended ${ items.length } items on ${ path }');
if(typeof(lozad) === "function"){
	 lozad().observe();
}
Addto();
});
</script>
<style>
.scroller-status{display:none;padding:20px 0}.scroller-status__message{text-align:center;color:#777}.loader-ellips{font-size:20px;position:relative;width:4em;height:1em;margin:10px auto}.loader-ellips__dot{display:block;width:1em;height:1em;border-radius:.5em;background:#555;background:#e8dbcf;position:absolute;animation-duration:.5s;animation-timing-function:ease;animation-iteration-count:infinite}.loader-ellips__dot:nth-child(1),.loader-ellips__dot:nth-child(2){left:0}.loader-ellips__dot:nth-child(3){left:1.5em}.loader-ellips__dot:nth-child(4){left:3em}@keyframes reveal{from{transform:scale(0.001)}to{transform:scale(1)}}@keyframes slide{to{transform:translateX(1.5em)}}.loader-ellips__dot:nth-child(1){animation-name:reveal}.loader-ellips__dot:nth-child(2),.loader-ellips__dot:nth-child(3){animation-name:slide}.loader-ellips__dot:nth-child(4){animation-name:reveal;animation-direction:reverse}.loader-wheel{font-size:64px;position:relative;height:1em;width:1em;padding-left:.45em;overflow:hidden;margin:0 auto;animation:loader-wheel-rotate .5s steps(12) infinite}.loader-wheel i{display:block;position:absolute;height:.3em;width:.1em;border-radius:.05em;background:#333;opacity:.8;transform:rotate(-30deg);transform-origin:center .5em}@keyframes loader-wheel-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
</style>
{% ENDIF %}
В конец шаблона Товары добавить
<!-- Товары для ленивой загрузки-->
{% IF ONLY_BODY %}
<!-- Вывод товаров -->
<div class="products-container index _ajax">
	 <div class="container">
	 <div class="block-title _iconed">
	 <svg class="icon block-icon">
		 <use xlink:href="#flower"></use>
	 </svg>			
	 <h2 class="title">{CATEGORY_NAME}</h2>
	 <div class="navigation owl-nav"></div>
	 </div>	
	 {% IF GOODS_VIEW_TYPE=1 %}
	 <!-- Вывод товаров ТАБЛИЦЕЙ -->
	 <div class="products-grid row">
		 {% FOR goods %}
		 <div class="item {% IF goods.MIN_REST_VALUE=0 %}empty{% ENDIF %} col-lg-3 col-sm-4 col-sms-6 col-smb-6">
			 <div class="item-inner" itemscope itemtype="https://schema.org/Product">
			 <form action="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}" method="post" class="product-form-{goods.MIN_PRICE_NOW_ID} goodsListForm">
				 <input type="hidden" name="hash" value="{HASH}" />
				 <input type="hidden" name="form[goods_from]" value="{goods.GOODS_FROM}" />
				 <input type="hidden" name="form[goods_mod_id]" value="{goods.MIN_PRICE_NOW_ID}" />
				 <div class="product-image">
				 <div class="product-icons">
					 <a class="quickview product-ico" href="{goods.URL_MIN_PRICE_NOW}" title="Быстрый просмотр &laquo;{goods.NAME}&raquo;" data-tooltip="Быстрый просмотр" rel="nofollow"><i class="fal fa-search-plus"></i><span>Быстрый просмотр</span></a>
					 <!-- Если есть возможность добавить товар в избранное -->
					 {% IF goods.IS_HAS_IN_FAVORITES_LIST %}
					 <a class="add-wishlist added product-ico"
						 data-action-is-add="0"
						 data-action-add-url="{FAVORITES_ADD_URL}"
						 data-action-delete-url="{FAVORITES_DELETE_URL}"
						 data-action-add-title="Добавить &laquo;{goods.NAME}&raquo; в избранное"
						 data-action-delete-title="Убрать &laquo;{goods.NAME}&raquo; из избранного"
						 data-prodname="{goods.NAME}"
						 data-prodimage="{% IF goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png?design=flowers{% ELSE %}{goods.IMAGE_MEDIUM}{% ENDIF %}"
						 data-produrl="{goods.URL}"
						 data-id="{goods.ID}"
						 data-mod-id="{goods.MIN_PRICE_NOW_ID}"
						 data-mod-id-price="{goods.MIN_PRICE_NOW}"						
						 data-add-tooltip="В Избранное"
						 data-del-tooltip="Убрать из избранного"
						 data-tooltip="Убрать из избранного"
						 title="Убрать &laquo;{goods.NAME}&raquo; из избранного"
						 href="{FAVORITES_DELETE_URL}?id={goods.MIN_PRICE_NOW_ID}&amp;return_to={CURRENT_URL | urlencode}"
						 rel="nofollow"
					 ><i class="material-icons"> favorite_border </i></a>
					 {% ELSE %}
					 <a class="add-wishlist product-ico"
						 data-action-is-add="1"
						 data-action-add-url="{FAVORITES_ADD_URL}"
						 data-action-delete-url="{FAVORITES_DELETE_URL}"
						 data-action-add-title="Добавить &laquo;{goods.NAME}&raquo; в избранное"
						 data-action-delete-title="Убрать &laquo;{goods.NAME}&raquo; из избранного"
						 data-prodname="{goods.NAME}"
						 data-prodimage="{% IF goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png?design=flowers{% ELSE %}{goods.IMAGE_MEDIUM}{% ENDIF %}"
						 data-produrl="{goods.URL}"
						 data-id="{goods.ID}"
						 data-mod-id="{goods.MIN_PRICE_NOW_ID}"
						 data-mod-id-price="{goods.MIN_PRICE_NOW}"						
						 data-add-tooltip="В Избранное"
						 data-del-tooltip="Убрать из избранного"
						 data-tooltip="В Избранное"
						 title="Добавить &laquo;{goods.NAME}&raquo; в избранное" href="{FAVORITES_ADD_URL}?id={goods.MIN_PRICE_NOW_ID}&amp;return_to={CURRENT_URL | urlencode}"
						 href="{FAVORITES_ADD_URL}?id={goods.MIN_PRICE_NOW_ID}&amp;return_to={CURRENT_URL | urlencode}"
						 rel="nofollow"
					 ><i class="material-icons"> favorite_border </i></a>
					 {% ENDIF %}
					 <!-- /END Если есть возможность добавить товар в избранное -->
					 <!-- Если в тарифном плане подключен модуль сравнения товаров и он не выключен в настройках магазина -->
					 {% IF TARIFF_FEATURE_GOODS_COMPARE && SETTINGS_COMPARE_DISABLE=0 %}
					 {% IF goods.IS_HAS_IN_COMPARE_LIST %}
						 <a class="add-compare added product-ico"
						 data-action-is-add="0"
						 data-action-add-url="{COMPARE_ADD_URL}"
						 data-action-delete-url="{COMPARE_DELETE_URL}"
						 data-action-add-title="Добавить &laquo;{goods.NAME}&raquo; в список сравнения с другими товарами"
						 data-action-delete-title="Убрать &laquo;{goods.NAME}&raquo; из списка сравнения с другими товарами"
						 data-prodname="{goods.NAME}"
						 data-prodimage="{% IF goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png?design=flowers{% ELSE %}{goods.IMAGE_MEDIUM}{% ENDIF %}"
						 data-produrl="{goods.URL}"
						 data-id="{goods.ID}"
						 data-mod-id="{goods.MIN_PRICE_NOW_ID}"
						 data-mod-id-price="{goods.MIN_PRICE_NOW}"
						 data-add-tooltip="В Сравнение"
						 data-del-tooltip="Убрать из сравнения"
						 data-tooltip="Убрать из сравнения"
						 title="Убрать &laquo;{goods.NAME}&raquo; из списка сравнения с другими товарами"
						 href="{COMPARE_DELETE_URL}?id={goods.MIN_PRICE_NOW_ID}&amp;from={goods.GOODS_FROM}&amp;return_to={CURRENT_URL | urlencode}"
						 rel="nofollow"
						 ><i class="fal fa-signal"></i></a>
					 {% ELSE %}
						 <a class="add-compare product-ico"
						 data-action-is-add="1"
						 data-action-add-url="{COMPARE_ADD_URL}"
						 data-action-delete-url="{COMPARE_DELETE_URL}"
						 data-action-add-title="Добавить &laquo;{goods.NAME}&raquo; в список сравнения с другими товарами"
						 data-action-delete-title="Убрать &laquo;{goods.NAME}&raquo; из списка сравнения с другими товарами"
						 data-prodname="{goods.NAME}"
						 data-prodimage="{% IF goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png?design=flowers{% ELSE %}{goods.IMAGE_MEDIUM}{% ENDIF %}"
						 data-produrl="{goods.URL}"
						 data-id="{goods.ID}"
						 data-mod-id="{goods.MIN_PRICE_NOW_ID}"
						 data-mod-id-price="{goods.MIN_PRICE_NOW}"
						 data-add-tooltip="В Сравнение"
						 data-del-tooltip="Убрать из сравнения"
						 data-tooltip="В Сравнение"
						 title="Добавить &laquo;{goods.NAME}&raquo; в список сравнения с другими товарами"
						 href="{COMPARE_ADD_URL}?id={goods.MIN_PRICE_NOW_ID}&amp;from={goods.GOODS_FROM}&amp;return_to={CURRENT_URL | urlencode}"
						 rel="nofollow"
						 ><i class="fal fa-signal"></i></a>
					 {% ENDIF %}
					 {% ENDIF %}
					 <!-- /END Если в тарифном плане подключен модуль сравнения товаров и он не выключен в настройках магазина -->					
				 </div>
				
				 <a href="{goods.URL_MIN_PRICE_NOW | url_amp}" title="{goods.NAME}" class="product-img">
					 <img class="goods-image-small lozad" src="{ASSETS_IMAGES_PATH}loader.gif" data-src="{% IF goods.IMAGE_EMPTY %}{ASSETS_IMAGES_PATH}no-photo-small.png?design=flowers{% ELSE %}{goods.IMAGE_MEDIUM}{% ENDIF %}" alt="{goods.NAME}" title="{goods.NAME}" itemprop="image">
				 </a>
				 {% IF goods.IS_NEW %}
					 <span class="ico-new">Новинка</span>
				 {% ELSEIF goods.IS_TOP %}
					 <span class="ico-best">Хит</span>
				 {% ENDIF %}
				 {% IF goods.MAX_DISCOUNT %}
					 <span class="ico-sale">Акция</span>
				 {% ENDIF %}
				 </div>
				 <div class="product-shop">
				 <meta itemprop="name" content="{goods.NAME}">
				 <meta itemprop="description" content="{% IF goods.DESCRIPTION_SHORT %}{goods.DESCRIPTION_SHORT}{% ELSE %}Описание отсутствует{% ENDIF %}">
				 <div class="product-name"><a href="{goods.URL_MIN_PRICE_NOW | url_amp}" title="{goods.NAME}" itemprop="url">{goods.NAME}</a></div>
				 <div class="ratings">
					 <a href="{goods.URL | url_amp}" title="Перейти к отзывам">
					 <div class="rating-box">
						 {% IF goods.OPINION_RATING_VALUE %}
						 <span itemprop="aggregateRating" itemscope itemtype="https://schema.org/AggregateRating">
						 <meta itemprop="worstRating" content = "1">
						 <meta itemprop="bestRating" content = "10">
						 <meta itemprop="ratingValue" content = "{goods.OPINION_RATING_VALUE}">
						 <meta itemprop="reviewCount" content = "{goods.OPINION_RATING_CNT_ALL}">
						 <div class="rating" style="width:{goods.OPINION_RATING_VALUE}0%" alt="{goods.OPINION_RATING_VALUE}" title="Рейтинг товара"></div>
						 </span>
						 {% ELSE %}
						 <div class="rating" style="width:0%" alt="Рейтинг не определён" title="Рейтинг не определён"></div>
						 {% ENDIF %}
					 </div>
					 </a>
				 </div>
				 <div class="price-box" itemprop="offers" itemscope itemtype="https://schema.org/Offer">
					 <meta itemprop="priceCurrency" content="{CURRENCY_CHAR_CODE}"/>
					 {% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
					 <span class="price old-price {CURRENCY_CHAR_CODE}">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</span>
					 {% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
					 <span class="price old-price {CURRENCY_CHAR_CODE}">{goods.MIN_PRICE_OLD | money_format}</span>
					 {% ELSE %}
					 <span class="no-old-price"></span>
					 {% ENDIF %}
					 <span class="price {CURRENCY_CHAR_CODE}" itemprop="price" content="{goods.MIN_PRICE_NOW}">{% IF goods.COUNT_MODIFICATION > 1 %}от {% ENDIF %}{goods.MIN_PRICE_NOW | money_format}</span>
				 </div>
				 <div class="actions">
					 <div class="qty-wrap">
					 <div class="qty-set">
						 <a href="javascript:void(0)" class="qty-plus unselectable" title="Увеличить"><i class="fal fa-plus"></i></a>
						 <input type="text" name="form[goods_mod_quantity]" maxlength="4" value="1" min="1" title="Количество" class="inputText quantity" onkeypress="return keyPress(this, event);" onpaste="return false;" autocomplete="off">
						 <a href="javascript:void(0)" class="qty-minus unselectable" title="Уменьшить"><i class="fal fa-minus"></i></a>
					 </div>
					 </div>
					 <!-- Добавление товара в корзину -->
					 {% IF goods.MIN_REST_VALUE=0 %}
					 <div class="empty" title="Нет в наличии" data-tooltip="Нет в наличии"><span>Нет в наличии</span></div>
					 {% ELSE %}
					 <a class="add-cart" title="В корзину" data-tooltip="В корзину" rel="nofollow" href="{goods.URL_MIN_PRICE_NOW | url_amp}"><span>Заказать</span></a>
					 <a class="add-cart quick" title="Быстро оформить заказ" rel="nofollow" href="{CART_ADD_GOODS_MODIFICATION_URL | url_amp}?hash={HASH | url_amp}&amp;form%5Bgoods_from%5D={goods.GOODS_FROM}&amp;form%5Bgoods_mod_id%5D={goods.MIN_PRICE_NOW_ID}"><span>Купить в 1 клик</span></a>
					 {% ENDIF %}
					 <!-- /END Добавление товара в корзину -->
				 </div>
				 </div>
			 </form>
			 </div>
		 </div>
		 {% IF goods.last %}
		 <div class="show-more">
		 <button class="button more">Показать все</button>
		 </div>
		 {% ENDIF %}		
		 {% ENDFOR %}
	 </div>
	 {% ENDIF %}
	 </div>
</div>
<!-- END Вывод товаров -->
{% ENDIF %}

[Fix] Микроразметка Хлебных Крошек

17 Март 2021 - 21:29

В шаблоне HTML заменить
{% IFNOT index_page %}
<!-- Хлебные крошки -->
<div id="breadcrumbs">
	 <div class="container">
	 <ul class="breadcrumbs-list" itemscope itemtype="https://schema.org/BreadcrumbList">
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="home"><a itemprop="item" href="{INDEX_PAGE_URL}" title="Перейти на главную"><span itemprop="name">Главная</span></a></li>
		 {% IF MOD_LNAME=cart %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{% IF cart_items_empty %}Корзина покупок пуста{% ELSE %}Корзина{% ENDIF %}</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=login %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Войти или зарегистрироваться</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=change %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_RECOVERY_URL}" title="Восстановление пароля"><strong itemprop="name">Восстановление пароля</strong></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Активация нового пароля</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=recovery %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Восстановление пароля</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=favorites %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Избранные товары</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=history_info %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_SETTINGS_URL}" title="Личный кабинет"><span itemprop="name">Личный кабинет</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_HISTORY_LIST_URL}" title="История моих заказов"><span itemprop="name">Мои заказы</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Карточка заказа</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=history_list %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_SETTINGS_URL}" title="Личный кабинет"><span itemprop="name">Личный кабинет</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Мои заказы</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=settings %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Личный кабинет</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=register %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Регистрация клиента</strong></li>
		 {% ELSEIF MOD_LNAME=order && ACT=stage %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CART_URL}" title="Перейти в корзину"><span itemprop="name">Корзина</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Оформление заказа</strong></li>
		 {% ELSEIF MOD_LNAME=search %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Поиск</strong></li>
		 {% ELSEIF MOD_LNAME=discount && ACT=index && ID %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{DISCOUNT_URL}" title="Перейти на страницу акций магазина"><span itemprop="name">Акции магазина</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{PROMOTIONAL_CAMPAIGN_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME=discount && ACT=index %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Акции магазина</strong></li>
		 {% ELSEIF MOD_LNAME=order && ACT=info %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CART_URL}" title="Перейти в корзину"><span itemprop="name">Корзина</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CART_URL}"><span itemprop="name">Оформление заказа</span></a></li>
		 <li>Заказ {% IF ORDER_NUM %}№{ORDER_NUM}{% ENDIF %} успешно оформлен.</li>
		 {% ELSEIF MOD_LNAME=feedback && ACT=index %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Связь с администрацией</strong></li>
		 {% ELSEIF CURRENT_URL=NEWS_SHOP_URL || CURRENT_URL=NEWS_ARTICLES_URL || CURRENT_URL=NEWS_MASS_MEDIA_URL || CURRENT_URL=NEWS_ALL_URL %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{NEWS_SECTION_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME=news %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{NEWS_SECTION_URL}" title="{NEWS_SECTION_NAME}"><span itemprop="name">{NEWS_SECTION_NAME}</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{NEWS_TITLE}</strong></li>
		 {% ELSEIF MOD_LNAME=compare %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Список сравнения</strong></li>
		 {% ELSEIF MOD_LNAME=page %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{PAGE_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME= %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Внутренняя ошибка сервера</strong></li>
		 {% ELSEIF MOD_LNAME=callback %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Заказ обратного звонка</strong></li>
		 {% ELSEIF MOD_LNAME=goods %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CATALOG_URL}" title="Перейти в каталог товаров"><span itemprop="name">Каталог</span></a></li>
		 {% FOR upper_navigation %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{upper_navigation.URL}" title="Перейти в категорию &laquo;{upper_navigation.NAME}&raquo;"><span itemprop="name">{upper_navigation.NAME}</span></a></li>
		 {% ENDFOR %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{GOODS_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME=catalog %}
		 {% IF IS_FULL_CATALOG %}
			 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Каталог</strong></li>
		 {% ELSE %}
			 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CATALOG_URL}" title="Перейти в каталог продукции нашего магазина"><span itemprop="name">Каталог</span></a></li>
			 {% FOR upper_navigation %}
				 {% IF upper_navigation.CURRENT %}
				 <li><strong>{upper_navigation.NAME}</strong></li>
				 {% ELSEIF upper_navigation.CURRENT_PARENT %}
				 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{upper_navigation.URL}" title="Перейти в категорию &laquo;{upper_navigation.NAME}&raquo;"><span itemprop="name">{upper_navigation.NAME}</span></a></li>
				 {% ENDIF %}
			 {% ENDFOR %}
		 {% ENDIF %}
		 {% ENDIF %}
	 </ul>
	 </div>
</div>
<!-- /END Хлебные крошки -->
{% ENDIF %}
на
{% IFNOT index_page %}
<!-- Хлебные крошки -->
<div id="breadcrumbs">
	 <div class="container">
	 <ul class="breadcrumbs-list" itemscope itemtype="https://schema.org/BreadcrumbList">
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="home"><a itemprop="item" href="{INDEX_PAGE_URL}" title="Перейти на главную"><span itemprop="name">Главная</span><meta itemprop="position" content="1" /></a></li>
		 {% IF MOD_LNAME=cart %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{% IF cart_items_empty %}Корзина покупок пуста{% ELSE %}Корзина{% ENDIF %}</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=login %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Войти или зарегистрироваться</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=change %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_RECOVERY_URL}" title="Восстановление пароля"><strong itemprop="name">Восстановление пароля</strong></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Активация нового пароля</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=recovery %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Восстановление пароля</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=favorites %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Избранные товары</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=history_info %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_SETTINGS_URL}" title="Личный кабинет"><span itemprop="name">Личный кабинет</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_HISTORY_LIST_URL}" title="История моих заказов"><span itemprop="name">Мои заказы</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Карточка заказа</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=history_list %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{USER_SETTINGS_URL}" title="Личный кабинет"><span itemprop="name">Личный кабинет</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Мои заказы</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=settings %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Личный кабинет</strong></li>
		 {% ELSEIF MOD_LNAME=user && ACT=register %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Регистрация клиента</strong></li>
		 {% ELSEIF MOD_LNAME=order && ACT=stage %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CART_URL}" title="Перейти в корзину"><span itemprop="name">Корзина</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Оформление заказа</strong></li>
		 {% ELSEIF MOD_LNAME=search %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Поиск</strong></li>
		 {% ELSEIF MOD_LNAME=discount && ACT=index && ID %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{DISCOUNT_URL}" title="Перейти на страницу акций магазина"><span itemprop="name">Акции магазина</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{PROMOTIONAL_CAMPAIGN_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME=discount && ACT=index %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Акции магазина</strong></li>
		 {% ELSEIF MOD_LNAME=order && ACT=info %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CART_URL}" title="Перейти в корзину"><span itemprop="name">Корзина</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CART_URL}"><span itemprop="name">Оформление заказа</span></a></li>
		 <li>Заказ {% IF ORDER_NUM %}№{ORDER_NUM}{% ENDIF %} успешно оформлен.</li>
		 {% ELSEIF MOD_LNAME=feedback && ACT=index %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Связь с администрацией</strong></li>
		 {% ELSEIF CURRENT_URL=NEWS_SHOP_URL || CURRENT_URL=NEWS_ARTICLES_URL || CURRENT_URL=NEWS_MASS_MEDIA_URL || CURRENT_URL=NEWS_ALL_URL %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{NEWS_SECTION_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME=news %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{NEWS_SECTION_URL}" title="{NEWS_SECTION_NAME}"><span itemprop="name">{NEWS_SECTION_NAME}</span></a></li>
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{NEWS_TITLE}</strong></li>
		 {% ELSEIF MOD_LNAME=compare %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Список сравнения</strong></li>
		 {% ELSEIF MOD_LNAME=page %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{PAGE_NAME}</strong></li>
		 {% ELSEIF MOD_LNAME= %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Внутренняя ошибка сервера</strong></li>
		 {% ELSEIF MOD_LNAME=callback %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Заказ обратного звонка</strong></li>
		 {% ELSEIF MOD_LNAME=goods %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CATALOG_URL}" title="Перейти в каталог товаров"><span itemprop="name">Каталог</span><meta itemprop="position" content="2" /></a></li>
		 {% FOR upper_navigation %}
			 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{upper_navigation.URL}" title="Перейти в категорию &laquo;{upper_navigation.NAME}&raquo;"><span itemprop="name">{upper_navigation.NAME}</span><meta itemprop="position" content='{upper_navigation.index | plus("2")}' /></a></li>
		 {% ENDFOR %}
		 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">{GOODS_NAME}</strong><meta itemprop="position" content='{% FOR upper_navigation %}{%IF upper_navigation.last%}{upper_navigation.index | plus("3")}{%ENDIF%}{%ENDFOR%}' /></li>
		 {% ELSEIF MOD_LNAME=catalog %}
		 {% IF IS_FULL_CATALOG %}
			 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><strong itemprop="name">Каталог</strong><meta itemprop="position" content="2" /></li>
		 {% ELSE %}
			 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{CATALOG_URL}" title="Перейти в каталог продукции нашего магазина"><span itemprop="name">Каталог</span><meta itemprop="position" content="2" /></a></li>
			 {% FOR upper_navigation %}
				 {% IF upper_navigation.CURRENT %}
				 <li><strong>{upper_navigation.NAME}</strong></li>
				 {% ELSEIF upper_navigation.CURRENT_PARENT %}
				 <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a itemprop="item" href="{upper_navigation.URL}" title="Перейти в категорию &laquo;{upper_navigation.NAME}&raquo;"><span itemprop="name">{upper_navigation.NAME}</span><meta itemprop="position" content='{upper_navigation.index | plus("2")}' /></a></li>
				 {% ENDIF %}
			 {% ENDFOR %}
		 {% ENDIF %}
		 {% ENDIF %}
	 </ul>
	 </div>
</div>
<!-- /END Хлебные крошки -->
{% ENDIF %}

[Fix] Баг С Количеством Товара В Корзине

03 Март 2021 - 15:55

В файле main.js заменить
// Корзина
function ajaxnewqty(){
$('.cartqty').change(function(){
s = $(this);
id = $(this).closest('tr').data('id');
qty = $(this).val();
if(qty < 1) {
	 s.val(1)
}
data = $('.cartForm').serializeArray();
data.push({name: 'only_body', value: 1});
$('tr[data-id="' + id + '"] .ajaxtotal').css('opacity','0');
$('.TotalSum').css('opacity','0');
$.ajax({
	 data: data,
	 cache:false,
	 success:function(d){	
	 s.val($(d).find('tr[data-id="' + id + '"] .cartqty').val())
	 $('tr[data-id="' + id + '"] .ajaxtotal').css('opacity','1');
	 $('.TotalSum').css('opacity','1');
	 tr = $('tr[data-id="' + id + '"]');
	 tr.find('.ajaxtotal').html($(d).find('tr[data-id="' + id + '"] .ajaxtotal').html());
	 $('.TotalSum').html($(d).find('.TotalSum').html());
	 $('.discounttr').each(function(){
		 $(this).remove();
	 });
	 $(d).find('.discounttr').each(function(){
		 $('.cartTable tfoot tr:first-child').before($(this));
	 });
	 c = $(d).find('tr[data-id="' + id + '"] .cartqty');
	 qw = c.val();
	 if(qty > qw){
		 $('.cartErr').remove();
		 $('.cartTable').before('<div class="cartErr warning">Вы пытаетесь положить в корзину товара больше, чем есть в наличии</div>');
		 $('.cartErr').fadeIn(500).delay(2500).fadeOut(500, function(){$('.cartErr').remove();});
		 $('.cartqty').removeAttr('readonly');
	 }
	 }
})
})
}
на
// Корзина
function ajaxnewqty(){
$('.cartqty').change(
$.debounce(300,
function(){
	 s = $(this);
	 id = $(this).closest('tr').data('id');
	 qty = $(this).val();
	 dontPutMore = $(this).data('dont-put-more');
	 if(qty < 1) {
	 s.val(1)
	 }
	 data = $('.cartForm').serializeArray();
	 data.push({name: 'only_body', value: 1});
	 $('tr[data-id="' + id + '"] .ajaxtotal').css('opacity','0');
	 $('.TotalSum').css('opacity','0');
	 $.ajax({
	 data: data,
	 cache:false,
	 success:function(d){	
		 s.val($(d).find('tr[data-id="' + id + '"] .cartqty').val())
		 $('tr[data-id="' + id + '"] .ajaxtotal').css('opacity','1');
		 $('.TotalSum').css('opacity','1');
		 tr = $('tr[data-id="' + id + '"]');
		 tr.find('.ajaxtotal').html($(d).find('tr[data-id="' + id + '"] .ajaxtotal').html());
		 $('.TotalSum').html($(d).find('.TotalSum').html());
		 $('.discounttr').each(function(){
		 $(this).remove();
		 });
		 $(d).find('.discounttr').each(function(){
		 $('.cartTable tfoot tr:first-child').before($(this));
		 });
		 c = $(d).find('tr[data-id="' + id + '"] .cartqty');
		 qw = c.val();
		 if(Number(qty) > Number(qw) && dontPutMore){
		 $('.cartErr').remove();
		 $('.cartTable').before('<div class="cartErr warning">Вы пытаетесь положить в корзину товара больше, чем есть в наличии</div>');
		 $('.cartErr').fadeIn(500).delay(2500).fadeOut(500, function(){$('.cartErr').remove();});
		 $('.cartqty').removeAttr('readonly');
		 }
	 }
	 })
})
)
}
В шаблоне Корзина заменить
<input name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" title="Количество, {cart_items.GOODS_MOD_MEASURE_NAME}" class="input cartqty" type="number" maxlength="5" min="1" onkeypress="return keyPress(this, event);" onpaste="return false;" />
на
<input {% IF SETTINGS_GOODS_DONT_PUT_TO_CART_MORE_THAN_AVAILABLE %}data-dont-put-more{% ENDIF %} name="form[quantity][{cart_items.GOODS_MOD_ID}]" value="{cart_items.ORDER_LINE_QUANTITY}" title="Количество, {cart_items.GOODS_MOD_MEASURE_NAME}" class="input cartqty" type="number" maxlength="5" min="1" onkeypress="return keyPress(this, event);" onpaste="return false;" />

Перенос Кнопки Оплаты На Странице Просмотра Заказа

08 Февраль 2021 - 11:50

В шаблоне Просмотр заказа удалить блок
<!-- Методы методы оплаты онлайн -->
<!-- Если заказ не оплачен и выбранный метод оплаты позволяет оплатить его онлайн, покажем форму с оплатой заказа через сайт -->
{% IF ORDER_PAYMENT_STEP_ENABLE %}
	 <!-- Здесь появляются дополнительные данные, необходимые для заполнения клиентом -->
	 {PAYMENT_FORM_TBODY}
{% ENDIF %}
<!-- END методы методы оплаты онлайн -->

Затем после
<h3 class="title">Данные заказа</h3>
добавить
<!-- Методы методы оплаты онлайн -->
<!-- Если заказ не оплачен и выбранный метод оплаты позволяет оплатить его онлайн, покажем форму с оплатой заказа через сайт -->
{% IF ORDER_PAYMENT_STEP_ENABLE %}
<table class="table-box">
<!-- Здесь появляются дополнительные данные, необходимые для заполнения клиентом -->
{PAYMENT_FORM_TBODY}
</table>
<style>
	 .paymentFormTbody h4 {color: #f44336}
	 .paymentFormTbodySubmitButton {background-color: #60c967;color: #fff;font-size: 0}
	 .paymentFormTbodySubmitButton._active {font-size: 14px}
</style>
<script>
	 var btn = document.querySelector('.paymentFormTbodySubmitButton')
	 btn.value = 'Оплатить'
	 btn.classList.add('_active')
</script>
{% ENDIF %}
<!-- END методы методы оплаты онлайн -->

[Fix] Кнопки Количества После Удаления Товара

08 Февраль 2021 - 10:11

В файле main.js
// Удаление товара из корзины
function ajaxdelete(s){
var yep = confirm('Вы точно хотите удалить товар из корзины?');
if(yep == true){
var closeimg = s;
s.closest('tr').fadeOut();
url = closeimg.data('href');
$.ajax({
	 url:url,
	 cache:false,
	 success:function(d){
	 $('.cart-info').html($(d).find('.cart-info').html());
	 ajaxnewqty();
	 $('.cartqty').first().trigger('change');
	 $('#startOrder').on('click', function() {
		 startOrder();
		 return false;
	 });
	 // Если корзина пуста
	 if($(d).find('.attention').length){
		 $('#page-title .title').html('Корзина покупок пуста')
	 }
	 }	
})}else{
	 return false;
}
}
замените на
// Удаление товара из корзины
function ajaxdelete(s){
var yep = confirm('Вы точно хотите удалить товар из корзины?');
if(yep == true){
var closeimg = s;
s.closest('tr').fadeOut();
url = closeimg.data('href');
$.ajax({
	 url:url,
	 cache:false,
	 success:function(d){
	 $('.cart-info').html($(d).find('.cart-info').html());
	 ajaxnewqty();
	 quantity();
	 $('.cartqty').first().trigger('change');
	 $('#startOrder').on('click', function() {
		 startOrder();
		 return false;
	 });
	 // Если корзина пуста
	 if($(d).find('.attention').length){
		 $('#page-title .title').html('Корзина покупок пуста')
	 }
	 }	
})}else{
	 return false;
}
}