Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6

#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
GoodRoot писал(а):
Можно заодно по коду научиться внедрению своих модулей.
Посмотрел сейчас на код, спустя полгода. Не, не стоит по этому коду чему-то учиться. Говно. Сейчас бы я уже написал по-другому.

GoodRoot писал(а):
Может еще какие-нибудь супер плюшки есть? Ну помимо тех, что на bitbucket
Есть, конечно, но в публичном доступе только то что на bb. Потому что в основном это наработки от разных проектов, а чтобы их выложить публично нужно из них сделать общее решение, привести код к штатным шаблонам и библиотекам системы, протестировать, написать комментариев в коде и инструкцию по установке. Некогда всем этим заниматься.
Заказов не беру. Консультирую редко.
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
сортировка по рендому не работает почему, то
всегда одни и те же 12 товаров в одном и том же положении
и еще заметила, что выводятся активные товар из неактивных групп!!!!
вот код:

<?php
/** Показ популярных товаров - начало **/
if (Core::moduleIsActive('shop'))
{
   // XSL-шаблон для отображения последних просмотренных товаров
   $shop_specials_xsl_name = 'МагазинКаталогТоваровСамыеПопулярные';

   // макс. число выводимых товаров - впишите свое значение
   $items_to_show = 12;

   $shop_id = 1;

   $oShop = Core_Entity::factory('Shop', $shop_id);

   $oShop_Controller_Show_Popular_Items = Shop_Controller_Show_Popular_Items::instance($oShop);

   $oShop_Controller_Show_Popular_Items
      ->limit($items_to_show) // макс. количество выводимых товаров [по умолчанию 5]
      ->selection_method('shows') // метод отбора - на основании заказов или на основании просмотров. Значения: orders (на основании заказов) и shows (на основании показов) [orders]
      ->only_paid_orders(TRUE) // при отборе на основании заказов, учитывать только оплаченные заказы [TRUE]
      ->count_method('orders_and_count') // метод подсчета популярности товара в заказах: only_orders (только число заказов с этим товаром) или orders_and_count (с учетом кол-ва в каждом заказе) [orders_and_count]
      ->show_parent_items_instead_modifications(TRUE) // TRUE - показывать родительские товары вместо модификаций; FALSE - сами модификации. [TRUE]
      ->exclude_out_of_rest_items(TRUE) // TRUE - запрещает показывать товары, которых нет в наличии; FALSE - разрешает. [TRUE]
      ->is_random(TRUE) // сортировка: TRUE - в случайном порядке; FALSE - по уменьшению популярности [TRUE]
      ->cache(TRUE) // TRUE - разрешает использовать кеширование; FALSE - запрещает. [TRUE]
      ->xsl(Core_Entity::factory('Xsl')->getByName($shop_specials_xsl_name))
      ->show();
}
/** Показ популярных товаров - конец **/

?>
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
Puma писал(а):
сортировка по рендому не работает почему, то
всегда одни и те же 12 товаров в одном и том же положении

Все правильно, читайте внимательно инструкцию на wiki
Цитата:
Настройка отображения последних товаров

У контроллера Shop_Controller_Show_Last_Items предусмотрены следующие настройки:
  • ...
  • selection_method - метод отбора - на основании заказов или на основании просмотров. Значения: orders (на основании заказов) и shows (на основании показов) [orders]

Если в методе отбора selection_method выставлено значение orders (на основании заказов), то становятся доступными еще 5 настроек:
  • ...
  • is_random - сортировка: TRUE - в случайном порядке; FALSE - по уменьшению популярности [TRUE]


Отсюда очевидно, что случайная сортировка работает только для метода отбора orders, у вас же указан метод shows.

Puma писал(а):
и еще заметила, что выводятся активные товар из неактивных групп!!!!

Контроль активности групп в текущей реализации не предусмотрен. Отключайте сами товары а не группы.
Заказов не беру. Консультирую редко.
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
я читала инструкцию
просто подумала что тут ошибка и не 5 свойств, а 4
про сортировку не подумала что она только для одного из вариантов

