Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Выделяем новые товары на разных страницах

ВЫДЕЛЯЕМ НОВИНКИ!
Для чего нужно? Из всех товаров нужно выделить новые за определенный период.
Количество дней берет из Настройки>Максимальные - Максимальное количество дней для нового товара

Идем в папку /includes/lib/smarty/plugins/
Создаем там файл modifier.new_product.php такого содержания

<?php
/*
---------------------------------------------------------------------------
Можно указывать картинку для разных языков
Для этого заменить new.png на new_'.$_SESSION['language'].'.png
А картинки называть так - new_ru.png или new_us.png
где ru и us это код языка
---------------------------------------------------------------------------
*/

function smarty_modifier_new_product($pID) {
$result = "";
if (MAX_DISPLAY_NEW_PRODUCTS_DAYS != '0') {

$date_new_products = date("Y.m.d", mktime(1, 1, 1, date(m), date(d) - MAX_DISPLAY_NEW_PRODUCTS_DAYS, date(Y)));
$days = " p.products_date_added > '".$date_new_products."' ";

$products_new_query_raw = "select products_id from ".TABLE_PRODUCTS." p WHERE ".$days." AND p.products_id='$pID'";
$products_new_query = os_db_query($products_new_query_raw);

if(os_db_num_rows($products_new_query) > 0)
$result = '<img src="'._HTTP.'themes/'.CURRENT_TEMPLATE. '/img/new.png" alt="Новинки" />';
}
return $result;
}

?>


После этого, например, в файл /themes/шаблон/module/product_listing/product_listing_columns.html
Добавляем в любое место(в цикле foreach) {$module_data.PRODUCTS_ID|new_product}

Ну, и закидываем себе картинку в шаблон в папку img.
В данном случае картинка называется new.png

-----------------------------------------------------------------------------------------------------------------------

ВЫДЕЛЯЕМ РЕКОМЕНДУЕМЫЕ!

Идем в папку /includes/lib/smarty/plugins/
Создаем там файл modifier.featured_product.php такого содержания
<?php

function smarty_modifier_featured_product($pID) {

$result = "";
$products_featured_query_raw= "select p.products_id from ".TABLE_PRODUCTS." p, ".TABLE_FEATURED." f where p.products_status = '1' and f.products_id = p.products_id and f.status = '1' and p.products_id='$pID'";

$products_featured_query = os_db_query($products_featured_query_raw);

if(os_db_num_rows($products_featured_query) > 0)
$result = '<img src="'._HTTP.'themes/'.CURRENT_TEMPLATE. '/img/new.png" alt="РЕКОМЕНДУЕМ" />';

return $result;
}

?>


После этого, например, в файл /themes/шаблон/module/product_listing/product_listing_columns.html
Добавляем в любое место(в цикле foreach) {$module_data.PRODUCTS_ID|featured_product}

-----------------------------------------------------------------------------------------------------------------------

ВЫДЕЛЯЕМ БЕСТСЕЛЛЕРЫ!

Идем в папку /includes/lib/smarty/plugins/
Создаем там файл modifier.bestsellers.php такого содержания
<?php
function smarty_modifier_bestsellers($pid) {

$result = "";
// Настроить products_ordered > 0 - где 0 поставить то число, от которого товар будет считаться самым продаваемым
$bsQuery = os_db_query("
SELECT
products_id, products_status, products_ordered
FROM
".TABLE_PRODUCTS."
WHERE
products_id=".(int)$pid." AND
products_ordered > 0 AND
products_status = '1'
LIMIT 1
");

if(os_db_num_rows($bsQuery) > 0)
$result = '<img src="'._HTTP.'themes/'.CURRENT_TEMPLATE. '/img/new.png" alt="Лучший товар" />';

return $result;
}
?>


Есть нюанс!
В запросе установлено products_ordered > 0. Т.е. если товар вообще купили.
Вместо нуля нужно установить то число, после которого считать товар бестселлером. Потому как сейчас вывод Хит продаж! будет у любого товара который купили хоть один раз.
По этому нужно установить число, например 50 или 100. И тогда товар будет считаться действительно продаваемым.
Но, так как не все магазины раскручены и товары продаются "пачками", то 10 или 20 вполне будет достаточно

После этого, например, в файл /themes/шаблон/module/product_listing/product_listing_columns.html
Добавляем в любое место(в цикле foreach) {$module_data.PRODUCTS_ID|bestsellers}

Если нужна картинка, то делаем по аналогии с выделением новинок.


Как-то не понятно работает. Как сделать, чтобы возле картинки нового продукта появлялась new.png?


написано же - вставить {$module_data.PRODUCTS_ID|new_product}
может отличаться. например может быть так {$product_data.PRODUCTS_ID|new_product}

в каком именно месте вставляете? Или надо догадаться?


я вставляю {$module_data.PRODUCTS_ID|new_product} в любое место в product_listing_columns.html. Можешь написать куда лучше вставить?
Прикрепил файлик.


В этом файле найти
{foreach name=aussen item=module_data from=$module_content}

и после него вставить.

Или после

<th colspan="2"><a href="{$module_data.PRODUCTS_LINK}">{$module_data.PRODUCTS_NAME}</a></th>


вставил возле {if $module_data.PRODUCTS_IMAGE} и теперь все как нужно. Спасибо!!!


Так можно в любые файлы, где есть списки товаров.


NeBox, подскажи. Возможно ли сделать, чтобы выделялись другие товары?
Например, есть товар с хорошей ценой, как сделать возле него картинку?


Т.е. выделять товары не просто дешевые, а именно "уцененные"?


На обычный товар.
Возможно такое?


Ну смотри
Есть просто товар у которого низкие цены
Есть товар на который скидка

Какой выделять? Я просто не очень понимаю "Обычный товар"


просто товар, на него нет никаких скидок.
мне нужно его как-то выделить.


хм. ну так не получиться просто хаком сделать. Чет и не соображу как реализовать такое без ковыряния кучи файлов.
Может кто из спецов, что-то посоветует?



хм. ну так не получиться просто хаком сделать. Чет и не соображу как реализовать такое без ковыряния кучи файлов.
Может кто из спецов, что-то посоветует?


Во-первых, выделить где?
Во-вторых, выделить как?

Если, например, хотим выделить добавлением яркой картинки в списке товаров, то надо изменять шаблон списка.
Если товаров немного, можно прямо в шаблоне прописать условие на ID товаров.
Если же хотите настраивать это в админке, то работы побольше требуется. Надо создавать для этого свое поле или использовать дополнительные поля (или даже атрибуты).
Если способ выделять товар более сложный, то, вероятно, отдельный шаблон потребуется...


Как раз имелось ввиду выделение из админки(наверно)) Ковырять файл ради выделения нескольких товаров  - не очень удобно в любом случае.

В первом топике я привел функцию, которая работает во всех шаблонах.
Нельзя использовать, например, в плагине такую функцию? Т.е. в папке с плагинами smarty, она автоматически подхватывается. Если сделать какой-то плагин(не smarty), прицепить такую вот глобальную функцию smarty и через плагин управлять? Я просто только в теории представлю.


