Открыта возможность перехода на модули с открытым кодом! Детали

Перейти к публикации

Помилка після збереження товару з опціями ПРО


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

Добрий день!

Все налаштував, але після активації в товарі отримую помилку:

Fatal error: Uncaught Exception: Error: Duplicate entry '5' for key 'PRIMARY'<br />Error No: 1062<br />INSERT INTO oc_product_option_pro_price SET product_option_pro_value_id = '5', product_id = '507', customer_group_id = '2', price = '0' in /home/invafish/invafishki.shop/www/system/library/db/mysqli.php:42 Stack trace: #0 /home/invafish/invafishki.shop/www/system/library/db.php(45): DB\MySQLi->query('INSERT INTO oc_...') #1 /home/invafish/invafishki.shop/www/admin/model/tool/neoseo_product_options_pro.php(266): DB->query('INSERT INTO oc_...') #2 /home/invafish/invafishki.shop/www/storage/modification/system/engine/loader.php(267): ModelToolNeoSeoProductOptionsPro->addProductOptions(Array, '507') #3 /home/invafish/invafishki.shop/www/system/engine/proxy.php(47): Loader->{closure}(Array, Array) #4 /home/invafish/invafishki.shop/www/storage/modification/admin/model/catalog/product.php(314): Proxy->__call('addProductOptio...', Array) #5 /home/invafish/invafishki.shop/www/storage/modifica in /home/invafish/invafishki.shop/www/system/library/db/mysqli.php on line 42

В чому може бути проблема?

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

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


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

28.11.2021 в 01:49, pchelav сказал:

Добрий день!

Все налаштував, але після активації в товарі отримую помилку:

Fatal error: Uncaught Exception: Error: Duplicate entry '5' for key 'PRIMARY'<br />Error No: 1062<br />INSERT INTO oc_product_option_pro_price SET product_option_pro_value_id = '5', product_id = '507', customer_group_id = '2', price = '0' in /home/invafish/invafishki.shop/www/system/library/db/mysqli.php:42 Stack trace: #0 /home/invafish/invafishki.shop/www/system/library/db.php(45): DB\MySQLi->query('INSERT INTO oc_...') #1 /home/invafish/invafishki.shop/www/admin/model/tool/neoseo_product_options_pro.php(266): DB->query('INSERT INTO oc_...') #2 /home/invafish/invafishki.shop/www/storage/modification/system/engine/loader.php(267): ModelToolNeoSeoProductOptionsPro->addProductOptions(Array, '507') #3 /home/invafish/invafishki.shop/www/system/engine/proxy.php(47): Loader->{closure}(Array, Array) #4 /home/invafish/invafishki.shop/www/storage/modification/admin/model/catalog/product.php(314): Proxy->__call('addProductOptio...', Array) #5 /home/invafish/invafishki.shop/www/storage/modifica in /home/invafish/invafishki.shop/www/system/library/db/mysqli.php on line 42

В чому може бути проблема?

Здравствуйте.

В товаре в админ зоне или в товаре на витрине? 

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


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

4 часа назад, NeoSeo Help 4 сказал:

Здравствуйте.

В товаре в админ зоне или в товаре на витрине? 

При виборі в опції товару в адмін зоні сайту та спробі зберегти

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


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

Дополню, так как столкнулся с той же ошибкой.

Установлен чистый ocStore 3.0.3.7, установлен по инструкции (сначала файлы, потом через админку, но на system_test.php все равно ругается на то, что недоступен для записи) модуль связанные опции для oc3.0 версия 26.

Созданы 2 опции: Размер лодки и Устанавливать тент

Создана связанная опция Тест с установкой.

Создан новый товар и ему прописаны Опции PRO.

В таком варианте все работает.

Далее, созданы еще 2 группы покупателей: Розница и Опт.

При попытке сохранения Опции PRO с тремя группами покупателей админка вылетае с 500 ошибкой:

Fatal error: Uncaught Exception: Error: Duplicate entry '4' for key 'PRIMARY'<br />Error No: 1062<br />INSERT INTO oc_product_option_pro_price SET product_option_pro_value_id = '4', product_id = '50', customer_group_id = '3', price = '2' in W:\domains\oc.loc\system\library\db\mysqli.php:41 Stack trace: #0 W:\domains\oc.loc\system\library\db.php(45): DB\MySQLi->query() #1 W:\domains\oc.loc\admin\model\tool\neoseo_product_options_pro.php(266): DB->query() #2 W:\domains\oc.loc\oc-storage\modification\system\engine\loader.php(248): ModelToolNeoSeoProductOptionsPro->addProductOptions() #3 W:\domains\oc.loc\system\engine\proxy.php(47): Loader->{closure}() #4 W:\domains\oc.loc\oc-storage\modification\admin\model\catalog\product.php(276): Proxy->__call() #5 W:\domains\oc.loc\oc-storage\modification\system\engine\loader.php(248): ModelCatalogProduct->editProduct() #6 W:\domains\oc.loc\system\engine\proxy.php(47): Loader->{closure}() #7 W:\domains\oc.loc\oc-storage\modification\admin\controller in W:\domains\oc.loc\system\library\db\mysqli.php on line 41

