Como saber se um pedido é pago? Quando "estado" está "processando"?

8

Estou executando o Magento 1.6.2.

Preciso determinar se um pedido é pago. Se sim, eu gero alguns dados XML para exportação. Existem muitos casos no fluxo de trabalho de pedidos / pagamentos / remessas do Magento.

Meu primeiro palpite é quando o atributo "state" do pedido é definido como "processing", mas não tenho certeza por causa da grande quantidade de possibilidades nesse fluxo de trabalho. Pode ser que este caso não esteja cobrindo todas as possibilidades ...

Estou certo com isso?

guillaume_shm
fonte
Verifique se há uma fatura gerada para o pedido.
Marius
Apenas faturar? Nenhuma outra coisa? Estou surpresa, parece fácil demais ser real aha. Obrigado pela ajuda!
precisa
Geralmente, a presença de uma fatura significa que ela foi paga.
Marius
Isso não é suficiente em todos os casos, pois uma fatura pode não ser paga. E é possível que uma fatura não cubra todos os itens solicitados; portanto, pode haver mais de uma fatura.
Andreas von Studnitz
A verificação do estado pode funcionar dependendo do seu fluxo de trabalho, mas o estado "processamento" também pode significar que o pedido foi enviado, mas ainda não foi pago. Eu não usaria isso.
Andreas von Studnitz

Respostas:

22

Você pode ligar $order->getBaseTotalDue() . Se for 0, o pedido será totalmente pago.

Andreas von Studnitz
fonte
Obrigado Andreas, esta resposta parece ser a que mais se encaixa na minha resposta.
precisa
1

Veja a resposta de Andreas sobre como determinar se há algo a pagar. Para responder sua outra pergunta - o uso do processamento state == não é bom o suficiente. Um teste rápido para mostrar isso é enviar um pedido não pago - isso também moverá um pedido para o estado de processamento, mesmo que o pedido ainda não tenha sido pago.

Kristof na Fooman
fonte