add soldout&recover functions