Ошибка sitemap


godiny1112
 Поделиться

Рекомендуемые сообщения

Всем привет. Помогите пожалуйста. Установил Opencart.CMS 2.3.0.2.3

Включил в каналах продвижения Sitemap.

Перехожу на страницу карты сайта https://l-carousel.com.ua/index.php?route=extension/feed/google_sitemap получаю такую ошибку. 

Скрытый текст

Fatal error: Uncaught exception 'Exception' with message 'Error: Column 'name' in order clause is ambiguous<br />Error No: 1052<br />SELECT * FROM oc_manufacturer m LEFT JOIN oc_manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN oc_manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '0' AND md.language_id = '3' ORDER BY name' in /home/lcarouse/l-carousel.com.ua/www/system/library/db/mysqli.php:45 Stack trace: #0 /home/lcarouse/l-carousel.com.ua/www/system/library/db.php(21): DB\MySQLi->query('SELECT * FROM o...', Array) #1 /home/lcarouse/l-carousel.com.ua/www/catalog/model/catalog/manufacturer.php(65): DB->query('SELECT * FROM o...') #2 [internal function]: ModelCatalogManufacturer->getManufacturers() #3 /home/lcarouse/l-carousel.com.ua/www/system/storage/modification/system/engine/loader.php(183): call_user_func_array(Array, Array) #4 [internal function]: Loader->{closure}(Array, Array) #5 /home/lcarouse/l-carousel.com.ua/www/system/engine/proxy.php(3 in /home/lcarouse/l-carousel.com.ua/www/system/library/db/mysqli.php on line 45

 

throw new \Exception('Error: ' . $this->connection->error  . '<br />Error No: ' . $this->connection->errno . '<br />' . $sql); это 45 строчка файла

 

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

значит или модельку оригинал восстановить или в таблице БД не хватает чего-то
обратите внимание на catalog/model/catalog/manufacturer.php Какие модули вносят правки туда.

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

7 часов назад, BuslikDrev сказал:

значит или модельку оригинал восстановить или в таблице БД не хватает чего-то
обратите внимание на catalog/model/catalog/manufacturer.php Какие модули вносят правки туда.

Скрытый текст

<?php
// *    @copyright    OPENCART.PRO 2011 - 2017.
// *    @forum   http://forum.opencart.pro
// *    @source        See SOURCE.txt for source and other copyright.
// *    @license    GNU General Public License version 3; see LICENSE.txt

class ModelCatalogManufacturer extends Model {
    
    public function getManufacturerLayoutId($manufacturer_id) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_to_layout WHERE manufacturer_id = '" . (int)$manufacturer_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'");

        if ($query->num_rows) {
            return $query->row['layout_id'];
        } else {
            return 0;
        }
    }
    
    public function getManufacturer($manufacturer_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

        return $query->row;
    }

    public function getManufacturers($data = array()) {
        if ($data) {
            $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "'";

            $sort_data = array(
                'name',
                'sort_order'
            );

            if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                $sql .= " ORDER BY " . $data['sort'];
            } else {
                $sql .= " ORDER BY name";
            }

            if (isset($data['order']) && ($data['order'] == 'DESC')) {
                $sql .= " DESC";
            } else {
                $sql .= " ASC";
            }

            if (isset($data['start']) || isset($data['limit'])) {
                if ($data['start'] < 0) {
                    $data['start'] = 0;
                }

                if ($data['limit'] < 1) {
                    $data['limit'] = 20;
                }

                $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
            }

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

            return $query->rows;
        } else {
            $manufacturer_data = $this->cache->get('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id'));

            if (!$manufacturer_data) {
                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name");    
                $manufacturer_data = $query->rows;    
                $this->cache->set('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id'), $manufacturer_data);
            }

            return $manufacturer_data;
        }
    }
}


вроде, всё стандартно.  только что попробовал на поддомене. там всё из коробки и таже ошибка

+ у меня все таблицы производителей пустые

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

8 минут назад, godiny1112 сказал:
Скрытый текст

 