Сохраняется только первая опция и цена для первой группы.

При редактировании товара отображается ворнинг:

Notice: Undefined index: options in W:\domains\oc.loc\admin\model\tool\neoseo_product_options_pro.php on line 119Warning: Invalid argument supplied for foreach() in W:\domains\oc.loc\oc-storage\modification\admin\controller\catalog\product.php on line 1452

 

2021-11-30_16-05-49.png

2021-11-30_16-06-31.png

2021-11-30_16-07-14.png

2021-11-30_16-09-25.png

2021-11-30_16-11-04.png

2021-11-30_16-44-46.png

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

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


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

28.11.2021 в 00:49, pchelav сказал:

Добрий день!

Все налаштував, але після активації в товарі отримую помилку:

Fatal error: Uncaught Exception: Error: Duplicate entry '5' for key 'PRIMARY'<br />Error No: 1062<br />INSERT INTO oc_product_option_pro_price SET product_option_pro_value_id = '5', product_id = '507', customer_group_id = '2', price = '0' in /home/invafish/invafishki.shop/www/system/library/db/mysqli.php:42 Stack trace: #0 /home/invafish/invafishki.shop/www/system/library/db.php(45): DB\MySQLi->query('INSERT INTO oc_...') #1 /home/invafish/invafishki.shop/www/admin/model/tool/neoseo_product_options_pro.php(266): DB->query('INSERT INTO oc_...') #2 /home/invafish/invafishki.shop/www/storage/modification/system/engine/loader.php(267): ModelToolNeoSeoProductOptionsPro->addProductOptions(Array, '507') #3 /home/invafish/invafishki.shop/www/system/engine/proxy.php(47): Loader->{closure}(Array, Array) #4 /home/invafish/invafishki.shop/www/storage/modification/admin/model/catalog/product.php(314): Proxy->__call('addProductOptio...', Array) #5 /home/invafish/invafishki.shop/www/storage/modifica in /home/invafish/invafishki.shop/www/system/library/db/mysqli.php on line 42

В чому може бути проблема?

Доброго дня. Ця помилка вказує на те, що у Вас при спробі записати створені опції в базу данних виникає дубль значення. Чи не могли би Ви надіслати скрін структури таблиці бази данних oc_product_option_pro_price?

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


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

30.11.2021 в 13:47, Sign99 сказал:

Дополню, так как столкнулся с той же ошибкой.

Установлен чистый ocStore 3.0.3.7, установлен по инструкции (сначала файлы, потом через админку, но на system_test.php все равно ругается на то, что недоступен для записи) модуль связанные опции для oc3.0 версия 26.

Созданы 2 опции: Размер лодки и Устанавливать тент

Создана связанная опция Тест с установкой.

Создан новый товар и ему прописаны Опции PRO.

В таком варианте все работает.

Далее, созданы еще 2 группы покупателей: Розница и Опт.

При попытке сохранения Опции PRO с тремя группами покупателей админка вылетае с 500 ошибкой:

Fatal error: Uncaught Exception: Error: Duplicate entry '4' for key 'PRIMARY'<br />Error No: 1062<br />INSERT INTO oc_product_option_pro_price SET product_option_pro_value_id = '4', product_id = '50', customer_group_id = '3', price = '2' in W:\domains\oc.loc\system\library\db\mysqli.php:41 Stack trace: #0 W:\domains\oc.loc\system\library\db.php(45): DB\MySQLi->query() #1 W:\domains\oc.loc\admin\model\tool\neoseo_product_options_pro.php(266): DB->query() #2 W:\domains\oc.loc\oc-storage\modification\system\engine\loader.php(248): ModelToolNeoSeoProductOptionsPro->addProductOptions() #3 W:\domains\oc.loc\system\engine\proxy.php(47): Loader->{closure}() #4 W:\domains\oc.loc\oc-storage\modification\admin\model\catalog\product.php(276): Proxy->__call() #5 W:\domains\oc.loc\oc-storage\modification\system\engine\loader.php(248): ModelCatalogProduct->editProduct() #6 W:\domains\oc.loc\system\engine\proxy.php(47): Loader->{closure}() #7 W:\domains\oc.loc\oc-storage\modification\admin\controller in W:\domains\oc.loc\system\library\db\mysqli.php on line 41