поставила щас Заказы вместо Просмотров
вроде есть сменяется иногда
но такой вопрос: минимально есть тоже какое то ограничение, чтоб в эту выборку попасть?!?
а то у меня почему то щас 3 товара только показывает, хотя ограничено 12-тью
магазин новый, в заказах есть и другие товары, даж тестовый заказ сделала
но товар из него тоже не отобразился!!

попробовала поставить в настройки "only_orders" вместо "orders_and_count" и сразу на сайте ошибка:
Exception: Query error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'shop_order_items\``.`\`shop_item_id\``) AS `cnt` FROM `shop_order_items` WHERE' at line 2. Query: SELECT `shop_order_items`.*, COUNT(`\`shop_order_items\``.`\`shop_item_id\``) AS `cnt` FROM `shop_order_items` WHERE `shop_order_items`.`shop_order_id` IN ('71', '70', '69', '68', '67', '66', '65', '64', '63', '62', '61', '60', '59', '58', '57', '56') AND `shop_order_items`.`shop_item_id` > 0 AND `shop_order_items`.`deleted` = 0 GROUP BY `shop_order_items`.`shop_item_id` ORDER BY `cnt` DESC
29 modules/core/exception.php
635 modules/core/database/mysql.php
62 modules/core/querybuilder/statement.php
472 modules/core/orm.php
375 modules/core/entity.php
304 modules/shop/controller/show/popular/items.php
487 modules/shop/controller/show/popular/items.php
65 templates/template7/template.htm
83 modules/template/model.php
100 modules/core/page.php
171 templates/template1/template.htm
83 modules/template/model.php
100 modules/core/page.php
363 modules/core/command/controller/default.php
188 modules/core/router/route.php
205 index.php `

Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
Puma писал(а):
но такой вопрос: минимально есть тоже какое то ограничение, чтоб в эту выборку попасть?!?
Нет, нету. В выборку попадают все те товары, которые соответствуют условиям. Никаких других ограничений, кроме задаваемых через параметры контроллера - нет.

Puma писал(а):
а то у меня почему то щас 3 товара только показывает, хотя ограничено 12-тью
Значит, текущему набору условий удовлетворяют только три товара.

Puma писал(а):
магазин новый, в заказах есть и другие товары, даж тестовый заказ сделала
но товар из него тоже не отобразился!!
А вы этот заказ оплатили? У вас в коде указано значение true для параметра only_paid_orders:
->only_paid_orders(TRUE)
это значит, что пока вы не включите для этого заказа лампочку "Оплачен" товары из него в выборку не попадут.
Если хотите, чтобы в выборку попадали товары в том числе и из неоплаченных заказов, установите для этого параметра значение false.

Puma писал(а):
попробовала поставить в настройки "only_orders" вместо "orders_and_count" и сразу на сайте ошибка:
Судя по всему, за год, прошедший с момента написания этого кода, немного изменилась работа с sql-выражениями. Закоммитил небольшую правку и выложил ее в репозиторий. Скачайте по ссылке из первого поста свежую версию кода и замените файл modules/shop/controller/show/popular/items.php
Если не поможет - стучитесь в аську с доступами, будем разбираться на месте.
Заказов не беру. Консультирую редко.
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
файл обновила
теперь ошибок не выдает


FALSE в проверку на оплату я конечно догадалось поставить

а с товарами, которые попадают в выборку я так и не поняла:
с методом only_orders отображались опять те три товара

а включила опять orders_and_count и появился товар из тестового заказа теперь 4-ым

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

Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
Puma писал(а):
че то все таки неверно...я вон  щас смотрю еще два заказа появились уже за  вечер
а товары из них явно тут не вывелись...
Надо смотреть на месте, с доступами в админку, к ftp и pma.

Кстати, если у вас коммерческая редакция то может влиять параметр cache(true).
Заказов не беру. Консультирую редко.
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
Kotoff,
отправила доступы вам на почту
Email: golden-puma@yandex.ru; Skype: golden_puma; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
Puma, посмотрел. Нашел ошибку для отображения нескольких товаров с одинаковым рейтингом. Постараюсь завтра поправить.
Заказов не беру. Консультирую редко.
#
Re: Отображение списка популярных товаров в интернет-магазинах на HostCMS v.6
Puma, ошибка исправлена, код в репозитарии и на вашем сайте обновлен.
Спасибо за багрепорт )
Заказов не беру. Консультирую редко.
Авторизация