<?php
// *    @copyright    OPENCART.PRO 2011 - 2017.
// *    @forum   http://forum.opencart.pro
// *    @source        See SOURCE.txt for source and other copyright.
// *    @license    GNU General Public License version 3; see LICENSE.txt

class ModelCatalogManufacturer extends Model {
    
    public function getManufacturerLayoutId($manufacturer_id) {
        $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer_to_layout WHERE manufacturer_id = '" . (int)$manufacturer_id . "' AND store_id = '" . (int)$this->config->get('config_store_id') . "'");

        if ($query->num_rows) {
            return $query->row['layout_id'];
        } else {
            return 0;
        }
    }
    
    public function getManufacturer($manufacturer_id) {
        $query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m.manufacturer_id = '" . (int)$manufacturer_id . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' AND m2s.store_id = '" . (int)$this->config->get('config_store_id') . "'");

        return $query->row;
    }

    public function getManufacturers($data = array()) {
        if ($data) {
            $sql = "SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "'";

            $sort_data = array(
                'name',
                'sort_order'
            );

            if (isset($data['sort']) && in_array($data['sort'], $sort_data)) {
                $sql .= " ORDER BY " . $data['sort'];
            } else {
                $sql .= " ORDER BY name";
            }

            if (isset($data['order']) && ($data['order'] == 'DESC')) {
                $sql .= " DESC";
            } else {
                $sql .= " ASC";
            }

            if (isset($data['start']) || isset($data['limit'])) {
                if ($data['start'] < 0) {
                    $data['start'] = 0;
                }

                if ($data['limit'] < 1) {
                    $data['limit'] = 20;
                }

                $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
            }

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

            return $query->rows;
        } else {
            $manufacturer_data = $this->cache->get('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id'));

            if (!$manufacturer_data) {
                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "manufacturer m LEFT JOIN " . DB_PREFIX . "manufacturer_description md ON (m.manufacturer_id = md.manufacturer_id) LEFT JOIN " . DB_PREFIX . "manufacturer_to_store m2s ON (m.manufacturer_id = m2s.manufacturer_id) WHERE m2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND md.language_id = '" . (int)$this->config->get('config_language_id') . "' ORDER BY name");    
                $manufacturer_data = $query->rows;    
                $this->cache->set('manufacturer.' . (int)$this->config->get('config_store_id') . '.' . (int)$this->config->get('config_language_id'), $manufacturer_data);
            }

            return $manufacturer_data;
        }
    }
}

 


вроде, всё стандартно.  только что попробовал на поддомене. там всё из коробки и таже ошибка

+ у меня все таблицы производителей пустые

Создайте производителя.

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

4 минуты назад, BuslikDrev сказал:

Создайте производителя.

создал, присвоил товару. у товара отображается. а на странице производителя эта же ошибка бд...

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

Только что, godiny1112 сказал:

создал, присвоил товару. у товара отображается. а на странице производителя эта же ошибка бд...

У меня всё нормально. Какие модули ставили?

в БД не все таблицы.

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

1 минуту назад, BuslikDrev сказал:

У меня всё нормально. Какие модули ставили?

FIX HTTPS 
Export/Import Tool (V3.12) for OpenCart 2.x
Local copy OCMOD by iSenseLabs
и SEO pro. я не знал, что он уже включен в opencart pro и полезло куча ошибок. кое-как удалил его.

и с 1с интеграция настраивается через прямое подключение к БД

 

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

8 минут назад, BuslikDrev сказал:

У меня всё нормально. Какие модули ставили?

всё же установил из коробки, всё работает. буду восстанавливать бд. спасибо за уделенное время.

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

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

всё же установил из коробки, всё работает. буду восстанавливать бд. спасибо за уделенное время.

Ещё возможна ошибка из-за не совместимости каких-то модулей или модификаторов, т.к. в опенкарт.про имена производителей не мультиязычные и имя производителя находится в другой таблице, а какой-то модуль мог думать, что имена мультиязычные как на ocstore. Или не хватает таблиц в БД.

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

Присоединяйтесь к обсуждению

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

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

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

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Показать вместо этого как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Нельзя вставлять изображения напрямую. Загрузите или вставьте изображения по URL.

 Поделиться

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

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