Перейти к содержанию
Форум поддержки пользователей VamShop

Вывести акционный товар


Рекомендуемые сообщения

Стало интересно, как можно вывести товар, который участвует в акции (товар, на который установлена Специальная цена)? Т.е. вывод из таблицы content_specials колонки price со значением не NULL.

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

Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, SeoWWW сказал:

Стало интересно, как можно вывести товар, который участвует в акции (товар, на который установлена Специальная цена)? Т.е. вывод из таблицы content_specials колонки price со значением не NULL.

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

А как именно Вам надо вывести эти товары со скидкой?!

Где-то на отдельной странице?!

Есть метка old_price в шаблоне вывода товара.

т.е., по идее, как-то можно условием в шаблоен попробовать вывести только те у которых задана метка old_price, т.е. есть спец. цена.

А вот сортировки по спец. цене по умолчанию нет, т.е. это только пилить код, а именно в /app/Catalog/function.content_listing.php добавлять новый вид сортировки к уже существующим.

Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Саш. Попробую с этой меткой поколдовать, отпишусь, если получится. Хз, где выводить, хотел на странице попробовать, а придется видимо варианты искать)

На следующей неделе наверное займусь.

Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, SeoWWW сказал:

Спасибо, Саш. Попробую с этой меткой поколдовать, отпишусь, если получится. Хз, где выводить, хотел на странице попробовать, а придется видимо варианты искать)

На следующей неделе наверное займусь.

т.е., к примеру, в Админке - Содержание в раздел Информация можно создать страницы например Смартфоны по скидкой.

и в описании страницы добавить:

{content_listing template="product-listing-skidka" type="product" limit=20 parent="smartphones"}

Затем в Админке - Оформление - Микро-шаблоны сделать новый шаблон на основе существующего product-listing

т.е. зайдит в микро-шаблон product-listing, скопируйте код шаблона, затем вернитесь на странице админка - оформлени - микро-шаблоны и создайте новый шаблон.

Псевдоним шаблона укажите product-listing-skidka

Тэг content_listing

А модежимое шаблона добавьте такое:

{if $content_list}
  
<!-- start: products listing -->
<div class="row shop-products">
  <ul class="thumbnails">
    {foreach from=$content_list item=node}
     {if $node.old_price}
    <li class="item col-sm-3 col-md-4{if $node.is_new == 1} new{/if}{if $node.is_featured == 1} featured{/if}">
      <div class="thumbnail text-center">
        {if $node.discount > 0}<div class="description"><span class="discount">-{$node.discount|round}%</span></div>{/if}
        <a href="{$node.url}" class="image"><img src="{$node.image}" alt="{$node.name}"{if {$node.image_width} > 0} width="{$node.image_width}"{/if}{if {$node.image_height} > 0} height="{$node.image_height}"{/if} />
        {if $node.price}<span class="frame-overlay"></span><span class="price">{$node.price}</span>{/if}
        {product_label label_id={$node.label_id}}
        </a>
      <div class="inner notop nobottom text-left">
        <h4 class="title"><a href="{$node.url}">{$node.name}</a></h4>
        {if $node.reviews > 0}<div class="description"><span class="rating">{$node.star_rating}</span> <span class="reviews">{lang}Feedback{/lang}: {$node.reviews}</span></div>{/if}
        {if $node.old_price}<div class="description">{lang}List Price{/lang}: <span class="old-price"><del>{$node.old_price}</del></span></div>{/if}
        {if $node.price_save}<div class="description">{lang}You Save{/lang}: <span class="save">{$node.price_save} ({$node.price_save_percent|round}%)</span></div>{/if}
        <div class="description">{$node.short_description|strip_tags|truncate:30:"...":true}</div>
        <div class="description">{attribute_list product_id=$node.id}</div>
      </div>
      </div>
      {product_form product_id={$node.id}}
      <div class="inner darken notop">
        <button class="btn btn-default btn-add-to-cart" type="submit"><i class="fa fa-shopping-cart"></i> {lang}Buy{/lang}</button>
        {if isset($is_compare)}<a href="{base_path}/category/addcmp/{$node.alias}/{$content_alias->value}{$ext}" class="btn btn-default btn-add-to-cart"><i class="fa fa-bookmark"></i> {lang}Compare{/lang}</a>{/if}
      </div>
      {/product_form}
    </li>
    {/if}
    {/foreach}
  </ul>
