Looking for a solution to simplify the cancellation of a confirmed sale


It often happens that we have to cancel a confirmed sale in order to add/remove items.

These sales are all setup with:

  • Invoice Method: Manual
  • Shipment Method: On Order Processed

What we are currently doing is:

  1. Cancel all shipments
  2. Use the “Handle Shipment Exception” wizard to remove all stock moves
  3. Duplicate the sale
  4. Delete the now canceled sale
  5. Edit the duplicate as required

Is there any solution (script / module) out there that can automate the process described above?

Thanks in advance

Edit: we can not use a grace period (“Process Sale after”) as mentioned here (Add an one click cancelation action to sales) because this can happen days after the sale is confirmed (which in our case is more of an ongoing project).

Amend the sale.

We use this module, but we cannot add any new positions via it…

Just create a new sale.

  • what about the old one, especially the stock moves? this sale must be canceled first

  • there are often more than thirty lines in a sale. if we create a new sale from scratch we have to re-enter them all (except perhaps one, which should be deleted).
    apart from all the other information needed for a sale

It does not seem too complex to create a sale with the new lines.

But that’s how it actually is, at least in our case.

Hence my original question, if anyone knows of a script / wizard / module that automates the five steps described in my first post. That would really help us!


No as you do not cancel the former order.

I’m not aware of an existing solution but it should not be dificult to code a wizzard that for each sale cancels the existing moves, it adds them to the moves ignored table and then duplicates the sale.

ok - obviously i’m too stupid to understand this.

the following example:

there is a confirmed sale with 50 lines.
in our case, this sale runs for several weeks (as I said, it’s more of a project).
after one week, ten items have to be removed from this sale and fifteen new ones must be added.

your suggestion would be to leave the original sale as it is and simply create a completely new sale and then add (the now correct) 55 lines to this new sale.

this would mean that after some time we would have several hundred uncompleted sales and uncompleted stock movements, or have I missed something?


i also think that this is the right way to go. i just wanted to hear if anyone has already made the effort before i start to implement this (or try to :-)).

thanks for the answer.

Of course if sales are not sales, the Tryton workflow can not work.

No. I suggest to create a sale with the new lines.

GitHub - NaN-tic/trytond-sale_processing2confirmed does this IMHO. If not it is a good start for such functionality

thanks so much! i will definitely take a look at that!!!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.