product view function