La réponse se trouve dans votre question et je pense que c'est le cas à Magento ainsi que dans de nombreux autres logiciels de commerce électronique et de comptabilité à cause des dépendances du "document de commande".
Dans le commerce et la comptabilité, l'édition n'est généralement pas un moyen de faire les choses et pour obtenir un effet d'édition, les soldes créditeurs ou débiteurs sur des comptes spécifiques sont modifiés par l'ajout de nouvelles lignes qui ajoutent ou soustraient des valeurs. Ce n'est pas un bug et c'est une fonctionnalité car la comptabilité signifie calculer le résultat en fonction des actions et non du nombre d'actions nécessaires pour obtenir un résultat. Chaque édition est une action qui doit être stockée afin d'offrir la possibilité de calculer le solde, de l'archiver et de le calculer ou de le présenter encore et encore.
Donc, dans Magento, la commande dans son ensemble n'est pas modifiable car elle n'est pas nécessaire, bien qu'elle semble étrange et inutile au début, presque tous les commerçants ne l'obtiennent pas. Le fait qu'il soit plus difficile de maintenir votre boutique en ligne n'est qu'un effet secondaire de faire les choses correctement.
Si vous pensez plus loin, même en modifiant tous les frères et sœurs de la commande (adresses, articles, modes d'expédition et de paiement, application des remises), les mêmes problèmes se produiront si les totaux changent à cause de cela. Vous ne pouvez toujours pas capturer les paiements si vous n'avez pas les données cc, le remboursement, etc. car cela nécessite une action du client. Dans le commerce électronique, vous n'avez l'attention du client qu'au moment où il confirme le paiement et tout ce qui se passe après cela nécessite plus d'attention des deux parties
Donc, même si en IRL dans le magasin, vous effectuez une sorte de commande, le même processus d'ajout et de soustraction d'actions est pris (par caisse enregistreuse ou dans notre esprit) pour finaliser votre commande et si vous devez changer après le processus de paiement, la commande est jeté et un nouveau est créé pour enregistrer vos nouvelles actions (paiements, remises, bonus, articles, etc.). La seule chose qui rend cela possible en IRL de manière plus transparente est que le client est généralement là pour confirmer les modifications et autoriser les paiements et tous les détails et cela se produit encore un peu plus rapidement dans toutes les relations de cause cérébrale qui sont abstraites.