</div>  
<!-- end: products listing -->

{/if}  

Т.е. добавили условие      {if $node.old_price} .... {/if}

Что б показывались только товары со скидкой.

Ну и всё, сохраняйте.

Затем заходите в в каталоге в разделе информация на станицу Скидки, по идее, вывеодутся только товырв со скидкой из раздела Смартфоны.

 

Как-то так примерно.

Либо если нужно показать какие-то спец. предложения например над основным списком товара.

То можно ярлые скидка таким товарам добавить в админке.

и затем взять совет из FAQ - 

 

Как выводить товары с определённым ярлыком.

и вот как раз перед основным списком товара или на главной странице вывести товары с ярлыком Скидка.

 

т.е. варианты есть.

 

Ссылка на сообщение
Поделиться на другие сайты

Да, так выводится, но только из одной категории... Т.е. если убрать parent="" - нечего выводиться не будет.

Ссылка на сообщение
Поделиться на другие сайты
В 31.03.2020 в 03:41, SeoWWW сказал:

Да, так выводится, но только из одной категории... Т.е. если убрать parent="" - нечего выводиться не будет.

Вот для пробы сделал тэг content_listing_special

Добавив условие одно в cotent_listing стандартны.

Положите в папке /app/Catalog этот файл.

А в админке вставляйте:

{content_listing_special type="product" limit=20}

По хороше конечно надо убрать всё лишнее из кода content_listing_special

Но как основа, которая выводит только товары со скидками, я думаю, что пойдёт.

 

function.content_listing_special.php

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, SeoWWW сказал:

Не выходит...

Пишет: Товары не найдены.

Я вот только что скачал файл, добавил в /app/Catalog

Создал в Админке - Содержание - Категории и товары, в разделе Информация для пробы создал страницу Скидки.

и в описание добавил:

{content_listing_special type="product" limit=20}

Вот что получилось.

 

Screenshot from 2020-03-31 19-18-59.png

Ссылка на сообщение
Поделиться на другие сайты

Да, все также делал... Причем сейчас, даже если parent="" добавить - все равно не выводит)

Может версия старая? 2.64

Ссылка на сообщение
Поделиться на другие сайты
1 час назад, SeoWWW сказал:

Да, все также делал... Причем сейчас, даже если parent="" добавить - все равно не выводит)

Может версия старая? 2.64

Да, странно.

А если добавить ещё параметр limit="500" например

Нет, версия не важная, база одна и та же, по идее.

и сбросьте кэш на главной странице в админке.

Ссылка на сообщение
Поделиться на другие сайты

Кэш и в браузере и в админке сбрасывал, с параметром limit="" тоже экспериментировал...

Отправил ссылку на сайт в личку.

Ссылка на сообщение
Поделиться на другие сайты
14 часов назад, SeoWWW сказал:

Кэш и в браузере и в админке сбрасывал, с параметром limit="" тоже экспериментировал...

Отправил ссылку на сайт в личку.

Я ж так по одной ссылке на страницу ничего не могу сказать.

Пришлите доступ на ftp, доступ в админку.

Попробую посмотреть.

Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, SeoWWW сказал:

Отправил

В файле /app/Catalog/function.content_listing_special.php

Исправил условие:

		if($raw_data['ContentProduct']['old_price'] > $raw_data['ContentProduct']['price'])
		{

на:

		if($raw_data['ContentProduct']['old_price'] > 0)
		//if($raw_data['ContentProduct']['old_price'] > $raw_data['ContentProduct']['price'])
		{

Теперь выводится, насколько я вижу.

Видимо, условие не выполнялось.

Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, SeoWWW сказал:

Неа) Выводятся все, но не акционный)

