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

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

Рубрика: Веб-разработка

Комментарии

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

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

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

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

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