Не дозволяється вручну встановлювати стан замовлення на "завершення", і ви повинні отримати це виняток, коли ви звертаєтесь setState
до замовлення зі станом "завершення":
Держава замовлення "завершена" не повинна встановлюватися вручну.
Причина цього проста: стан "завершений" (і статус, оскільки це єдиний стан зі статусом "повний") повинен означати, що замовлення повністю заповнене. Тобто його розміщують, виставляють рахунок-фактуру та відправляють замовнику.
Після того, як замовлення буде виставлено рахунки та відправлено, Magento встановить це стан під замовлення автоматично.
Якщо ваша платіжна система "не дозволяє" статус "завершеного", я б їй не довіряв, тим більше, що вона кодується ionCube. Якщо це все-таки тому, що він обробляє виставлення рахунків за межами Magento, вам потрібно буде вручну генерувати "офлайн" рахунок-фактуру для замовлення, щоб Magento визнав, що за нього заплатили.
Не намагайтеся коротко змінити себе, вирішуючи проблему, щоб замовлення не потрапляли в завершений стан так, як вони повинні. Натомість виправте справжню проблему, переконавшись, що замовлення виставляються на рахунку та відвантажуються в Magento, щоб система їх позначала як повну.