De todos es conocido el módulo de pago para Servired. Para aquellos que no lo conozcáis está disponible desde Magento Connect.
Bueno, si te dedicas a desarrollar tiendas para Magento, o incluso si quieres probar suerte con la tuya, es muy posible que termines instalando este módulo. La verdad es que funciona perfectamente. Hoy, uno de nuestros clientes ha encontrado un pequeño “bug”. La verdad es que es bastante chorra pero buscando la solución al final hemos encontrado mucha gente que pregunta y poca que responde.
El problema se describe en este post:
http://www.magentocommerce.com/boards/viewthread/33072/
El caso es que cuando se realiza una transacción que devuelve como resultado una operación válida, el estado del pedido no es visible desde “Mi cuenta” o desde el histórico de pedidos de un cliente. Además, el administrador se encontrará en el administrador con pedidos que no pueden cambiar de estado (lo cual es bastante engorroso).
Podríamos aprovechar la ocasión para hablar del módulo que permite ampliar el número de estados por los que puede pasar un pedido. Creo recordar que ya hablamos hace unas semanas.
La solución os la dejo aquí y si alguien quiere ampliarla será bien recibido.
El problema radica básicamente en la asignación de orderStatus y orderState. Lo primero que tenemos que hacer es buscar la función “public function successAction() ” en el fichero StandardController.php que hay en módulo de Servired. al principio de la función comentar las líneas que hay referentes a la asignación del orderStatus e incluir estas dos:
</p>
<p>$orderState = Mage_Sales_Model_Order::STATE_PROCESSING;<br /> $orderStatus = Mage::getModel('servired/standard')->getConfigData('order_status');</p>
<p>
Al final de la misma función, justo antes de “$order->save();” incluir estas líneas:
</p>
<p>if (!$orderStatus) {<br /> $orderStatus = $order->getConfig()->getStateDefaultStatus($orderState);<br /> }<br /> <br /> $order->setState($orderState, $orderStatus,$comment,true);</p>
<p>
Con esto será suficiente. La explicación pasa por asignar correctamente un orderStatus y un orderState. En el caso de no estar disponible el orderState le asignaremos uno por defecto. Ahora ya podemos ver en el histórico de pedidos de nuestro cliente el pago realizado con el módulo para Magento de Servired.
Saludos.
Compartir:














Twitter
oliver #
17 de Diciembre de 2010 a las 12:24