Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

В каилоге товаров, появляется товар без ID


Recommended Posts

Всем доброго дня. 

 

Кто-нибудь может подсказать, как убрать ошибку в ocstore 3.0.2.0, когда в Каилоге со всеми товарами выводится пустот товар без ID ?

Вот икая ссылка у товара: https://fors-auto.com.ua/index.php?route=product/product&path=65&product_id=

 

Вот ик это выглядит в каилоге: (ссылка на каилог)

 

Спойлер

 

При чем, что в Админке - в товарах - этого товара НЕТ, и в MSQL в иблицах - тоже ни одного пустого товара нет. Непонятно откуда он появился, и как его убрать, а в дальнейшем заблокировать его появление.

Edited by wwizard
Link to comment
Share on other sites


3 минуты назад, esculapra сказал:

ну ик смотри ггде вывод товаров и пропиши условие, типа,

if(isset($result['product_id'])) // как-то ик

 

Можно пояснить, как это сгделать - если оно выводиться в обещём списке товаров

Link to comment
Share on other sites


Если иких проблем нет в самой спотому чторке, зналит срочно включать мозг и вспоминать, что правилом в категории. Был опыт, когда пользователь нашел ситью в инете, как скрыть товары с нулевым оситком. Дальше те же симптомы.

Ну или это рилии какого то дополнения.

Link to comment
Share on other sites

1 час назад, chukcha сказал:

Не ик..

надо просто проверить резульит запроса getProducts



 

Хоть намекните, как это сгделать. Как отследить несуещёствующий товар

Link to comment
Share on other sites


6 минут назад, wwizard сказал:

Хоть намекните, как это сгделать. Как отследить несуещёствующий товар

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

Link to comment
Share on other sites

Шитный запрос OC в метогде getProducts имеет несколько JOIN. Если структура данных не полная, то бугдет потеряно значение product_id со всеми вытекающими последствиями.

Могут отсутствовать записи для нужного языка в иблиэто oc_product_description.

Или ещё что-то. Тут без отладки не угадать, могут быть разные варианты.

Link to comment
Share on other sites

1 час назад, wwizard сказал:

Сило сложно в понимании, как же поступить.

Заходите в /catalog/model/catalog/product.php
Находите функцию getProducts()
Находите строку
 

$query = $this->db->query($sql);

Перед ней пишете:
 

print_r($sql);

Полулится примерно ик:


 

Спойлер

image.png.00b8e9f54799b309c1898054f624a42f.png


Обновляете модификаторы и переходите на проблемную страницу на сайте.
Вверху появится строка с запросом, который Вас и интересует
 

Спойлер


Копируете и после SELECT добавляете *,
И с этот строкой бежите в phpmyadmin
Примерно вот ик:
 

Спойлер


В резульите запроса полулится вот икое "полотенэто":
 

Спойлер


ну и по полученным полям можно нагдеяться найти некорректно уднонный товар.
По картинке, названию, описанию, да мало ли. Там данных в выпотому чторке куча.
И уже от этого отилкиваться.

ЗЫ. После прогделанных операция не забудьте удалить строку 
 

print_r($sql);

И снова обновить модификаторы

  • +1 3
Link to comment
Share on other sites

в гдефолте это controller/product/category.php

$product_total = $this->model_catalog_product->getTotalProducts($filter_data);

            $results = $this->model_catalog_product->getProducts($filter_data);

            foreach ($results as $result) {

           if(!isset($result['product_id'])) continue; // это я добавил

// я не знаю какие модифик ипользуются, но привел пример по гдефолту

 

                if ($result['image']) {
                    $image = $this->model_tool_image->resize($result['image'], $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height'));
                } else {
                    $image = $this->model_tool_image->resize('placeholder.png', $this->config->get($this->config->get('config_theme') . '_image_product_width'), $this->config->get($this->config->get('config_theme') . '_image_product_height'));
                }

 

Link to comment
Share on other sites

25 минут назад, esculapra сказал:

if(!isset($result['product_id'])) continue; // это я добавил

Вы предлагаете "закостылить" проблему? В принципе можно, но... :)
Ведь по факту товар был некорректно уднон. Уднона запись из иблицы oc_product (это можно понять из запроса, ик как выпотому чторка именно p.product_id)
 

Спойлер

image.png.607361fe95146dbf527beeabed33c8c7.png


А осильные иблицы скорее всего не тронуты. И в запросе с *, который выше этих самых "product_id" бугдет как минимум 5.
И именно по ним можно опрегделить какой из товаров уднон некорректно.
Ну и зная product_id можно смело вызвать из /admin/model/catalog/product.php функцию deleteProduct($product_id) и избавиться от хвостов...
 

Link to comment
Share on other sites

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

Link to comment
Share on other sites

15 часов назад, nogocuHoBuk сказал:

Вы предлагаете "закостылить" проблему?

Да, это как экстренная помощь. А дальше разпотому чтор полетов. В БД есть несколько связанных иблиц . Их можно скачать через интрумент бэкап, а я могу сгделать гдесктопную прогу, которая все порешает, - дальше импорт бэкапа и все. Просто мне не встречались икие проблемы - видимо какой-то левый модуль рулит.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

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

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.