Сохраняется только первая опция и цена для первой группы.

При редактировании товара отображается ворнинг:

Notice: Undefined index: options in W:\domains\oc.loc\admin\model\tool\neoseo_product_options_pro.php on line 119Warning: Invalid argument supplied for foreach() in W:\domains\oc.loc\oc-storage\modification\admin\controller\catalog\product.php on line 1452

 

2021-11-30_16-05-49.png

2021-11-30_16-06-31.png

2021-11-30_16-07-14.png

2021-11-30_16-09-25.png

2021-11-30_16-11-04.png

2021-11-30_16-44-46.png

Здравствуйте, у Вас аналогичная проблема, как и у пользователя выше. Скорее всего, в таблице базы данных product_option_pro_price у Вас установлен индекс PRIMARY для столбца product_option_pro_value_id.
 

Цитата

 

При редактировании товара отображается ворнинг:

Notice: Undefined index: options in W:\domains\oc.loc\admin\model\tool\neoseo_product_options_pro.php on line 119Warning: Invalid argument supplied for foreach() in W:\domains\oc.loc\oc-storage\modification\admin\controller\catalog\product.php on line 1452

 

От модуля опций ПРО вижу только нотис, ворнинг указывает на модифицированный файл. Какой модуль добавляет эту строку?

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


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

1 час назад, NeoSeo Help 1 сказал:

Доброго дня. Ця помилка вказує на те, що у Вас при спробі записати створені опції в базу данних виникає дубль значення. Чи не могли би Ви надіслати скрін структури таблиці бази данних oc_product_option_pro_price?

Так, долучаю

2021-12-01_20-00-07.thumb.jpeg.7d9d1e96f715520b4b22a446be7d747d.jpeg

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


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

14 часов назад, NeoSeo Help 1 сказал:

От модуля опций ПРО вижу только нотис, ворнинг указывает на модифицированный файл. Какой модуль добавляет эту строку?

Судя по всему эту строку добавляет модуль Neoseo Product Options PRO

		/* Neoseo Product Options PRO - begin */
		$this->load->language('catalog/neoseo_product_options_pro_product');
		$data['entry_option_articul'] = $this->language->get('entry_option_articul');
		$data['entry_option_model'] = $this->language->get('entry_option_model');
		$data['tab_neoseo_option'] = $this->language->get('tab_neoseo_option');
		$data['tab_image_option'] = $this->language->get('tab_image_option');
		$data['text_selected_displayed'] = $this->language->get('text_selected_displayed');
		$data['text_option_priority'] = $this->language->get('text_option_priority');
		$data['text_use_options_pro'] = $this->language->get('text_use_options_pro');
		$data['text_option'] = $this->language->get('text_option');
		$data['text_priority'] = $this->language->get('text_priority');
		$data['text_option_value'] = $this->language->get('text_option_value');
		$data['text_image'] = $this->language->get('text_image');

		$this->load->language('catalog/neoseo_product_options_pro');

		$data['entry_base_price'] = $this->language->get('entry_base_price');

		if($this->config->get('neoseo_product_options_pro_product_base_price') == 1){
			$data['base_price_status'] = true;
		}else{
			$data['base_price_status'] = false;
		}

		if($this->config->get('neoseo_product_options_pro_status') == 1) {
			$this->load->model('tool/neoseo_product_options_pro');
			$options_pro = array();

			$options = $this->model_catalog_option->getOptions();
			$options_pro_list = $this->model_tool_neoseo_product_options_pro->getOptions();

			if($options_pro_list) {
				foreach ($options_pro_list as $product_option_pro) {
					$regular_options = $this->model_tool_neoseo_product_options_pro->getOptionsKit($product_option_pro['product_option_pro_id']);
					$options_pro[$product_option_pro['product_option_pro_id']]['name'] = $product_option_pro['name'];
					$options_pro[$product_option_pro['product_option_pro_id']]['options'] = $regular_options;
				}
			}

			$data['options'] = array();
			$data['related_options'] = array();

			foreach ($options as $option) {
				foreach ($options_pro as $product_option_pro_id => $product_option_pro) {
					if (in_array($option['option_id'], $product_option_pro['options'])) {
						$data['related_options'][$product_option_pro_id][] = array(
												'option_id' => $option['option_id'],
												'name'      => $option['name']
												);
					}
					$option['option_values'] = array();
					$option_values = $this->model_catalog_option->getOptionValues($option['option_id']);
					if($option_values){
						foreach ($option_values as $option_value) {
							$option['option_values'][$option_value['option_value_id']] = $option_value;
						}
					}
				}
				$data['options'][$option['option_id']] = $option;
			}

			$get_options_images = $this->model_tool_neoseo_product_options_pro->getProductOptionsImages($this->request->get['product_id']);

			$data['option_images'] = $get_options_images;

			$data['product_options_pro'] = array();
			$data['product_options_images'] = array();

			$option_pro_data = $this->model_tool_neoseo_product_options_pro->getProductOptions($this->request->get['product_id']);

			if($option_pro_data) {
				$data['product_options_pro'] = $option_pro_data;
			}

			if(isset($option_pro_data['product_option_pro_id']) && isset($options_pro[$option_pro_data['product_option_pro_id']])) {
				$option_pro_image_data['options'] = array();
				$option_pro_image_data['name'] = $options_pro[$option_pro_data['product_option_pro_id']]['name'];
				$option_pro_image_data['product_option_pro_id'] = $option_pro_data['product_option_pro_id'];
				foreach ($option_pro_data['option_rows'] as $option_row_key => $option_row_data) {
					$names = array();
					foreach ($option_row_data['options'] as $option_id_key => $option_value_id) {
						$names[] = $data['options'][$option_id_key]['option_values'][$option_value_id]['name'];
					}
					$option_row_data['name'] = implode(' + ', $names);
					$option_pro_image_data['options'][$option_row_key] = $option_row_data;
				}
				$data['product_options_images'] = $option_pro_image_data;
			}

			$data['options_pro'] = $options_pro;
			$data['product_options_status'] = true;
		} else {
			$data['product_options_status'] = false;
		}
		/* Neoseo Product Options PRO - end */

