Невозможно сохранить счет - PullRequest
3 голосов
/ 22 февраля 2012

После обновления magento с 1.4.0.1 до 1.5.1.0 я не могу отправить счет. Когда я указываю своему браузеру Sales -> Orders -> [order] View -> Invoice и нажимаю Submit invoice, появляется сообщение об ошибке Unable to save the invoice.

Я проверил, что происходит в моем файле exception.log, и вот ошибка:

exception 'Zend_Db_Statement_Exception' with message 'SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '100000001' for key 'UNQ_INCREMENT_ID'' in /home/misbhv/domains/*/public_html/lib/Zend/Db/Statement/Pdo.php:234
Stack trace:
#0 /home/misbhv/domains/*/public_html/lib/Zend/Db/Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array)
#1 /home/misbhv/domains/*/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array)
#2 /home/misbhv/domains/*/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238): Zend_Db_Adapter_Abstract->query('INSERT INTO `sk...', Array)
#3 /home/misbhv/domains/*/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(337): Zend_Db_Adapter_Pdo_Abstract->query('INSERT INTO `sk...', Array)
#4 /home/misbhv/domains/*/public_html/lib/Zend/Db/Adapter/Abstract.php(574): Varien_Db_Adapter_Pdo_Mysql->query('INSERT INTO `sk...', Array)
#5 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Model/Mysql4/Abstract.php(414): Zend_Db_Adapter_Abstract->insert('sklep_sales_fla...', Array)
#6 /home/misbhv/domains/*/public_html/app/code/core/Mage/Sales/Model/Mysql4/Order/Abstract.php(417): Mage_Core_Model_Mysql4_Abstract->save(Object(Mage_Sales_Model_Order_Invoice))
#7 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Model/Abstract.php(318): Mage_Sales_Model_Mysql4_Order_Abstract->save(Object(Mage_Sales_Model_Order_Invoice))
#8 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Model/Resource/Transaction.php(150): Mage_Core_Model_Abstract->save()
#9 /home/misbhv/domains/*/public_html/app/code/core/Mage/Adminhtml/controllers/Sales/Order/InvoiceController.php(272): Mage_Core_Model_Resource_Transaction->save()
#10 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Adminhtml_Sales_Order_InvoiceController->saveAction()
#11 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(253): Mage_Core_Controller_Varien_Action->dispatch('save')
#12 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#13 /home/misbhv/domains/*/public_html/app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front->dispatch()
#14 /home/misbhv/domains/*/public_html/app/Mage.php(627): Mage_Core_Model_App->run(Array)
#15 /home/misbhv/domains/*/public_html/index.php(80): Mage::run('', 'store')
#16 {main}

Я понятия не имею, что с этим делать, и я не могу найти ни одного решения в Google. Любая помощь будет высоко ценится!

Ответы [ 4 ]

6 голосов
/ 22 февраля 2012

Решение от: http://www.magentocommerce.com/boards/v/viewthread/234665/#t335407 имеет смысл:

У меня был тот же код ошибки. номер приращения и последний заказ номер больше не синхронизирован. мы сделали следующее:

зайдите в admin-> sales-> orders и найдите самый высокий номер заказа (для просмотр каждого магазина!)

после некоторой помощи из поста Фумена, мы сделали это: база данных. В таблице eav_entity_type вы найдете все типы сущностей. в списке. Интересный для изменения номер заказа начинается, т.е. заказ продажи / заказ. Помните entity_type_id. \ ”(В моем установить это 4)

\ "Далее перейдите к таблице eav_entity_store. Найдите entity_type_id. Теперь вы можете изменить значение increment_last_id на ваш последний фактический порядковый номер. (То есть, если вы хотите, чтобы ваш следующий заказ был 15000 установите increment_last_id равным 14999.) \ "

Надеюсь, это поможет.

1 голос
/ 28 февраля 2015

Я на самом деле посмотрел на решение выше и подумал, что оно может работать, вы на правильном пути, но я попробовал что-то другое:

Изменение поля 'increment_last_id' сразу не решило проблему - на самом деле существовал набор заказов из предыдущего представления магазина, который был удален и имел одинаковые идентификаторы заказов, поэтому, когда Magento пытался записать идентификатор, произошел сбой в повторяющаяся ошибка.

Я нашел проблему, посмотрев свой журнал exception.log (на самом деле он сказал мне идентификатор заказа, который вызывал проблему).

Удаление этих заказов и повторное выравнивание новых заказов с помощью редактирования поля increment_last_id решило мою проблему. Теперь мои новые заказы начинаются с номера выше, где они были в прошлый раз, и больше не конфликтуют с идентификаторами заказов.

0 голосов
/ 18 октября 2012

У меня была проблема с плагином Fooman и пробелом перед всеми приращениями_id. Этот запрос исправил это для меня ..

UPDATE `sales_flat_invoice` SET increment_id = trim(increment_id);
UPDATE `sales_flat_order` SET increment_id = trim(increment_id);
UPDATE `sales_flat_invoice_grid` SET increment_id = trim(increment_id);
UPDATE `sales_flat_order_grid` SET increment_id = trim(increment_id);
UPDATE `sales_flat_shipment` SET increment_id = trim(increment_id);
UPDATE `sales_flat_creditmemo` SET increment_id = trim(increment_id);
UPDATE `sales_flat_shipment_grid` SET increment_id = trim(increment_id);
UPDATE `sales_flat_creditmemo_grid` SET increment_id = trim(increment_id);
UPDATE `eav_entity_store` SET increment_last_id = trim(increment_last_id);
0 голосов
/ 22 февраля 2012

Я думаю, что у вас есть новое ограничение для уникального подряд, которое в версии 1.4.x не требуется. Вы должны увидеть дублирующуюся строку и решить создать новую строку со всеми каскадными ограничениями с другим различным increment_id. Вы можете увидеть повторяющиеся строки с помощью следующего оператора sql:

SELECT row FROM table GROUP BY row HAVING COUNT(*)>1;

позже вам нужно увидеть дублирующую строку, в моем случае я могу удалить дубликат джей, потому что это ошибки. Вероятно, вы можете удалить дубликаты строк, потому что это повреждено ошибкой в ​​вашем Magento. В моем случае обновление сценария magento было остановлено при попытке обновления структуры таблицы.

...