Pregunta

Después de actualizar Magento de 1.4.0.1 a 1.5.1.0, no puedo enviar una factura. Cuando estoy apuntando a mi navegador a Sales -> Orders -> [order] View -> Invoice y hacer clic Submit invoice, recibo el error diciendo Unable to save the invoice.

He comprobado lo que está sucediendo en mi archivo de excepción.log y aquí está el error:

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}

No tengo idea de qué hacer con eso y no puedo buscar en Google ninguna solución. ¡Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

La solución de: http://www.magentocommerce.com/boards/v/viewthread/234665/#t335407 tiene sentido:

Tenía el mismo código de error. El número de incremento y el último número de pedido ya no son sincronos. Lo que hicimos es lo siguiente:

Vaya a Admin-> Sales-> Pedidos y busque el número de pedido más alto (¡para cada vista de tienda!)

Después de la ayuda de una publicación de Fooman, hicimos esto: "luego mire su base de datos. En la tabla EAV_Entity_Type encontrará todos los tipos de entidades enumerados. El interés de cambiar es donde comienza el número de pedido, es decir. pedido. Recuerde la entidad_type_id. ”(en mi instalación es 4)

"A continuación, vaya a la tabla EAV_ENTITY_STORE. Busque Entity_Type_id. Ahora puede cambiar el valor de Increment_last_id a su último número de pedido real. (Es decir, si desea que su próximo ordenid sea 15000 establecido Increment_Last_ID a 14999.) "

Espero que esto ayude.

Otros consejos

De hecho, miré la solución anterior y pensé que podría funcionar, estás en el camino correcto, pero probé algo diferente:

Cambiar el campo 'increment_last_id' resuelto sin problema de inmediato: en realidad había un conjunto de pedidos existentes desde una vista de tienda anterior que se eliminó que compartía las mismas ID de pedido, así que cuando Magento intentaba escribir la identificación que fallaba en un error duplicado.

Encontré el problema al mirar mi excepción.

Eliminar esos pedidos y realineando los nuevos pedidos mediante la edición del campo increment_last_id resolvió mi problema. Ahora mis nuevos pedidos comienzan desde el número anterior donde estaban la última vez y ya no hay choque de ID de pedido.

Creo que tienes una nueva restricción a una fila única que en la versión 1.4.x no se ha requerido. Debería ver la fila duplicada y resolver crear una nueva fila con todas las restricciones en cascada con otra diferente increment_id. Puede ver filas duplicadas con la siguiente declaración SQL:

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

Más tarde necesitas ver la fila duplicada, en mi caso puedo eliminar el duplicado Jey porque esos son errores. es probable que pueda eliminar las filas duplicadas porque esto está herido por un error en usted magento. En mi caso, la actualización de Magento Scrip se detuvo en Whet, intente actualizar la estructura de la tabla.

Tuve un problema con el complemento Fooman y un espacio en blanco antes de todos los incrementos. Esta consulta lo arregló para mí ..

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top