Opencart. Удаление пустых (незаполненных) товаров из поиска по товару

Opencart. Удаление пустых (незаполненных) товаров из поиска по товару — столкнулся на практике с такой проблемой, в БД появлялись пустые карточки товара (номенклатуры) без наименования. Периодически сбоит синхронизация БД с CRM-системой, к которой у меня нет доступа. И, так как я не могу почистить БД или исправить саму синхронизацию, нужно было что-то придумывать.

Решение проблемы:

В контроллере /catalog/controller/product/search.php ищем следующие строки:

foreach ($results as $result) {

После данного кода вставляем всего 1 строку, решение очень простое, фильтруем товар по заполненности id товара:

if(!isset($result['product_id'])) continue; 

Вот и все, проблема решена!

Бывает, что проблема возникает в других местах сайта (каталоге или сопутствующих товарах) — в таких ситуациях смотрите контроллер данной части сайта (где возникает такая же ошибка) и подобным образом добавляем проверку на id.

Таким же образом, можно убрать товары без изображений или товары с пустыми именами — вместо product_id, вставляйте любое нужное Вам значение из массива $data[‘products’] thumb или name — и т.д.

Бывает, что причина появления данных карточек возникает по вине сторонних модификаций, например, Brainy Filter — в таком случае, данное решение не поможет и нужно будет смотреть файлы самого плагина. Похожая ситуация, когда «Умный Фильтр» мешал отображению товаров в каталоге и решение возникшей проблемы описаны в данной статье.

Протестировано на OcStore 2.3

Дата создания статьи: 14.08.2022

Поделиться статьей:
Share on vk
Share on telegram
Share on odnoklassniki
Share on reddit
Share on pinterest
Share on tumblr
Share on email

Оставьте Ваше сообщение

Комментарии

Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии

Ознакомьтесь с другими работами

Смотрите далее

0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x
()
x