COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Как скрыть товары которых Нет в наличии, но чтобы были доступны по ссылке?


Recommended Posts

Интересует следующее, как скрыть товары во всех модулях и везде, которых нет в наличии, т.е. у которых кол-во стоит 0. 

Но чтобы товар открывался по своей полной ссылке, чтобы не вылетел из индекса поисковика. 

 

Например товар закончился, и он везде скрывался на сайте, но если на него зайти по по ссылке, то открывалось и показывалось что нет в наличии. 

 

Сейчас же, показываются все товары которые в наличии и которых нет в наличии. Так же товары которых нет в наличии, учавствуют в модулях, например модуль Акции, Рекомендуемые, Наиболее просматриваемые и тд тп.

 

Ссылка на комментарий
Поделиться на других сайтах

Например, в категориях, подключается модель (запрос в БД) так:
$results = $this->model_catalog_product->getProducts($filter_data);

Смотрим запрос этот:

В нём находим условие отвечающее за показ товара, когда статус включён:

  Показать содержимое


Заменяем на наш код с условием при котором он не показывается, в нашем случае выводить, когда статус "включён" и не ровняется статусу "нет в наличии".

  Показать содержимое

 

Ссылка на комментарий
Поделиться на других сайтах

  В 18.10.2017 at 20:24, BuslikDrev сказал:

Например, в категориях, подключается модель (запрос в БД) так:
$results = $this->model_catalog_product->getProducts($filter_data);

Смотрим запрос этот:

В нём находим условие отвечающее за показ товара, когда статус включён:

  Показать содержимое


Заменяем на наш код с условием при котором он не показывается, в нашем случае выводить, когда статус "включён" и не ровняется статусу "нет в наличии".

  Показать содержимое

 

Expand  

 

А где именно смотреть это? 

В каком файле?

 

Сделал поиск по файлам, и нашёл данный параметр в 17 файлах. Специально их пронумеровал. 

Если кое где делать замену, то да, как раз товары перестают показывать и всё как надо работает. 

 

НО вот надо ли во всех файлах делать замену? Просто может какие то файлы отвечают за отображение товаров в админке или ещё где, и они перестанут показываться там где надо.

 

Не могли бы подсказать, в каких именно файлах сделать замену, я для удобства их пронумеровал.

  Показать содержимое

 

Ссылка на комментарий
Поделиться на других сайтах

  В 19.10.2017 at 14:21, BuslikDrev сказал:

Товар и (или) новости в блоге

1 - catalog\model\blog\article.php

2 - catalog\model\blog\review.php

 

Весь товар

catalog\model\catalog\product.php

 

Товар одного модуля

catalog\model\extension\module\bestsellerpercategory.php

Expand  

 

Заработало. Огромное Вам спасибо. На форуме как будто только вы отвечаете. 

 

На самом деле, теперь всё работает.

 

Немного поспешил. Да, товары скрылись, но теперь если перейти на товар, написано что данный товар не найден, а должна показаться страница товара, и что просто его нет в наличии. https://yadi.sk/i/mdDjTkZ13Nu5YA

Ссылка на комментарий
Поделиться на других сайтах

  В 19.10.2017 at 15:20, Григорий сказал:

 

Немного поспешил. Да, товары скрылись, но теперь если перейти на товар, написано что данный товар не найден, а должна показаться страница товара, и что просто его нет в наличии. https://yadi.sk/i/mdDjTkZ13Nu5YA

Expand  

