Наследовать модель товаров имеет место, если разные товары отличаются набором полей или поведением. Я сомневаюсь что модели Book и Phone будут отличаться - это просто физический товар, у которого есть название, артикул, цена, количество на складе и тд. В этом случае товары надо разбивать не на модели, а на категории - сделать модель Category и у продукта поле category = ForeignKey(Category)
Если ты захочешь положить в каталог очень разные товары - физический товар, электронные товары с подпиской, подарочные сертификаты и т.д., то в этом случае может помочь наследование моделей. Но не в том виде как у тебя. Чтобы все работало как надо поможет
django-polymorphic https://django-polymorphic.readthedocs.io/en/stable/ Он сделает тебе правильное наследование в общем каталоге продуктов