byters

Привязать отзывы к товарам

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

byters    0

Друзья, такая ситуация: имеются товары в CSV файле и отзывы к этим товарам в другом CSV файле. Единственное поле по которым эти файлы связываются - это PRODUCT ID. Все бы ничего, но при заливке файла с товарами в opencart id товара автоматически меняется счетчиком, соответственно привязка отзывов к товарам не осуществляется.

Единственный выход который я вижу - это убрать счетчик из product id, залить товары напрямую в базу, залить отзывы и опять включить счетчик. Но тут опять же слетит например привязка товара к производителю.

Кто что может подсказать? Как решить данную проблему?

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


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

добавить в таблицу товаров столбец для хранения "оригинального product_id", по которому и импортировать отзывы...

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


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

добавить в таблицу товаров столбец для хранения "оригинального product_id", по которому и импортировать отзывы...

Эм... Хорошо. Будет у меня такой столбец. А как тогда связать их между собой (отзывы с товаром)?

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


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

как это "как?" ? ))

при импорте отзывов получать по этому столбцу product_id в вашем магазине и дальше, как обычно.

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


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

Не совсем понимаю, как это реализовать. Нельзя ли "разжевать для чайников" порядок действий, пожалуйста?

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


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

пример метода для получения product_id (для модели)

	public function getProductIdByImportProductId($import_product_id) {
		$product_id = 0;
		$query = $this->db->query("SELECT `product_id` FROM `".DB_PREFIX."product` WHERE `ТВОЙ_НОВЫЙ_СТОЛБЕЦ_С_ОРИГИНАЛЬНЫМ_PRODUCT_ID` = '".(int)$import_product_id."'");
		if ($query->num_rows) {
			if ($query->num_rows == 1) {
				$product_id = $query->row['product_id'];
			} else {
				$product_id = -1;
			}
		}
		return $product_id;
	}
возвращает

0 - если нет товара;

-1 - если по оригинальному id найдено более одного товара

>0 - product_id найденного товара

"разжевывать дальше" == сделать за тебя

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


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

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

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

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

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

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

Войти

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

Войти


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

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