2011-12-02 22 views
8

Después de realizar un pedido, no es posible agregar un producto en el carrito. Magento me sigue diciendo: No se puede agregar el artículo al carrito de compras.Magento: No se puede agregar el producto al carrito después del pedido

Además, si trato de cambiar el orden, tengo un error:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1";i:1;s:2954:"#0 C:\wamp\www\ronamagento\trunk\lib\Zend\Db\Statement.php(300): Zend_Db_Statement_Pdo->_execute(Array) 

Si me conecto a cabo a continuación, en relog, todo funciona bien hasta que coloque a otro orden.

¿Alguna idea?

---------------------- EDIT ----------------------- ---

Los errores parecen provenir de sales/order/controllers/OrderController.php, en la función de reordenación en $ cart-> save();
Y el mismo código en Checkout/controllers/CartController.php en la función agregar
Parece que el objeto de mi carrito está roto o algo así.

---------------------- EDIT ------------------------ -

---------------------- EDIT # 2 ------------------- -------

Bueno, si comento la línea $ this-> getQuote() -> collectTotals(); en la función de guardar de Checkout/model/cart.php parece funcionar pero no muestra que el artículo se haya agregado a mi carrito. Luego devuelvo la línea de código y todo funciona bien. Parece que algo está mal en collectTotals() ...

---------------------- EDIT # 2 ---------- ----------------

Gracias!

+0

¿Alguna vez ha instalado alguna extensión? Si lo hace, simplemente deshabilite o elimine estos extensins. –

+0

Sí, tengo un par de extensiones instaladas + muchos módulos personalizados creados, pero traté de deshabilitarlos todos, sin éxito –

+0

mismo problema que obtuve.no sé cómo proceder. Para mi sitio, hay un mínimo de 100 plantillas personalizadas. alguien puede ayudar – sivakumar

Respuesta

0

Esto probablemente es un problema causado por un módulo de terceros, tal vez reescribiendo un modelo de Magento o proporcionando un detector de eventos (mi estimación preferida) con algunas consultas SQL no guardadas (tal vez directas, sin utilizar Magento ORM).

Como solución rápida, le sugiero que intente deshabilitar (no a través de Admin, eso no funcionaría ya que desactiva la representación, no reescribe o escuchas de eventos, sino a través del cambio de nombre de la aplicación/etc/del módulo de terceros modules/[Module_Name] .xml "file a algo como" app/etc/modules/[Module_Name] .xml.disabled "para que Magento lo ignore) cada uno de los módulos de terceros que tenga, uno por uno, hasta que pueda ubicar el orden.

Una vez que haya identificado el módulo responsable, puede encontrar la solución escapando correctamente de la cadena en la consulta SQL, o volver al fabricante del módulo que le solicita una solución.

También puede probar la correcta depuración usando xdebug, y desaconsejaría mucho hacer cualquiera de estos en el entorno de producción, ya que puede provocar una interrupción.

Tenga en cuenta que el uso de consultas SQL sin procesar con valores sin protección es una amenaza a la seguridad, ya que puede provocar ataques de inyección SQL. Puede obtener fácilmente los datos de sus clientes robados, o su base de datos pirateada, solo por personas que utilizan URL correctamente diseñadas en su sitio.

Cuestiones relacionadas