А как у Вас сделан запрет вывода цены гостям, не зарегистрированным?!

Просто в шаблоне карточки товара условием, или как-то в коде php?!

 

На странице регистрации customer/registre.html у ВАс JS ошибка, невидимая каптча не работает из-за этого.

Никто зарегистрироваться не может в принципе из-за этого.

Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, support сказал:

А как у Вас сделан запрет вывода цены гостям, не зарегистрированным?!

Просто в шаблоне карточки товара условием, или как-то в коде php?!

В карточке

6 минут назад, support сказал:

На странице регистрации customer/registre.html у ВАс JS ошибка, невидимая каптча не работает из-за этого.

Никто зарегистрироваться не может в принципе из-за этого.

Да, каптча что то слетела...

Ссылка на сообщение
Поделиться на другие сайты

Видимо, слайдер непрвильно подключили, сейчас исправлю.

3 минуты назад, SeoWWW сказал:

Да, каптча что то слетела...

 

Ссылка на сообщение
Поделиться на другие сайты

Слайдеру этот код мешает: <script>{literal}(function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).on("ready",f)})})(jQuery,document){/literal}</script>

Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, SeoWWW сказал:

Слайдеру этот код мешает: <script>{literal}(function($,d){$.each(readyQ,function(i,f){$(f)});$.each(bindReadyQ,function(i,f){$(d).on("ready",f)})})(jQuery,document){/literal}</script>

Слайдер исправил, просто vamshop-packed.js не перегенерировался.

Нет, он не мешает.

Надо просто js внизу подключаться, как сделаны все js файлы, снизу подключены.

Можно и этот код убрать и сжатие, объединение убрать - 

 

Ссылка на сообщение
Поделиться на другие сайты
21 минуту назад, support сказал:

Слайдер исправил, просто vamshop-packed.js не перегенерировался.

Нет, он не мешает.

Надо просто js внизу подключаться, как сделаны все js файлы, снизу подключены.

Можно и этот код убрать и сжатие, объединение убрать - 

Да, вызов слайдера пришлось в самый низ убирать... Перед закрывающим </body>. Иначе не работал...

Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, SeoWWW сказал:

Да, вызов слайдера пришлось в самый низ убирать... Перед закрывающим </body>. Иначе не работал...

Ну так это ж правильно.

Скрипты должны быть внизу, что б не тормозили загрузку страницы.

 

1 час назад, SeoWWW сказал:

Неа) Выводятся все, но не акционный)

В общем, проблема ясна.

Этот тэг ищет весь контент, а уже потом выбирает со скидкой.

т.е. он просто находит первые 20 записей, а это могут быть и страницы и категории.

И среди них пытается найти спец. цену.

А у этого контента нет цены и спец. цены, поэтому и получается, что не может найти акционные товары.

Я сейчас попробую переписать код, что б поиск вёлся сразу и исключительно среди товаров с акией.

Но не знаю, сегодня может и не успею уже.

Ссылка на сообщение
Поделиться на другие сайты

Нда, проблемку подсунул... Но я не со зла!

А по баннерам, верх-низ - не важно, главное чтоб работало. Да и страничка будет быстрее загружаться!

Ссылка на сообщение
Поделиться на другие сайты
26 минут назад, SeoWWW сказал:

Нда, проблемку подсунул... Но я не со зла!

А по баннерам, верх-низ - не важно, главное чтоб работало. Да и страничка будет быстрее загружаться!

Вроде бы сделал

У Вас там как раз акции кончились я так понял, я вот этому рюкзаку что выводится указал акцию до завтра.

И вот он выводится.

 

 

Ссылка на сообщение
Поделиться на другие сайты
×
×
  • Создать...