Код: Notice: Undefined index: seo_title in /admin/model/catalog/product.php on line 13 Notice: Undefined index: seo_h1 in /admin/model/catalog/product.php on line 13 при импорте товара через total import pro выдаёт такую ошибку
Это вроде бы модуль для OpenCart, в нём нет этих строк, и в модуле соответственно тоже, их нужно в него добавлять.
товары импортируются, установлена русская сборка osstore 1.5.4.1 какие строчки необходимо добавить и в какой файл мода? хотя бы приблизительно
По этому модулю не подскажу, но это не пару строк. На русском форуме есть рабочий импорт/экспорт под эту версию, лучше уж её поставить и не мучиться. А ошибки эти, скорее из-за того, что вы этим модулем при импорте потёрли указанные строки в таблице product_description Если же сильно хочется с этим модом подружить магазин, то нужно на примере "meta_keyword" добавлять такие же строки ниже во все файлы модуля, меняя названия на вышеуказанные в ошибках.
Здравствуйте, прошу помощи в решении проблемы: PHP Notice: Undefined index: seo_title in /<адрес сайта>/http/vqmod/vqcache/vq2-admin_model_catalog_category.php on line 13 в данном файле, в 13 строке: $this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', description_bottom = '" . $this->db->escape($value['description_bottom']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'"); Стоит у меня OCSGOP 1.5.6.4 и exchange1c , при этом товары, категории,изображения - грузятся. Не грузится цена. И заказы выгружаются. описанное в этой теме - проверил, у меня все записи присутствуют. - http://wmasteru.org/threads/Ошибка-seo_h1-seo_title.3302/
в exchange1c : PHP: $result['category_description'] = array( $language_id => array( 'name' => (string)$category->Наименование ,'meta_keyword' => (isset($data['category_description'][$language_id]['meta_keyword'])) ? $data['category_description'][$language_id]['meta_keyword'] : '' ,'meta_description' => (isset($data['category_description'][$language_id]['meta_description'])) ? $data['category_description'][$language_id]['meta_description'] : '' ,'description' => (isset($category->Описание)) ? (string)$category->Описание : ((isset($data['category_description'][$language_id]['description'])) ? $data['category_description'][$language_id]['description'] : '') //доработка для OCSHOP ,'description_bottom' => (isset($category->Описание)) ? (string)$category->Описание : ((isset($data['category_description'][$language_id]['description_bottom'])) ? $data['category_description'][$language_id]['description_bottom'] : '') //конец доработки ,'seo_title ' => (isset($data['category_description'][$language_id]['seo_title'])) ? $data['category_description'][$language_id]['seo_title'] : '' ,'seo_h1' => (isset($data['category_description'][$language_id]['seo_h1'])) ? $data['category_description'][$language_id]['seo_h1'] : '' ), ); return $result; в массив добавлено было... но...
Это что-то не то (вероятно, это выгрузка из магазина в 1С, а у вас ошибка при выгрузке из 1С). Найдите, где у вас в этом модуле используется model_catalog_category и посмотрите, что передаётся при вызове метода из неё.
PHP: private function insertCategory($xml, $parent = 0, $language_id) { $this->load->model('catalog/category'); foreach ($xml as $category){ if (isset($category->Ид) && isset($category->Наименование) ){ $id = (string)$category->Ид; $data = array(); $query = $this->db->query('SELECT * FROM `' . DB_PREFIX . 'category_to_1c` WHERE `1c_category_id` = "' . $this->db->escape($id) . '"'); if ($query->num_rows) { $category_id = (int)$query->row['category_id']; $data = $this->model_catalog_category->getCategory($category_id); $data['category_description'] = $this->model_catalog_category->getCategoryDescriptions($category_id); $data = $this->initCategory($category, $parent, $data, $language_id); $this->model_catalog_category->editCategory($category_id, $data); } else { $data = $this->initCategory($category, $parent, array(), $language_id); $category_id = $this->model_catalog_category->addCategory($data); $this->db->query('INSERT INTO `' . DB_PREFIX . 'category_to_1c` SET category_id = ' . (int)$category_id . ', `1c_category_id` = "' . $this->db->escape($id) . '"'); } $this->CATEGORIES[$id] = $category_id; } if ($category->Группы) $this->insertCategory($category->Группы->Группа, $category_id, $language_id); } unset($xml); } Нашел, а куда добавлять?
Данные у вас формируются здесь: PHP: $data = $this->initCategory($category, $parent, array(), $language_id); Так что ищите в том же файле метод initCategory.
В ней тоже присутствуют все значения... PHP: private function initCategory($category, $parent, $data = array(), $language_id) { $result = array( 'status' => isset($data['status']) ? $data['status'] : 1 ,'top' => isset($data['top']) ? $data['top'] : 1 ,'parent_id' => $parent ,'category_store' => isset($data['category_store']) ? $data['category_store'] : array(0) ,'keyword' => isset($data['keyword']) ? $data['keyword'] : '' ,'image' => (isset($category->Картинка)) ? (string)$category->Картинка : ((isset($data['image'])) ? $data['image'] : '') ,'sort_order' => (isset($category->Сортировка)) ? (int)$category->Сортировка : ((isset($data['sort_order'])) ? $data['sort_order'] : 0) ,'column' => 1 ); $result['category_description'] = array( $language_id => array( 'name' => (string)$category->Наименование ,'meta_keyword' => (isset($data['category_description'][$language_id]['meta_keyword'])) ? $data['category_description'][$language_id]['meta_keyword'] : '' ,'meta_description' => (isset($data['category_description'][$language_id]['meta_description'])) ? $data['category_description'][$language_id]['meta_description'] : '' ,'description' => (isset($category->Описание)) ? (string)$category->Описание : ((isset($data['category_description'][$language_id]['description'])) ? $data['category_description'][$language_id]['description'] : '') ,'description_button' => (isset($category->Описание)) ? (string)$category->Описание : ((isset($data['category_description'][$language_id]['description_button'])) ? $data['category_description'][$language_id]['description_button'] : '') ,'seo_title' => (isset($data['category_description'][$language_id]['seo_title'])) ? $data['category_description'][$language_id]['seo_title'] : '' ,'seo_h1' => (isset($data['category_description'][$language_id]['seo_h1'])) ? $data['category_description'][$language_id]['seo_h1'] : '' ), ); return $result; }
Есть только файл - vq2-admin_model_catalog_category.php его первые 20 строк: PHP: <?phpclass ModelCatalogCategory extends Model { public function addCategory($data) { $this->db->query("INSERT INTO " . DB_PREFIX . "category SET parent_id = '" . (int)$data['parent_id'] . "', `top` = '" . (isset($data['top']) ? (int)$data['top'] : 0) . "', `column` = '" . (int)$data['column'] . "', sort_order = '" . (int)$data['sort_order'] . "', status = '" . (int)$data['status'] . "', date_modified = NOW(), date_added = NOW()"); $category_id = $this->db->getLastId(); if (isset($data['image'])) { $this->db->query("UPDATE " . DB_PREFIX . "category SET image = '" . $this->db->escape(html_entity_decode($data['image'], ENT_QUOTES, 'UTF-8')) . "' WHERE category_id = '" . (int)$category_id . "'"); } foreach ($data['category_description'] as $language_id => $value) { $this->db->query("INSERT INTO " . DB_PREFIX . "category_description SET category_id = '" . (int)$category_id . "', language_id = '" . (int)$language_id . "', name = '" . $this->db->escape($value['name']) . "', meta_keyword = '" . $this->db->escape($value['meta_keyword']) . "', meta_description = '" . $this->db->escape($value['meta_description']) . "', description = '" . $this->db->escape($value['description']) . "', description_bottom = '" . $this->db->escape($value['description_bottom']) . "', seo_title = '" . $this->db->escape($value['seo_title']) . "', seo_h1 = '" . $this->db->escape($value['seo_h1']) . "'"); } // MySQL Hierarchical Data Closure Table Pattern $level = 0; $query = $this->db->query("SELECT * FROM `" . DB_PREFIX . "category_path` WHERE category_id = '" . (int)$data['parent_id'] . "' ORDER BY `level` ASC");
vq2-admin_model_catalog_category.php - это /admin/model/catalog/category.php, о нём я и спрашивал. Но уже без разницы, я не вижу проблем тут. В общем, надо дебажить. И научитесь уже наконец пользоваться кнопкой вставки кода в редакторе, мне надоела редактировать каждый ваш пост, чтоб код стал читабельным.