In the past there were several trigger bugs in ecommerce where the trigger was doing return new instead of return old. Return new always returns null and cancels the delete. It might be something else, but try looking for ecommerce delete triggers that return new.