product entity