2013-09-10 3 views
0

Я бы хотел сортировать товары в категории по популярности (популярность означает просмотр страниц). Чтобы реализовать это, я создал атрибут (page_view), который я увеличиваю на странице сведений о продукте и использую этот атрибут для сортировки продуктов в категории. Все работает нормально с точки зрения функциональности, но с точки зрения производительности это не решение, поскольку из-за увеличения и экономии стоимости продукта слишком много. Для загрузки страницы с информацией о товаре потребовалось около 5 секунд, а без нее - около 0,9. Я попытался поместить этот код приращения в очень глубокую систему, но в любом случае убьет производительность. У кого-нибудь есть такие проблемы? И, возможно, есть предложения, как реализовать такие вещи. Заранее спасибо. Любое техническое глубокое объяснение того, как/почему это происходит, очень приветствуется. Я знаю, что это атрибут и $ product-> save(); влияют на множество продуктов, но в любом случае не могут объяснить, почему так много.Magento сортировать товары в категории по просмотрам страниц

ответ

0

Вы должны быть уверены, что ваш атрибут является частью плоской таблицы catalog_product, поэтому вам не нужно присоединяться к EAV-таблицам для выполнения этой операции сортировки.

+0

Привет, Тобиас, Спасибо за ваш ответ. Он уже находится в плоском столе, поскольку он используется для сортировки продуктов в категории. – Plootor

0

К сожалению, я собираюсь ответить на вопрос, связанный со своим собственным вопросом, после того, как нашел ответ сам, надеюсь, что это когда-нибудь поможет кому-то. Проблема в том, что $ product-> save() является злом. Это очень медленная работа, поскольку она обновляет большое количество таблиц, и поэтому это заняло несколько секунд. Вместо этого я использовал функцию saveAttribure(), которая, кажется, быстрее, поскольку она делает меньше работы на фоне. Итак, подумайте, что «спасительная» функция продукта зла.

Смежные вопросы