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

Internal server error при добавлении в корзину

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

Видел пару похожих ошибок, но мне не помогло.

При добавлении большинства товаров в корзину выходит ошибка internal server error.

Незнаю но ставил плагин import export и когда пытался сзанова загрузить товары выводило ошибку, но потом нормально загрузил

Логи сервера

[27-Mar-2017 06:34:00 Europe/Moscow] PHP Fatal error:  Uncaught exception 'Exception' with message 'Error: Duplicate entry '0' for key 'PRIMARY'<br />Error No: 1062<br />INSERT oc_cart SET customer_id = '0', session_id = '47df3de12ac5709b6a18061e5397e36a', product_id = '91', recurring_id = '0', `option` = '[]', quantity = '1', date_added = NOW()' in /home/g/hoster/mysite.ru/public_html/system/library/db/mysqli.php:40
Stack trace:
#0 /home/g/hoster/mysite.ru/public_html/system/library/db.php(16): DB\MySQLi->query('INSERT oc_cart ...', Array)
#1 /home/g/hoster/mysite.ru/public_html/system/library/cart/cart.php(276): DB->query('INSERT oc_cart ...')
#2 /home/g/hoster/mysite.ru/public_html/catalog/controller/checkout/cart.php(344): Cart\Cart->add('91', 1, Array, 0)
#3 [internal function]: ControllerCheckoutCart->add()
#4 /home/g/hoster/mysite.ru/public_html/system/storage/modification/system/engine/action.php(44): call_user_func_array(Array, Array)
#5 /home/g/hoster/mysite.ru/public_html/catalog/controller/startup/router.php(25): Action->execute(Object(Registry))
#6 [internal function]: ControllerStartupRouter->index()
#7 /home/g/hoster/mysite.ru/public_html/system/storage/modification/system/engine/action.php(44): call_user_func_array(Array, Array)
#8 /home/g/hoster/mysite.ru/public_html/system/engine/front.php(34): Action->execute(Object(Registry))
#9 /home/g/hoster/mysite.ru/public_html/system/engine/front.php(29): Front->execute(Object(Action))
#10 /home/g/hoster/mysite.ru/public_html/system/framework.php(99): Front->dispatch(Object(Action), Object(Action))
#11 /home/g/hoster/mysite.ru/public_html/index.php(22): require_once('/home/g/griste0...')
#12 {main}
  thrown in /home/g/hoster/mysite.ru/public_html/system/library/db/mysqli.php on line 40
 

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

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


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

Проблема из-за того, что у вас поле customer_id (или recurring_id, по ошибке точно не сказать) почему-то стало PRIMARY ключём.

По дефолту там PRIMARY только cart_id.

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


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

Dotrox, как это можно решить?

поставил AI на card_id непомогло

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

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


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

У меня там золотым ключиком card_id и серебристым customer_id session_id product_id  и recurring_id.

 

Помогите кто-нибудь решить проблему

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

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


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

поставил AI на card_id непомогло

А должно было?

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

И главное - у вас проблема не в том, что card_id не первичный, а в том, что первичными являются те, которые не должны ими быть!

 

8 часов назад, redesupar сказал:

серебристым customer_id session_id product_id  и recurring_id

Значит они у вас все PRIMARY. Это у вас кто-то базу "оптимизировал" или какая-то экзотическая сборка с уже встроенными косяками?

 

Запустите сначала это:

ALTER TABLE oc_cart DROP PRIMARY KEY;

А затем это:

ALTER TABLE oc_cart ADD PRIMARY KEY (card_id);



 

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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