Niedozwolone jest ręczne ustawianie stanu zamówienia na „ukończone” i powinieneś otrzymywać ten wyjątek, gdy wywołujesz setState
zamówienie ze stanem „zakończonym”:
„Kompletny” stan zamówienia nie może być ustawiany ręcznie.
Powód tego jest prosty: stan „kompletny” (i status, ponieważ jest to jedyny stan o statusie „kompletny”) ma oznaczać, że zamówienie zostało całkowicie zrealizowane. Oznacza to, że został umieszczony, zafakturowany i wysłany do klienta.
Gdy zamówienie zostanie zafakturowane i wysłane, Magento automatycznie ustawi ten stan na zamówieniu.
Jeśli twój system płatniczy „nie zezwala” na status „ukończony”, nie ufałbym temu, zwłaszcza że jest zakodowany w ionCube. Jeśli jednak dzieje się tak dlatego, że obsługuje fakturowanie poza Magento, musisz ręcznie wygenerować fakturę „offline” dla zamówienia, aby Magento rozpoznał, że została opłacona.
Nie próbuj zmieniać siebie przez obejście problemu polegającego na tym, że zamówienia nie osiągają stanu ukończonego tak, jak powinny. Zamiast tego napraw rzeczywisty problem, upewniając się, że zamówienia są zarówno fakturowane, jak i wysyłane w Magento, tak aby zostały oznaczone przez system jako zrealizowane.