I was working on 4.4.5 version to find out why AOM does not work properly. As it turns out this is a bug in XC present even in the newest version. So I assume it is on all XC versions.
If you try to modify an order which used Special Offers offer this info will be lost when you save the new changes. It took a while to find out what is happening with the order and why but I tracked it down to this
modules/Advanced_Order_Management/func.edit.php has following code
PHP Code:
if (!empty($active_modules['Special_Offers'])) {
$saved_state = true;
unset($active_modules['Special_Offers']);
}
This is inside a function that rebuilts the whole cart on any AOM page run and uses it after that for the duration of the session.
Now who think of that and why there is a need to turn off the Special Offers module I have no idea. It makes no sense at all.
To fix comment out the "unset" line. It will make the Special Offers run on the rebuilt process and properly apply to the new temporary cart so you won't lose the info with the order modification.
Bug report:
https://bt.x-cart.com/view.php?id=45948