Moonwalker

[РЕШЕНО] Слетает главная категория при копировании карточки товара

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

Moonwalker    9

Всем привет.

Ситуация следующая: при копировании карточки товара во вновь созданной карточке почему-то слетает главная категория. При этом слетает не полностью, а на несколько уровней вверх (если быть точным, то до 1-го уровня).

Например: у товара главная категория "Категория1-->Подкатегория2-->Подкатегория3". После копирования карточки у новой главной будет стоять "Категория1".

Есть возможность как-то пофиксить эту проблему? А то напрягает с определенного момента ))

оцСторе 1.5.5.1.1.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sobak    3

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sobak    3

Я так посмотрел за это отвечает /public_html/admin/model/catalog/product.php
 

	public function copyProduct($product_id) {
		$query = $this->db->query("SELECT DISTINCT * FROM " . DB_PREFIX . "product p LEFT JOIN " . DB_PREFIX . "product_description pd ON (p.product_id = pd.product_id) WHERE p.product_id = '" . (int)$product_id . "' AND pd.language_id = '" . (int)$this->config->get('config_language_id') . "'");
		
		if ($query->num_rows) {
			$data = array();
			
			$data = $query->row;
			
			$data['sku'] = '';
			$data['upc'] = '';
			$data['viewed'] = '0';
			$data['keyword'] = '';
			$data['status'] = '0';
						
			$data = array_merge($data, array('product_attribute' => $this->getProductAttributes($product_id)));
			$data = array_merge($data, array('product_description' => $this->getProductDescriptions($product_id)));			
			$data = array_merge($data, array('product_discount' => $this->getProductDiscounts($product_id)));
			$data = array_merge($data, array('product_filter' => $this->getProductFilters($product_id)));
			$data = array_merge($data, array('product_image' => $this->getProductImages($product_id)));		
			$data = array_merge($data, array('product_option' => $this->getProductOptions($product_id)));
			$data = array_merge($data, array('product_related' => $this->getProductRelated($product_id)));
			$data = array_merge($data, array('product_reward' => $this->getProductRewards($product_id)));
			$data = array_merge($data, array('product_special' => $this->getProductSpecials($product_id)));
			$data = array_merge($data, array('product_category' => $this->getProductCategories($product_id)));
			$data = array_merge($data, array('product_download' => $this->getProductDownloads($product_id)));
			$data = array_merge($data, array('product_layout' => $this->getProductLayouts($product_id)));
			$data = array_merge($data, array('product_store' => $this->getProductStores($product_id)));
			
			$this->addProduct($data);
		}
	} 

 Далее есть обработка данной строки.

Вопрос почему данная функция запрашивает после копирования ГЛАВНУЮ ДИРЕКТОРИЮ! А не оставляет все как есть?

	public function getProductCategories($product_id) {
		$product_category_data = array();
		
		$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$product_id . "'");
		
		foreach ($query->rows as $result) {
			$product_category_data[] = $result['category_id'];
		}

		return $product_category_data;
	}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sobak    3

Методом тыка понял что там есть еще одна функция которая отвечает как раз за "Главную категорию"

 

В этом файле /public_html/admin/model/catalog/product.php

 

Нужно добавить вот эту строку!

$data = array_merge($data, array('main_category_id' => $this->getProductMainCategoryId($product_id)));

 

после вот этой (309 строка)

$data = array_merge($data, array('product_special' => $this->getProductSpecials($product_id)));

 

У кого работает напишите, сюда чо как!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Moonwalker    9

Вроде работает! Надо будет потестить еще, но уже сейчас не могу выразить все слова благодарности ))) Особенно от партнера, который и занимается ассортиментом ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sobak    3

Вроде работает! Надо будет потестить еще, но уже сейчас не могу выразить все слова благодарности ))) Особенно от партнера, который и занимается ассортиментом ))

 

Тогда возможно вы имеете и такую проблему! https://opencartforum.com/topic/38545-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%BE%D0%BD%D0%B5-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5-%D1%84%D0%BE%D1%80%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0-%D0%BA%D0%B0%D1%82%D0%B5/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Moonwalker    9

Не, с этим проблемы нет. Все строго по алфавиту. Но спасибо, что делитесь ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
sobak    3

Не, с этим проблемы нет. Все строго по алфавиту. Но спасибо, что делитесь ))

Исправь шапку [РЕШЕНО]

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу