Такие отчеты может обеспечить только подсистема вашего магазина. Либо модуль, либо ваш собственный набор запросов к базе. Универсальное решение вряд ли возможно, т.к. каждая система онлайн-торговли хранит данные по-своему. И у вас каждый раз, как мне кажется, будут всё новые и новые требования к отчётам, поэтому прямой путь вам разве что сохранению в базе нужных недостающих значений о поведении пользователей и последующим их извлечении в нужном виде (отчеты)
А вот еще подскажите: есть ли смысл делать из объектов экземпляры классов? Имеется ввиду, чтобы вместо $factory->get_rur_price($item->usd_price); делать так: $item->get_rur_price();
Тем, что слишком много логики ложится на модель. Кроме того, задачу, например, конвертации валюты и начисления скидок (уже контекст пользователя вообще) на стороне SQL решать нелогично.
Нет конечно. Последние 20 или для рубрики или для главной. Лимиты присутствуют. Фильтры — в смысле для значений (обрезать title, сконвертировать валюту и т.д.)