Страница 1 из 1

Выключенные товары

Добавлено: 15.03.2023, 18:21
wolf
Как реализовать, чтобы не создавалась 404 страница, когда в админпанели активность товара переводилась в статус "Выключенные товары"?
Необходимо, чтобы url товара в статус "Выключенного товара" был рабочим (товар по прямой ссылке в браузере по прежнему выводился), но при этом в поиске на сайте по названию, артикулу и т.д. товар не отображался.

Добавлено: 16.03.2023, 05:01
korshunov
Пробуйте в Okay/Helpers/ProductsHelper.php

вместо

public function setProduct($product)
{
if (empty($product) || (!$product->visible && empty($_SESSION['admin']))) {

написать

public function setProduct($product)
{
if (empty($product)) {

Добавлено: 16.03.2023, 09:02
wolf
Спасибо! Как раз то, что нужно! )
Теперь в таком виде функция "Выключенные товары" работает логично и - очень полезна!!!
Суть в чем. В первоначальном виде этой функции - если товар переводится в категорию "Выключенные товары", он скрывается в категории товаров, в поиске по сайту и, что самое неприятное - url товара становится 404 ошибкой. И вот именно это очень и очень плохо!!!!
Вопрос к разработчикам: "какой смысл модуля "Выключенные товары" в том виде, каким он Вами реализован???" Если товара нет и его уже не будет, тогда его просто удаляем. А вот если товара нет на складе временно (по разным причинам - сезонный товар, ....) и он в будущем появится в ассортименте магазина, его желательно скрыть в каталоге товаров и убрать из поиска на сайте (чтобы лишний раз не мозолить глаза покупателям сотнями отсутствующих товаров в огромном списке). Но при этом, чтобы url - не стал 404 ошибкой и Поисковый робот Гугл на следующий день (по иронии судьбы) просканировал сайт и не выбросил его из списка проиндексированных страниц. А если данный url имеет высокий показатель ранжирования и в органическом поиске Гугл он появляется на самой верхней позиции (в ТОП 1-5)??? !!!!! И вот, начался сезон для этих товаров, вы включаете товары на сайте, но все url этих товаров уже выпали из категории проиндексированных Гугл и их больше нет в органической выдаче!!! Какой ужас!!! Теперь только реклама.
Да, Гугл проиндексирует опять эти страницы, а может и не успеет за сезон (по иронии судьбы до 90 дней может пройти), и Вы опять отключите товары по завершении сезона. Их Гугл так и не проиндексирует.....
Теперь же имеем очень полезную функцию "Выключенные товары", которая избавит владельца магазина от возникновения таких ситуаций.
Еще раз, korshunov, спасибо Вам за помощь!!!

Добавлено спустя 5 часов 24 минуты:
Если кому понадобится, реализация данного функционала на старой версии OkayCMS:

в view/ProductView.php

заменить

$product = $this->products->get_product((string)$product_url);
if(empty($product) || (!$product->visible && empty($_SESSION['admin']))) {
return false;
}

на

$product = $this->products->get_product((string)$product_url);
if (empty($product)) {
return false;
}