Ругается на строку

					foreach ($option_row_data['options'] as $option_id_key => $option_value_id) {

 

Цитата

Скорее всего, в таблице базы данных product_option_pro_price у Вас установлен индекс PRIMARY для столбца product_option_pro_value_id.

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

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


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

02.12.2021 в 21:16, pchelav сказал:

@NeoSeo Help 4 а яке значення стовпця має бути чи що треба зробити?

Добрый день.

Протестировали, похожей ошибки не обнаружено. Нужно тестировать непосредственно у Вас на проекте. Для получения оценки напишите в Телеграм-чат https://t.me/WebStudioNeoSeo1

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


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

02.12.2021 в 09:44, Sign99 сказал:

Ругается на строку

Добрый день. Нужно тестировать у Вас на проекте, почему именно возникает данная ошибка.  Для получения оценки напишите в Телеграм-чат https://t.me/WebStudioNeoSeo1

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


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

02.12.2021 в 23:16, pchelav сказал:

а яке значення стовпця має бути чи що треба зробити?

В таблице oc_product_option_pro_price удалил ключ PRIMARY (не поле).

Создал новый уникальный ключ на три поля:

2021-12-08_12-53-46.png

После этого исчезла ошибка и заработали опции.

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

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


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

7 часов назад, Sign99 сказал:

В таблице oc_product_option_pro_price удалил ключ PRIMARY (не поле).

Создал новый уникальный ключ на три поля:

2021-12-08_12-53-46.png

После этого исчезла ошибка и заработали опции.

Рады, что Ваша проблема решена, будут вопросы - обращайтесь.

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


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

  • 3 weeks later...

Вітаю! 

Виявив іншу проблему - при виборі опції в товарі не змінюється нічого, тільки перший створений фактично є доступним.

При тому на самому сайті після першого вибору воно підвисає і фактично змінити вибір без перезавантаження сторінки неможливо.

В чому може бути справа?

2021-12-27_16-54-32.thumb.gif.bfd92a98926c9a3c4ea532a981c24c64.gif

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


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

2 часа назад, pchelav сказал:

Вітаю! 

Виявив іншу проблему - при виборі опції в товарі не змінюється нічого, тільки перший створений фактично є доступним.

При тому на самому сайті після першого вибору воно підвисає і фактично змінити вибір без перезавантаження сторінки неможливо.

В чому може бути справа?

2021-12-27_16-54-32.thumb.gif.bfd92a98926c9a3c4ea532a981c24c64.gif

Доброго дня. Перейдіть до файлу admin/view/template/catalog/neoseo_product_options_pro_image.twig, знайдіть у ньому строку

let options = {{ sort_options|json_encode() }};

та замініть її на

let options = {{ options|json_encode() }};

Або можете скачати актуальну версію модуля з Вашого особистого кабінету та оновити його на сайті, ця проблема там вже виправлена.

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


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

  • 11 months later...
08.12.2021 в 09:55, Sign99 сказал:

В таблице oc_product_option_pro_price удалил ключ PRIMARY (не поле).

Создал новый уникальный ключ на три поля:

2021-12-08_12-53-46.png

После этого исчезла ошибка и заработали опции.

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

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


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

Присоединяйтесь к обсуждению

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

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

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...