cart functions with updating quantity