заменять кроме запроса в     public function getProduct($product_id) {
catalog\model\catalog\product.php

Ссылка на комментарий
Поделиться на других сайтах

Я знаете как сделал, я сделал всё автозаменой, и заменил все значения AND p.status = '1' на AND p.status = '1' AND p.stock_status_id != '5' , в этих файлах:

Товар и (или) новости в блоге

1 - catalog\model\blog\article.php

2 - catalog\model\blog\review.php

 

Весь товар

catalog\model\catalog\product.php

 

Товар одного модуля

catalog\model\extension\module\bestsellerpercategory.php

 

Может надо сделать замену только в определённых местах.

 

  В 19.10.2017 at 15:21, BuslikDrev сказал:

заменять кроме запроса в     public function getProduct($product_id) {
catalog\model\catalog\product.php

Expand  

 

Вот теперь всё заработало.  И товары не показываются которых нет в наличии, и доступны по ссылке прямой! Огромное Вам спасибо!!!

Ссылка на комментарий
Поделиться на других сайтах

  В 19.10.2017 at 15:31, AWARO сказал:
Expand  

Ну я вот лично не видел, ищу смотрю читаю, и вот мне помог способ который выше. 

Данный файл который вы скинули, каким образом его устанавливать. 

У меня версия opencart_pro_2_3_0_2_3 , способ который выше работает для этой версии. 

То что вы скинули он для каких версий подходит?

Не знаю что случилось, последнее что сделал это замену как написал выше. 

И теперь сайт упал: 500 ошибка.

В логах:

  Показать содержимое

Связанно ли это как то с этими изменениями? 

Я вообще ничего не делал, всё работало и теперь такая ошибка. 

 

Нашёл, это из за изменений в файле - catalog\model\blog\article.php

Теперь вопрос, надо ли в этом файле что либо менять?

  Показать содержимое

Нашёл, это из за изменений в файле - catalog\model\blog\article.php

Теперь вопрос, надо ли в этом файле что либо менять?

  Показать содержимое

 

Картинки, логи и код убирайте под спойлер!

Ссылка на комментарий
Поделиться на других сайтах

  В 19.10.2017 at 15:35, Григорий сказал:

Ну я вот лично не видел, ищу смотрю читаю, и вот мне помог способ который выше. 

Данный файл который вы скинули, каким образом его устанавливать. 

У меня версия opencart_pro_2_3_0_2_3 , способ который выше работает для этой версии. 

То что вы скинули он для каких версий подходит?

Expand  

Ну естественно не видели, он у меня ж валяется) себе делал.
устанавливать через установку дополнений
если не зарабботает всегда можно вырубить

Ссылка на комментарий
Поделиться на других сайтах

  В 19.10.2017 at 15:31, AWARO сказал:

 

давно валяется

но по статусу  с id9 меняете на свой и кайф

hyper_status.ocmod.xmlFetching info...

Expand  

 

Объясните пожалуйста, как этим пользоваться, к примеру Статус есть в налчии у меня - 7, а статус Нет в наличии у меня - 5, что мне надо заменить в этом файле? 

 

Правильно ли я понял, что этот файл нужен чтобы скрыть товары которых нет в наличии? И что они не будут использоваться в модулях? 

Ссылка на комментарий
Поделиться на других сайтах

  В 01.11.2017 at 09:31, Григорий сказал:

 

Объясните пожалуйста, как этим пользоваться, к примеру Статус есть в налчии у меня - 7, а статус Нет в наличии у меня - 5, что мне надо заменить в этом файле? 

 

Правильно ли я понял, что этот файл нужен чтобы скрыть товары которых нет в наличии? И что они не будут использоваться в модулях? 

Expand  

при создании доп статуса например: Снят с производства - 9 и если = 0
 

Ссылка на комментарий
Поделиться на других сайтах

а можно еще пару вопросов для непонятливых))

  1. менять статус нужно в файле до установки?
  2. Товары скрываются и в категориях? хотелось бы скрыть только в модулях рекомендуемое, новинки, хиты продаж.....
Ссылка на комментарий
Поделиться на других сайтах

  В 14.11.2017 at 07:53, mmmtrade сказал:

а можно еще пару вопросов для непонятливых))

  1. менять статус нужно в файле до установки?
  2. Товары скрываются и в категориях? хотелось бы скрыть только в модулях рекомендуемое, новинки, хиты продаж.....
Expand  

В рекомендуемых и в модулях в которых выводятся товары подобным образом не скрыть.
Статус естественно id = статусу вашего id.
если устанавливаете через встроенную установку то id нужно сменить на ваш
если просто заливаете в папку system то там править легче вообще любые модификаторы

Ссылка на комментарий
Поделиться на других сайтах

  • 3 years later...
  В 19.10.2017 at 15:21, BuslikDrev сказал:

заменять кроме запроса в     public function getProduct($product_id) {
catalog\model\catalog\product.php

Expand  

Здравствуйте, появилась аналогичная задача. Пробую сделать по вашей инструкции:

 

в файлах

1 - catalog\model\blog\article.php

2 - catalog\model\blog\review.php

заменил AND p.status = '1' на AND p.status = '1' AND p.stock_status_id != '5'

 

в файле 

3 - catalog\model\catalog\product.php

заменил AND p.status = '1' на AND p.status = '1' AND p.stock_status_id != '5' кроме public function getProduct($product_id)

 

Но после внесения изменений ВСЕ карточки товаров (и в наличии и нет в наличии) перестают открываться - 500 ошибка (скрин в прил).

А на странице категории - всё нормально, отображаются товары которые есть в наличии, а которых нет в наличии не отображаются.

 

Версия ocStore 3.0.2.0

Просьба помочь в решении задачи.

 

  Показать содержимое

 

 

  Показать содержимое

 

product.phpFetching info... article.phpFetching info... review.phpFetching info...

 

Картинки, логи и код прячем под спойлер!

Изменено пользователем WarStyle
Ссылка на комментарий
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу