No está permitido establecer manualmente el estado del pedido en 'completo' y debería recibir esta excepción cuando llame setState
al pedido con el estado 'completo':
El estado del pedido "completo" no debe establecerse manualmente.
La razón de esto es simple: el estado 'completo' (y el estado, ya que es el único estado con un estado de 'completo') está destinado a indicar que un pedido se ha completado por completo. Es decir, se ha colocado, facturado y enviado al cliente.
Una vez que el pedido ha sido facturado y enviado, Magento establecerá este estado en el pedido automáticamente.
Si su sistema de pago "no permite" el estado 'completo', entonces no confiaría en él, especialmente si está codificado con ionCube. Sin embargo, si es porque está manejando la facturación fuera de Magento, entonces deberá generar manualmente una factura "fuera de línea" para el pedido, de modo que Magento reconozca que se ha pagado.
No intente hacer un cambio corto evitando el problema de que las órdenes no lleguen al estado completado como deberían hacerlo normalmente. En su lugar, solucione el problema real asegurándose de que los pedidos se facturen y envíen en Magento para que el sistema los marque como completos.