product and purchase logics are updated