The product warranty expiry date should follow product.
But the product entity stores the information of the product itself.
The expiry date is dynamic. If I store it in order_details, it follows an order,
Not by item, where should I store it?
It depends. Does each instance/unit of a Product have a unique expiration date or do multiple instances/units of a product have the same expiration date such as with things that can be grouped in a Batch like medicine, eggs, or milk for example. You probably need to make a distinction between information that is specific to each instance/unit (or number of instances/units) of a Product and the general information that applies to ALL instances.