1. Хранение адреса в виде записей в базе.
Думаю, вполне можно было бы обойтись текстовым полем и id по кладр/фиас/гар (если россия).
Всё равно все возможные форматы адресов ты нормально не покроешь (а если покроешь - это будет свой фиас)
2. Использование float для хранение цены товара
3. Скидка чисто в виде числа в заказе - вполне возможно, что ты захочешь ввести какую-нибудь более гибкую систему скидок.
В текущей ситуации такое невозможно.
Например скидку в виде абсолютного количества денег, полностью бесплатный/подарочный товар.
Скидку только на отдельную категорию товара, или систему баллов.
Так что я бы сделал бы отдельную таблицу со скидкой на заказ, которую бы мог потом расширять.
(в принципе, можно оставить пока так, а потом миграцией всё исправить)
4. (комментарий про хранение цены убран, тк я изначально не заметил поле store_price)
5. Хотелось бы, чтобы была функция оформления заказа без регистрации.
6. А, ну и да. В заказе должен быть указан адрес. У пользователя их может быть несколько, и должен быть способ определить, на какой именно доставлять. (а с учётом п5 - адрес должен быть самостоятельной вещью)
+ Должна быть система как и с ценой - адрес у уже завершённого заказа не должен меняться.
7. А где статусы заказа? Типа новый/оплачен/доставка/доставлен/завершён?
PS: всё это из расчёта, что это магазин в россии, который продаёт физические товары за рубли.
Думаю, если закапываться, можно ещё много чего найти не только в реализации, но и в требованиях
PPS: Применять такую схему я бы осмелился только в рамках курсовой работы в колледже. Даже на диплом это врядли тянет, не говоря о реальном мире.