Jump to content

Скрыть товары, если их количество 0 шт [support]


specialforce22
 Share

Go to solution Solved by specialforce22,

Recommended Posts

  • Solution

Скрыть товары, если их количество 0 шт

Товар закончился?

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

SEO friendly - ссылки в поисковых системах не бьются, поведенческий фактор генерится!

Модификатор поможет скрыть товар в категориях, на странице поиска сайта, в производителях и модуле "Рекомендуемых".

Чтобы скрывать в модуле "Рекомендуемые", сделана отдельная функция.

 

Совместимость:

Default

Unishop2 (протестировано ver v2.8.2.1) - добавлено скрытие в модуле поиска. Обратите внимание, что в модуле 5в1 предусмотрены настройки скрытие товаров.

Остальные темы - для каталога и товаров высокая вероятность, при наличии отдельных модулей нужно смотреть.

 

 

 

Link to comment
Share on other sites

за старания плюс! :classic_smile:

только реализация подкачала, разрешите до@ться - чтобы не допускать подобных ошибок в будущем :classic_wink:

 

1. добавляемый запрос с

SELECT DISTINCT *, pd.name AS name, p.image, p.noindex AS noindex,

 

будет работать только на ocStore, где есть нестандартное поле noindex

и превратит оригинальный Opencart в тыкву

 

если это поле в выборке необходимо - нужно учитывать его наличие/отсутствие в БД

 

2. <search index='1,2,3,4,5,6,7,8,9,10'>

такое вообще нужно избегать

любой мод, вносящий правки в этот же файл - собъет всю последовательность и приведет к непредсказуемым результатам

 

3. <operation error="abort">

в свое время сам на эти грабли наступил

это в vqmod директива abort работала как нужно, т.е. при отсутствии совпадения отменяла текущий модификатор

в ocmod же, из-за неверной логики - при отсутствии совпадения прервет работу всех последующих модификаторов, а не только текущего

лучше не использовать abort вообще

Link to comment
Share on other sites

Благодарю!) Приятно внимание и полезная наука!

 

1. добавляемый запрос с
SELECT DISTINCT *, pd.name AS name, p.image, p.noindex AS noindex,
будет работать только на ocStore

 

Упс...Это да, работал в OcStore - скопировал функцию из product, для featured....Посмотреть оригинальный Opencart сочканул, получается :(

 

2. <search index='1,2,3,4,5,6,7,8,9,10'>
такое вообще нужно избегать
любой мод, вносящий правки в этот же файл - собъет всю последовательность и приведет к непредсказуемым результатам

 

 

Мне нужно было пропустить первое искомое вхождение, остальное поменять, а то товар будет скрываться и по прямой ссылке недоступен.

В документации - https://opencart.club/doc/doc-developer-ocmod/ прочел, что можно пронумеровать

 

index - указывает, в каком по порядку найденном тексте внести изменения. Т.е. если в файле искомый текст встречается несколько раз, тогда index позволяет указать номер найденного по порядку текста (0 всегда первый найденный текст, 1 - второй и т.д.) Можно также указать несколько номеров через запятую.

 

 

Тогда для пропуска первого вхождения будет ли достаточно указать и так надежней?

 

<search index="0" trim="true">

 

Спасибо)

Link to comment
Share on other sites

3 часа назад, specialforce22 сказал:

Упс...Это да, работал в OcStore - скопировал функцию из product, для featured....Посмотреть оригинальный Opencart сочканул, получается

если делать не только под себя, а универсальное и для всех - лучше сразу в тестовом окружении добавить граничные версии оригинального Opencart + наиболее популярных сборок, и проверять на них

для платных решений - в обязательном порядке

 

3 часа назад, specialforce22 сказал:

Тогда для пропуска первого вхождения будет ли достаточно указать и так надежней?

 

<search index="0" trim="true">

это как раз выберет только первое вхождение

 

можно пойти от обратного - выбрать более конкретно первое вхождение, чуть поправить его, например убрать пробел после знака =

p.status = '1' > p.status ='1'

 

а к последующим p.status = '1' применить нужный код без указания индекса

 

 

Link to comment
Share on other sites

Обновил:

1.  Улучшение совместимости

2. Разделение модификатора для сборок:

- OcStore 3 - hide-products-if-0-ocstore.3х.ocmod;

- Opencart 3 Русская Сборка / Opencart 3 Club Edition - hide-products-if-0-opencart.3х.ocmod

3. Правки недочетов

Link to comment
Share on other sites

  • 11 months later...

Отключенный товар не ищется поиском ни по названию, ни по артикулу, но прямая ссылка на него сохраняется, это хорошо.
Но вот в рекомендуемых (штатно, не unishop) товары все равно отображаются.

Link to comment
Share on other sites

В 08.01.2024 в 11:38, wcp сказал:

Отключенный товар не ищется поиском ни по названию, ни по артикулу, но прямая ссылка на него сохраняется, это хорошо.
Но вот в рекомендуемых (штатно, не unishop) товары все равно отображаются.

Я у себя в хитах продаж убрал вот так

 

в файле catalog/model/catalog/product.php

в секции public function getBestSellerProducts($limit) {

заменить 

AND p.status = '1'

на

AND p.status = '1' AND p.quantity > 0

 

Смотрите по аналогии

Link to comment
Share on other sites

В 08.01.2024 в 11:38, wcp сказал:

Но вот в рекомендуемых (штатно, не unishop) товары все равно отображаются.

 

Изначально, получается, у Вас речь шла не про штатную ситуацию.

Модуль у Вас, в результате, не Рекомендуемые, а некий модуль рандомных товаров

 

В 09.01.2024 в 15:06, wcp сказал:

У меня это в catalog/model/extension/model/random_products.php

 

В описании заявлялось

В 23.01.2023 в 22:03, specialforce22 сказал:
для каталога и товаров высокая вероятность, при наличии отдельных модулей нужно смотреть.

 

Хорошо, что разобрались!

Так, что - С Новый Годом, коллеги, а мне можно еще на работу пока не выходить)))

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

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

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...