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


Блок "Самые продаваемые товары"


  • Вы не можете ответить в тему
Сообщений в теме: 32

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 17 July 2012 - 07:46 PM

Это блок. Т.е. надо сохранить в файл, обозвать как-нибудь типа best_sales.tpl.html и скопировать в /core/tpl/user/[шаблон]/blocks, затем подключить в админке в разделе "Управление блоками" как "Подключить блок из файла".

Блок показывает наиболее популярные товары исходя из содержимого заказов. Вне категорий - для всех категорий. Внутри какой-либо категории - для этой категории и дочерних.

Можно задать:
- тип заказа (какие учитывать - включая даже заказы со статусом "Новый" или только действительно проданное, т.е. заказы со статусом "Доставлено"). По умолчанию - все. Правильнее - пять :).
- за какое количество дней собирать статистику по заказам. По умолчанию - неделя.
- какое количество наиболее продаваемых товаров показывать. По умолчанию - пять.

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


{php}
$statusID = 2; # берутся заказы со статусом 2 и выше (2-Новый,...,5-Доставлен)
$olderday = 7; # берутся заказы за последние семь дней
$prodnum = 5; # берутся пять товаров наибольших по количеству продаж

function BestSalesRecursiveCat($catID,$arrayID=array()) {
$data = db_query("SELECT categoryID FROM ".CATEGORIES_TABLE." WHERE parent=".$catID);
while ($row = db_fetch_assoc($data)) $arrayID = BestSalesRecursiveCat($row['categoryID'],$arrayID);
$arrayID[]=$catID;
return $arrayID; }

$categoryID = $this->get_template_vars('categoryID');
$addon = isset($categoryID)?"AND p.categoryID IN (".implode(",",BestSalesRecursiveCat($categoryID)).")":"";
$data = mysql_query("
SELECT count(*) AS count, p.name, p.productID FROM ".DB_PRFX."orders AS o
LEFT JOIN ".DB_PRFX."ordered_carts AS oc USING (orderID)
LEFT JOIN ".DB_PRFX."products AS p ON p.product_code=mid(oc.name,2,locate(']',oc.name)-2)
WHERE o.statusID>=$statusID AND o.order_time + INTERVAL $olderday DAY > NOW() $addon
GROUP BY oc.name
ORDER BY count DESC
LIMIT $prodnum
");
while ($row = mysql_fetch_assoc($data)) $r[] = $row;
$this->assign("best_sales", $r);
{/php}

<table width="100%">
<tbody><tr><td>
{section name=i loop=$best_sales}
<div align="left"><a href="product_{$best_sales[i].productID}.html">{$best_sales[i].name}</a>
<div align="right"><b>{$best_sales[i].count}</b></div>
<hr>
</div>
{sectionelse}
<div align="center">За последнюю неделю не продано ни одного товара в этой категории</div>
{/section}
</td></tr></tbody>
</table>


PS. У меня нет интернет-продаж, просто модуль показался интересным. Т.е. проверялось-тестировалось оно на нескольких от балды созданных тестовых заказах и разумная критика/пожелания от действительно использующих интернет-продажи приветствуется.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 19 July 2012 - 03:05 PM

Исправил ошибку, из-за которой не работало.
Посмотреть, как это выглядит можно как всегда тут
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 20 July 2012 - 07:17 PM

Наверное, логичнее обозвать этот блок "самые популярные товары". А вообще сэры, проверять-то будем? Столько стонов было про этот блок - вот он написан. Халява. Бесплатно. И чо? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 jikonast

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 63 сообщений
Репутация: 0
Начинающий
  • ГородМинск

Отправлено 06 August 2012 - 03:30 PM

есть такой вопрос, а если товар не продается на сайте, а весь магазин используется как ветрина. можно ли сделать вывод товаров только на главную страцу, и только тех товаров которые чаще всего посещаются ? т.е. зависят от популярности ?
Буду ждать ответа!
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 August 2012 - 04:16 PM

можно ли сделать вывод товаров только на главную страницу,

Не понял, что имеется в виду.

и только тех товаров которые чаще всего посещаются ? т.е. зависят от популярности ?

Это совершенно без проблем.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 jikonast

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 63 сообщений
Репутация: 0
Начинающий
  • ГородМинск

Отправлено 06 August 2012 - 05:35 PM

У меня проблема такого хорактера! у меня на первой странице моего сайта выводиться только новости!
А хочу чтобы выводились товары (самые популярные), и хочу, чтобы этот блок, больше нигде не отображался.
в четыре строки, по три тавара... Если знаете как сделать. подскажите, как что настроить... или же можно применить этот же блок, только что надо поменять !)
зарание спасибо !
  • 0

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 August 2012 - 06:28 PM

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

С таким русским языком - в коммерческий раздел. Забесплатно я даже пытаться понять не буду эту неграмотную тарабарщину.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2012 - 11:44 AM

Так а чем это не спец-предложения

Я на указанном сайте не смог понять, что же это за товары на главной. Спецпредложения? Самые продаваемые? Самые посещаемые? Содержащие слово "комплект" в названии? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#9 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2012 - 11:56 AM

И к данной теме - да, вообще не относится

В соседней теме есть практически то, что нужно (в зависимости от SELECT bla-bla-bla получаем нужный набор товаров в блоке), но даже боюсь оппоненту об этом наменуть :).

Ты что рассист? )))))))))) он беларус.... видишь же Минск... так что не гневайся на его русский.

Я впервые слышу, что в белорусском языке правила расстановки знаков препинания настолько отличаются от русского.
Да и причем тут расист? Хоть беларус, хоть афроамериканец, но зачем я буду пытаться читать то, что нечитаемо? :)
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#10 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2012 - 07:00 PM

меня на первой странице моего сайта выводиться только новости! А хочу чтобы выводились товары (самые популярные), и хочу, чтобы этот блок, больше нигде не отображался. в четыре строки, по три тавара...

Хех... Я таки это прочитал и, возможно, даже правильно понял.

Вам надо взять вчера выложенный Блок "Самые просматриваемые товары" (только не первый, для бокового столбца, а второй, который для расположения по центру), добавить его в админке и задать, чтобы этот блок показывался только на выбранных страницах, а в списке выбранных выбрать только главную. Только количество товаров (LIMIT 6) надо заменить на 14 (четыре-по-три). Товары в этом блоке показываются во столько же колонок, сколько задано в "общих настройках" для количества столбцов в категориях.

Если что-то не понятно или не получается - я весь из себя капитан Коммерция-и-Продажность :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#11 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 07 August 2012 - 07:30 PM

надо заменить на 14 (четыре-по-три)

видимо должно быть 12
  • 0
Изображение Изображение Изображение

#12 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 07 August 2012 - 07:33 PM

видимо должно быть 12

Да, ошибка :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#13 jikonast

    Продвинутый пользователь

  • Download User
  • PipPipPip
  • 63 сообщений
Репутация: 0
Начинающий
  • ГородМинск

Отправлено 08 August 2012 - 03:54 PM

Хочу чтобы выводился товар, только по популярности. и на главной странице, как отдельный блок!
  • 0

#14 eugene_wb

    Продвинутый пользователь

  • Модераторы
  • 827 сообщений
Репутация: 167
Мастер

Отправлено 08 August 2012 - 03:58 PM

Хочу чтобы выводился товар, только по популярности. и на главной странице, как отдельный блок!


по щучьему велению по моему хотению, первый пост темы превращается.... а во что собтсвенно он превращается, наверно в отдельный блок, который нужно ручками разместить на главной странице
  • 0
Изображение Изображение Изображение

#15 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 08 August 2012 - 07:50 PM

первый пост темы превращается.... а во что собтсвенно он превращается

Да не надо первый пост ни во что превращать :). Он уже превращен в теме Блок "Самые просматриваемые товары". Именно в то, что требуется человеку, который с какого-то бодунища для задания вопросов выбрал именно эту тему, которая про боковой блок "самые ПРОДАВАЕМЫЕ товары.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#16 mx009

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 0
Начинающий

Отправлено 18 August 2012 - 12:29 PM

Поставил вчера данный блок.

В 30% категорий работает в 70% нет ((
Очень странно.
Может кто подскажет, в чем может быть дело?

Спасибо
  • 0

#17 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 August 2012 - 12:59 PM

В 30% категорий работает в 70% нет (( Очень странно.

На такую диагностику можно дать только не менее четкий и развернутый ответ: "Видимо, что-то не так!" :).
Что такое "не работает"? Телепатов нет.

PS. может, в тех 70% процентов категорий, где "не работает" просто нет ни одного товара, который бы находился в заказах, удовлетворяющих условиям

$statusID = 2; # берутся заказы со статусом 2 и выше (2-Новый,...,5-Доставлен)
$olderday = 7; # берутся заказы за последние семь дней


PPS. может, Вы были невнимательны и не заметили в описании блока фразу "Блок показывает наиболее популярные товары исходя из содержимого заказов. Вне категорий - для всех категорий. Внутри какой-либо категории - для этой категории и дочерних."
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#18 mx009

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 0
Начинающий

Отправлено 18 August 2012 - 01:39 PM

Badisoft сорри - дам более развернутую информацию:

Я понял что за счет рекурсии выводятся товары текущей категории и всех ее дочерних категорий (подкатегорий).
У меня в каталоге 10 категорий первого уровня (parent=1).
В каждой категории первого уровня есть категории 2го и 3го уровней. Не более.

Я ковыряюсь на openserver поэтому для наглядности решил полностью очистить таблицу ordered_carts!

Делаю покупки в разных категориях 2го и 3го уровней так что бы эти покупки затронули все категории первого уровня.
(В категории 1го уровня у меня товаров нету).

Так вот жму поочередно на все категории 1го уровня. Где то модуль отображает покупки,а где то НЕТ!
Перехожу в категорию 2го уровня - опаньки товар появляется. Жму опять на основную категорию - товара опять нету.

Думал что проблема с заполнением переменных categoryID и addon. Вывожу их не экран через ECHO. Все ОК!
Всем переменным присвоены значения.
В переменной addon в списке дочерних categoryID (через запятую) номер подкатегории где фактически была продажа присутствует.
  • 0

#19 mx009

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 54 сообщений
Репутация: 0
Начинающий

Отправлено 21 August 2012 - 06:53 AM

Попробовал на другом хостинге. Вроде все заработало, но в списке товаров только один товар повторяющийся 5 раз !

Ставлю в переменную отвечающую за кол-во выводимых товаров 12. Опять выдает в начале 5 раз один и тот же товар , остальные 7 уже разные.
Вот такая непонятка...
  • 0

#20 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 21 August 2012 - 10:11 AM

Вот такая непонятка...

Не исключено, что виной кусок кода

LEFT JOIN ".DB_PRFX."products AS p ON p.product_code=mid(oc.name,2,locate(']',oc.name)-2)

где связь между записями в таблицах ordered_carts (строки с товаром в заказе) и products осуществляется по текстовой строке, содержащей код товара в виде "[код_товара] название товара". Способ несколько извращенный, но я не нашел более внятного способа для связи этих двух таблиц, т.е. для привязки записи в заказе к товару. Если эта строка выглядит не так, как в дефолтовом шаблоне, то варианты связи могут быть самыми разнообразными :).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)