Контроль видимости товаров по статусу (каталог и поиск)


Здесь мы имеем класс, который расширяет Mage_Catalog_Model_Product_Status и добавляет две переменные CONST, STATUS_PENDING и STATUS_PREVIEW.

То, что я пытаюсь найти, - это логическая модель, которая решает, появится ли продукт во внешнем интерфейсе, предварительный просмотр здесь является особым случаем. Я хочу иметь возможность видеть, отображается ли продукт в зависимости от того, является ли пользователь зарегистрированным администратором, в противном случае он не будет отображаться клиентам в поиске или по прямой ссылке.

Итак, мой цель состоит в том, чтобы найти, где маршрутизатор Varien решает, виден ли продукт или его следует перенаправить на нашу страницу 404, расширить класс и добавить фильтры в запрос в зависимости от того, является ли пользователь администратором или нет (например, изменив его с STATUS_PREVIEW на STATUS_DISABLED, если пользователь не является администратором)

Также в отношении поиска по каталогу у меня сложилось впечатление, что addVisibleFilterToCollection должен был обрабатывать это в модели слоев в коллекции продуктов, однако этот метод был обесценился и в данном случае по сути бесполезен.

Как я могу контролировать это в представлении продукта и поиске по каталогу? Если бы кто-нибудь мог указать мне на правильные модели/методы для решения этой проблемы, я был бы очень признателен, я занимался этим в течение нескольких часов, пытаясь разобраться в этом самостоятельно.

Author: DWils, 2013-07-19

1 answers

Вы можете использовать событие catalog_controller_product_init для проверки статуса продукта и перенаправления на 404, если ваше условие не выполняется. Это поможет для страницы просмотра продукта.

Функция Addvisiblefiltertocollection также выполняет функцию поиска по каталогу.

 2
Author: Bijal Bhavsar, 2013-07-19 06:14:38