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

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

wolf
wolf
Репутация: 3
Сообщения: 27
Зарегистрирован: 27.01.2017
С нами: 7 лет 2 месяца

Сообщение #1 wolf » 15.03.2023, 18:21

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

korshunov
korshunov
Репутация: 146
Сообщения: 1854
Зарегистрирован: 03.12.2015
С нами: 8 лет 3 месяца
Skype

Сообщение #2 korshunov » 16.03.2023, 05:01

Пробуйте в Okay/Helpers/ProductsHelper.php

вместо

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

написать

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

wolf
wolf
Репутация: 3
Сообщения: 27
Зарегистрирован: 27.01.2017
С нами: 7 лет 2 месяца

Сообщение #3 wolf » 16.03.2023, 09:02

Спасибо! Как раз то, что нужно! )
Теперь в таком виде функция "Выключенные товары" работает логично и - очень полезна!!!
Суть в чем. В первоначальном виде этой функции - если товар переводится в категорию "Выключенные товары", он скрывается в категории товаров, в поиске по сайту и, что самое неприятное - 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;
}


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 7 гостей