[miniShop2 4.0.0-beta] - Разбор нововведений. Изменена связь между заказом и адресом
В серии коротких заметок расскажу и детально покажу что нового мы сделали для Вас в новой версии miniShop2 Для MODX2
На очереди информация для разработчиков об изменениях связи между объектами msOrder и msOrderAddress
По задумке автора, клиент мог создавать какое-то количество сохраненных адресов и потом использовать их постоянно. К сожалению задумка осталась задумкой и на уровне фронта не была реализована. Я, например, не знал о том, что была заложена такая идея, пока не начал глубоко вникать в архитектуру.
Многие тоже не знали об этом — потому, как начал поступать один и тот же вопрос. Почему при удалении заказа не удаляется адрес заказа.
Соответственно запись об адресе будет удаляться вместе с записью о заказе.
В модели msOrder удалено поле address. Связь с таблицей адреса теперь работает через id
Связь между объектами изменена с
на
Также будет реализована возможность сразу из коробки сохранять и выбирать адрес из уже сохраненных.
Таким образом мы закладываем и будем дальше развивать личный кабинет клиента из коробки, со всеми классическими возможностями. Надеюсь эта новость будет встречена вами с радостью.
Вы всегда можете поддержать и ускорить подобные инициативы через финансовую поддержку
Развитие MiniShop происходит исключительно благодаря Вам друзья!
Финансовая поддержка с вашей стороны, позволяет выделять больше времени на развитие сообщества и обновлять наши проекты, которые в свою очередь приносят пользу и вам.
Поддержать нас можно, используя следующие каналы для доната:
На очереди информация для разработчиков об изменениях связи между объектами msOrder и msOrderAddress
Как была устроена связь объектов до версии 4.0.0
С первых версий minishop2 две модели msOrder и msOrderAdress были независимы друг от друга.По задумке автора, клиент мог создавать какое-то количество сохраненных адресов и потом использовать их постоянно. К сожалению задумка осталась задумкой и на уровне фронта не была реализована. Я, например, не знал о том, что была заложена такая идея, пока не начал глубоко вникать в архитектуру.
Многие тоже не знали об этом — потому, как начал поступать один и тот же вопрос. Почему при удалении заказа не удаляется адрес заказа.
Что было сделано
Подумав, поспорив во внутреннем круге разработчиков — было решено поступить следующем образом. Теперь Адрес заказа msOrderAddress это полностью зависимая от msOrder таблица. Модель Адреса будет просто расширять заказ точно также, как modUserProfile расширяет модельку modUser.Соответственно запись об адресе будет удаляться вместе с записью о заказе.
Немного технических подробностей
В модели msOrderAddress добавлено поле order_id для связи с объектом заказа. Заполняется автоматически.В модели msOrder удалено поле address. Связь с таблицей адреса теперь работает через id
Связь между объектами изменена с
composite alias="Address" class="msOrderAddress" local="address" foreign="id" cardinality="one" owner="local"/>
на
<composite alias="Address" class="msOrderAddress" local="id" foreign="order_id" cardinality="one" owner="local"/>
А как же множественные сохраненные адреса?
Эту идею мы конечно же сохраним и доработаем. В следующих версиях компонента появится дополнительная сущность msCustomerAddress для хранения собственных адресов покупателя.Также будет реализована возможность сразу из коробки сохранять и выбирать адрес из уже сохраненных.
Таким образом мы закладываем и будем дальше развивать личный кабинет клиента из коробки, со всеми классическими возможностями. Надеюсь эта новость будет встречена вами с радостью.
Вы всегда можете поддержать и ускорить подобные инициативы через финансовую поддержку
Развитие MiniShop происходит исключительно благодаря Вам друзья!
Финансовая поддержка с вашей стороны, позволяет выделять больше времени на развитие сообщества и обновлять наши проекты, которые в свою очередь приносят пользу и вам.
Поддержать нас можно, используя следующие каналы для доната:
- Отправить донат с карты
- Отправить донат на Яндекс. Деньги
- Отправить донат на Qiwi
- Перевод на каспи в Казахстане на номер +7 701 282 77 37
Поблагодарить автора
Отправить деньги
Комментарии: 7
Помнится, видел даже готовое дополнение, которое позволяло создавать несколько адресов доставки из личного кабинета и при заказе выбирать… Эта функция достаточно удобная, сам пользуюсь на всяких ДодоПиццах ))
Я думаю, что там адреса привязывались к пользователю, поэтому компонент будет работать.
Насколько я понимаю наше обновление сломает этот компонент.
Почему ты так думаешь?
@Евгений Webinmd упоминал о проблемах с этим компонентом, при новом подходе
Если удалять заказы, тогда да, адреса будут удаляться тоже. А так вроде не должно.
===
Хотя нет, если таблицы жестко связаны, тогда он просто не даст создать адрес без заказа.
===
Хотя нет, если таблицы жестко связаны, тогда он просто не даст создать адрес без заказа.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.