Неизвестная ошибка сервера при добавлении товара в корзину openCart

|

Иногда при установке нового сайта на openCart что-то происходит не так и в корзину не удается добавить больше одного товара. Решаем этот вопрос.

Не нравится мне openCart. Ни кодом, ни логикой, хотя надо признать местами там сделано все довольно просто и доступно для пользователя.

Я думаю, что дело в том, что в каждой CMS есть удачные и удобные решения, а кое-где сам черт ногу сломит…

Вот, например, ситуация: установил сайт. Дефолтный. ocStore — 2.3.0.2.3
Вроде нормально все, работает. Добавил разделы, товары. Пытаюсь сформировать заказ — добавляю один товар — хорошо. Добавляется. 
Пробую добавить к заказу еще товаров — вот тут возникает ошибка «internal server error». Удаляю товар из корзины, добавляю другой — снова все хорошо.

Понимаю, что дело не чисто. В код не лазил, контроллеры и прочее — не трогал, значит дело в базе данных. Иду туда.

смотрю таблицу 

oc_cart

по каким-то непонятным причинам созданная таблица не имеет первичного ключа и получается, что вновь добавленный товар имеет нулевой ID и следующий ID не увеличивается, как положено.
Т.е. нет AUTO_INCREMENT.

Исправляем

ALTER TABLE `oc_cart` ADD PRIMARY KEY(`cart_id`);

Пробую теперь добавить товар в корзину — отлично. Работает. 

Предыдущая статья
« Хороший или плохой код?