я понял, что придется многое переделать((
Тогда, наверно, можно сделать чтобы выделялись рекомендованные товары или товары со скидкой?


Это  проще, не надо в админке ничего делать. 
Менять запрос для списка товара, чтоб выводилась инфа - рекомендован или нет - и в шаблоне как-то выделять.


Обновил первый топик. Добавил выделение для рекомендуемых товаров.
Тестируем! У меня сработало.


Супер, работает! Спасибо.
Мне кажется нужна маленькая доработка.
Если выделять товары картинкой, то она сдвигает другие кнопки, можно ли как-то сделать, чтобы она накладывалась сверху?


накладывалась сверху чего? сверху, допустим, картинки товара или всего блока с товаром?
Это, в принципе, уже через CSS можно сделать. Подробнее опиши, я реализую по возможности.


сверху картинки товара, спасибо.


А шаблон какой? Там надо именно под конкретный шаблон делать.


шаблон парадиз.


Скажите пожалуйста почему у меня вместо картинки показывается надпись NEW?


Может пути к картинке не правильные, или вообще картинки нет в нужной папке.
а NEW показывает, так как она в атрибуте alt прописана.


А можно выделять новинки только которые на главной


Получилось вставить картинку "Рекомендованные" в списке категории. Но никак не получается вставить картинку "Рекомендуем!" на странице самого товара. Какой код нужно вставлять? {$module_data.PRODUCTS_ID|featured_product} почему-то не работает. :(

И еще не появилось ли возможности сделать аналогичные изменения для "Хитов продаж"? Готов заплатить за такой мод! Очень срочно нужен!


{$PRODUCTS_ID|featured_product} - может так.



{$PRODUCTS_ID|featured_product} - может так.

Просто гениально! Все работает!

Хотел бы еще спросить нельзя ли реализовать картинки для товаров Хитов продаж"? Готов заплатить за такой мод! Очень срочно нужен!


В первом топике добавлено выделение бестселлеров (Лучшие товары)


Подскажите пожалуйста как картинку для рекомендуемых добавить? По принципу новинок не получается(


Если делаю по аналогии с новинками картинка new появляется, хотя я меняю путь


<?php
define(IMAGE_PATH,'themes/'.CURRENT_TEMPLATE. '/img/fetured.png');

function smarty_modifier_featured_product($pID) {

      $products_featured_query_raw= "select p.products_id from ".TABLE_PRODUCTS." p, ".TABLE_FEATURED." f where p.products_status = '1' and f.products_id = p.products_id and f.status = '1' and p.products_id='$pID'";

      $products_featured_query = os_db_query($products_featured_query_raw);

      if(os_db_num_rows($products_featured_query) > 0)
    $ret = "<img src=\"".IMAGE_PATH."\" alt='Рекомендуем' />";

  return $ret;
}

?>



:-\


Неужели никто не делал?


Попробуйте так:


<?php
define(IMAGE_PATH2,'themes/'.CURRENT_TEMPLATE. '/img/fetured.png');

function smarty_modifier_featured_product($pID) {

      $products_featured_query_raw= "select p.products_id from ".TABLE_PRODUCTS." p, ".TABLE_FEATURED." f where p.products_status = '1' and f.products_id = p.products_id and f.status = '1' and p.products_id='$pID'";

      $products_featured_query = os_db_query($products_featured_query_raw);

      if(os_db_num_rows($products_featured_query) > 0)
    $ret = "<img src=\"".IMAGE_PATH2."\" alt='Рекомендуем' />";

  return $ret;
}

?>


grig! спасибо огромное. Работает!


<?php

function smarty_modifier_featured_product($pID) {

      $products_featured_query_raw= "select p.products_id from ".TABLE_PRODUCTS." p, ".TABLE_FEATURED." f where p.products_status = '1' and f.products_id = p.products_id and f.status = '1' and p.products_id='$pID'";

      $products_featured_query = os_db_query($products_featured_query_raw);

      if(os_db_num_rows($products_featured_query) > 0)
    $ret = '<img src="'._HTTP.'themes/'.CURRENT_TEMPLATE. '/img/fetured.png" alt="Рекомендуем" />';

  return $ret;
}

?>

вот так не будет конфликтов вообще.
нужно будет поправить все.


Спасибо! То есть и в новинках и в рекомендуемых так сделать? только пути поменять?


да.
делать везде
<img src="'._HTTP.'themes/'.CURRENT_TEMPLATE. '/img/fetured.png" alt="Рекомендуем" />
и вместо fetured.png ставить картинку любую. ну и текст менять


обновил первый топик


Источник



Copyright ShopOS