Не разрешается вручную устанавливать состояние заказа на «завершено», и вы должны получить это исключение при вызове setState
заказа с состоянием «завершено»:
Состояние заказа «завершено» не должно устанавливаться вручную.
Причина этого проста: состояние «завершено» (и статус, поскольку это единственное состояние со статусом «завершено») предназначено для указания того, что заказ полностью выполнен. Т.е. он был размещен, выставлен счет и отправлен заказчику.
Как только заказ выставлен и выставлен счет, Magento автоматически установит это состояние в заказе.
Если ваша платежная система «не разрешает» статус «завершено», я бы не стал доверять ему, особенно в том случае, если он закодирован в ionCube. Однако, если это происходит потому, что он обрабатывает счета за пределами Magento, вам нужно вручную сгенерировать счет «Оффлайн» для заказа, чтобы Magento распознал, что он оплачен.
Не пытайтесь изменить себя, решая проблему, когда ордера не попадают в завершенное состояние, как обычно. Вместо этого исправьте реальную проблему, убедившись, что заказы выставляются в Magento и выставляются как счета, и они будут помечены системой как завершенные.