Перейти к содержанию

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

После замены напрямую в базе принадлежности одной Опции к другой группе Опций, невозможно создать ни один товар с Опциями, точней они создаются, но сохраняется только ОДНА последняя добавленная Опция. Замена проводилась такими запросами (пример для одной замены одной Опции):

 

UPDATE oc_option_value SET option_id = 20 WHERE option_value_id = 508;
UPDATE oc_option_value_description SET option_id = 20 WHERE option_value_id = 508;
UPDATE oc_product_option_value SET option_id = 20 WHERE option_value_id = 508;

 

Как найти проблему, по которой не сохраняет более одного значения Опций? Если была ошибка где-то в этих заменах, то логично предположить, что просто ставило бы не те значения, а так вообще исчезают Опции после редактирования/сохранения товара с ними.

Кэш чистился.

Изменено пользователем unlimuser

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


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

еще одна таблица есть: product_option

а вообще лучше смотрите в admin/model/catalog/product.php

Спойлер

		$this->db->query("DELETE FROM " . DB_PREFIX . "product_option WHERE product_id = '" . (int)$product_id . "'");
		$this->db->query("DELETE FROM " . DB_PREFIX . "product_option_value WHERE product_id = '" . (int)$product_id . "'");

		if (isset($data['product_option'])) {
			foreach ($data['product_option'] as $product_option) {
				if ($product_option['type'] == 'select' || $product_option['type'] == 'radio' || $product_option['type'] == 'checkbox' || $product_option['type'] == 'image') {
					if (isset($product_option['product_option_value'])) {
						$this->db->query("INSERT INTO " . DB_PREFIX . "product_option SET product_option_id = '" . (int)$product_option['product_option_id'] . "', product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', required = '" . (int)$product_option['required'] . "'");

						$product_option_id = $this->db->getLastId();

						foreach ($product_option['product_option_value'] as $product_option_value) {
							$this->db->query("INSERT INTO " . DB_PREFIX . "product_option_value SET product_option_value_id = '" . (int)$product_option_value['product_option_value_id'] . "', product_option_id = '" . (int)$product_option_id . "', product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', option_value_id = '" . (int)$product_option_value['option_value_id'] . "', quantity = '" . (int)$product_option_value['quantity'] . "', subtract = '" . (int)$product_option_value['subtract'] . "', price = '" . (float)$product_option_value['price'] . "', price_prefix = '" . $this->db->escape($product_option_value['price_prefix']) . "', points = '" . (int)$product_option_value['points'] . "', points_prefix = '" . $this->db->escape($product_option_value['points_prefix']) . "', weight = '" . (float)$product_option_value['weight'] . "', weight_prefix = '" . $this->db->escape($product_option_value['weight_prefix']) . "'");
						}
					}
				} else {
					$this->db->query("INSERT INTO " . DB_PREFIX . "product_option SET product_option_id = '" . (int)$product_option['product_option_id'] . "', product_id = '" . (int)$product_id . "', option_id = '" . (int)$product_option['option_id'] . "', value = '" . $this->db->escape($product_option['value']) . "', required = '" . (int)$product_option['required'] . "'");
				}
			}
		}

 

 

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


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

Спасибо за ответ. Немного отредактировал свой вопрос, т.к. проблема немного уточнилась - сохраняется лишь одно значение Опции, последнее из добавленных в Товаре. Чем это может быть вызвано? Может ли это быть связано именно с неотредактированным значением в таблице product_option ?

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


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

Я же написал внимательно посмотрите на admin/model/catalog/product.php

foreach ($data['product_option'] as $product_option) {

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


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

Какова правильная процедура или модуль для переноса/редактирования одной Опции товара в другую группу Опций, чтобы исключить любые подобные ошибки?

Может есть готовый пример или статья в виде SQL ? База очень большого магазина (более 30 тыс. товаров с 5-20 опциями у каждого) рабочая и эксперименты/ошибки выходят очень дорого. Спасибо.

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, unlimuser сказал:

Какова правильная процедура или модуль для переноса/редактирования одной Опции товара в другую группу Опций, чтобы исключить любые подобные ошибки?

Может есть готовый пример или статья в виде SQL ? База очень большого магазина (более 30 тыс. товаров с 5-20 опциями у каждого) рабочая и эксперименты/ошибки выходят очень дорого. Спасибо.

$100 и в тему платных услуг. Если Вы не разобрали простейший код, то только так.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.