¿Cómo saber si se paga un pedido? Cuando "estado" es "procesamiento"?

8

Estoy ejecutando Magento 1.6.2.

Necesito determinar si se paga un pedido. En caso afirmativo, genero algunos datos XML para exportar. Hay muchos casos en el flujo de trabajo de pedido / pago / envío de Magento.

Mi primera suposición es cuando el atributo "estado" de la orden se define como "procesamiento", pero no estoy seguro debido a la gran cantidad de posibilidades en este flujo de trabajo. Puede ser que este caso no cubra todas las posibilidades ...

¿Estoy en lo cierto con eso?

guillaume_shm
fuente
Verifique si hay una factura generada para el pedido.
Marius
¿Solo factura? No hay otras cosas? Estoy sorprendido, parece demasiado fácil ser real aha. ¡Gracias por tu ayuda!
guillaume_shm
Por lo general, la presencia de una factura significa que se ha pagado.
Marius
Eso no es suficiente en todos los casos, ya que una factura puede ser impaga. Y es posible que una factura no cubra todos los artículos pedidos, por lo que puede haber más de una factura.
Andreas von Studnitz el
Es posible que verifique el estado dependiendo de su flujo de trabajo, pero el "procesamiento" del estado también puede significar que el pedido se envió, pero aún no se pagó. Yo no usaría eso.
Andreas von Studnitz el

Respuestas:

22

Puede llamar $order->getBaseTotalDue(). Si esto es 0, el pedido está totalmente pagado.

Andreas von Studnitz
fuente
Gracias Andreas, esta respuesta parece ser la que más se ajusta a mi respuesta.
guillaume_shm
1

Vea la respuesta de Andreas sobre cómo determinar si queda algo por pagar. Para responder a su otra pregunta, usar el procesamiento de estado == no es lo suficientemente bueno. Una prueba rápida para mostrar esto es enviar un pedido impago; esto también moverá un pedido al estado de procesamiento aunque el pedido aún no se haya pagado.

Kristof en Fooman
fuente