COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

Ошибка sitemap


godiny1112

Recommended Posts

Всем привет. Помогите пожалуйста. Установил 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. Или не хватает таблиц в БД.

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

Join the conversation

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

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

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

  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.

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

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