Межрегиональность сайта

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
konstantin22
Сообщения: 7
Зарегистрирован: 2017.07.30, 11:35

Межрегиональность сайта

Сообщение konstantin22 » 2019.10.18, 05:56

Добрый день всем. Столкнулся не с простой для себя задачей. Есть интернет магазин на один город. Требуется внедрить в сайт возможность регионального разграничения. Что имею в виду: открывается филиал в другом городе. В этом городе свои цены на товары. Поэтому нужно в зависимости от выбранного пользователем города показывать соответствующую цену. Сейчас так же думаю, что одной ценой не обойтись. Возможно потребуется ведение товаров для каждого города отдельно. К товарам так же добавится новости, акции, статьи и тд.
Хочу узнать вашего мнения как бы вы посоветовали спроектировать сайт на такой случай. Естественно есть свои мысли, но хочу узнать мнение стороны для корректировки

Пока вижу либо по колдовать с поддоменами либо в каждую таблицу добавить поле city_id и делать выборки с привязкой к городу

yiiliveext
Сообщения: 805
Зарегистрирован: 2019.08.13, 01:49

Re: Межрегиональность сайта

Сообщение yiiliveext » 2019.10.18, 07:37

Недостаточно информации указали.
Есть ли склад? Если есть, то он для региона отдельный?
Как происходит управление товарами? С админки, выгрузка/обновление с учетной системы?
Есть ли в магазине уровни цен? Например, розница, мелкий опт, опт.
Будет ли кастомизироваться магазин под регион? Новости, акции, скидки и т.д.

konstantin22
Сообщения: 7
Зарегистрирован: 2017.07.30, 11:35

Re: Межрегиональность сайта

Сообщение konstantin22 » 2019.10.18, 08:20

yiiliveext писал(а):
2019.10.18, 07:37
Недостаточно информации указали.
Есть ли склад? Если есть, то он для региона отдельный?
Как происходит управление товарами? С админки, выгрузка/обновление с учетной системы?
Есть ли в магазине уровни цен? Например, розница, мелкий опт, опт.
Будет ли кастомизироваться магазин под регион? Новости, акции, скидки и т.д.
Да, складской учёт должен быть. Для каждого города свои склады планируются. В одном городе может быть несколько складов либо магазинов

Управление товарами пока только в админке,добавление/удаление/редактирование. Выгрузок не планируем, но с правильно сформированной системой думаю будет не проблема это сделать

Уровень цены пока один это розница. На будущее заложить уровни цен будет хорошим решением. Так же волнует и реализация типов клиентов как физлица, юрлица, но здесь я не думаю, что нужна привязка к городу

Кастомизация в плане контента это точно должно быть. Новости,акции, скидки, промокоды и прочее будут как для города, так и общие. Здесь можно было обойтись оговоренным city_id

yiiliveext
Сообщения: 805
Зарегистрирован: 2019.08.13, 01:49

Re: Межрегиональность сайта

Сообщение yiiliveext » 2019.10.18, 08:45

Делайте мультимагазин со store_id. Справочник товаров и товарных предложений- общие, цены и склады в разрезе store_id

Wizard
Сообщения: 173
Зарегистрирован: 2018.02.05, 13:41
Контактная информация:

Re: Межрегиональность сайта

Сообщение Wizard » 2019.10.18, 10:22

Когда то делал что то подобное на cms (она само собой отношение к yii не имеет) но возможно в качестве примера будет полезно

https://youtu.be/n0i3lb4cd30
https://youtu.be/7hf861vu0RA
https://youtu.be/iTP6LqnNTqM

konstantin22
Сообщения: 7
Зарегистрирован: 2017.07.30, 11:35

Re: Межрегиональность сайта

Сообщение konstantin22 » 2019.10.18, 12:33

yiiliveext писал(а):
2019.10.18, 08:45
Делайте мультимагазин со store_id. Справочник товаров и товарных предложений- общие, цены и склады в разрезе store_id
делать привязку только по складу? а по городу нет?

yiiliveext
Сообщения: 805
Зарегистрирован: 2019.08.13, 01:49

Re: Межрегиональность сайта

Сообщение yiiliveext » 2019.10.18, 12:39

по магазину

rosswe
Сообщения: 92
Зарегистрирован: 2017.01.09, 03:27
Откуда: Ставрополь
Контактная информация:

Re: Межрегиональность сайта

Сообщение rosswe » 2019.10.21, 09:26

Я столкнулся с подобной задачей ,
надо сделать так если он зарегался со Ставрополя то при клике
на опцию связь с менажёром, пользователь должен попадать под юрисдикцию филиала Ставрополя ,-
если он с Краснодара то тогда под Краснодар,.
Пока есть только такая идея добавить в регистрацию часовой пояс как обязательное поле, *их аж 11 в России* и руками написать код что бы перекидывала на нужный филиал.
Но краснодар и ставрополь пободают под один пояс .
Как выполнить поставленную задачу?

konstantin22
Сообщения: 7
Зарегистрирован: 2017.07.30, 11:35

Re: Межрегиональность сайта

Сообщение konstantin22 » 2019.10.21, 12:43

rosswe писал(а):
2019.10.21, 09:26
Я столкнулся с подобной задачей ,
надо сделать так если он зарегался со Ставрополя то при клике
на опцию связь с менажёром, пользователь должен попадать под юрисдикцию филиала Ставрополя ,-
если он с Краснодара то тогда под Краснодар,.
Пока есть только такая идея добавить в регистрацию часовой пояс как обязательное поле, *их аж 11 в России* и руками написать код что бы перекидывала на нужный филиал.
Но краснодар и ставрополь пободают под один пояс .
Как выполнить поставленную задачу?
Всему решение привязка по городу. Создайте таблицу городов (id, name). И в форму вызова передавайте параметром id города и показывайте нужного оператора(менеджера)

Аватара пользователя
Alexum
Сообщения: 675
Зарегистрирован: 2016.09.26, 10:00

Re: Межрегиональность сайта

Сообщение Alexum » 2019.10.21, 16:56

Создаёте таблицу филиалов и городов. Во всех зависимых от филиалов таблицах добавляете поле branch_id для разграничения по филиалам. Переделываете все поисковые запросы, findModel() в контроллере, валидаторы на уникальность, RBAC в админке (лучше свой DbManager) и ещё кучу всего. Если у вас обращение с БД простое на уровне ActiveRecord, можно отнаследоваться от ActiveRecord и сделать промежуточный класс со вспомогательными методами, которые уже будут включать логику поиска и работу с учётом текущего филиала, вида Price::findLocal() и отнаследовать все модели от неё (переопределить родной find() конечно можно, но как показывает практика - чревато). Получится бюджетный, но вполне рабочий вариант.

konstantin22
Сообщения: 7
Зарегистрирован: 2017.07.30, 11:35

Re: Межрегиональность сайта

Сообщение konstantin22 » 2019.10.22, 06:35

Alexum писал(а):
2019.10.21, 16:56
Создаёте таблицу филиалов и городов. Во всех зависимых от филиалов таблицах добавляете поле branch_id для разграничения по филиалам. Переделываете все поисковые запросы, findModel() в контроллере, валидаторы на уникальность, RBAC в админке (лучше свой DbManager) и ещё кучу всего. Если у вас обращение с БД простое на уровне ActiveRecord, можно отнаследоваться от ActiveRecord и сделать промежуточный класс со вспомогательными методами, которые уже будут включать логику поиска и работу с учётом текущего филиала, вида Price::findLocal() и отнаследовать все модели от неё (переопределить родной find() конечно можно, но как показывает практика - чревато). Получится бюджетный, но вполне рабочий вариант.
Самый простой и лаконичный ответ :) момент с унаследованием от AR весьма облегчит работу с выборками, возьму на заметку

rosswe
Сообщения: 92
Зарегистрирован: 2017.01.09, 03:27
Откуда: Ставрополь
Контактная информация:

Re: Межрегиональность сайта

Сообщение rosswe » 2019.10.24, 12:47

konstantin22 писал(а):
2019.10.21, 12:43
rosswe писал(а):
2019.10.21, 09:26
Всему решение привязка по городу. Создайте таблицу городов (id, name). И в форму вызова передавайте параметром id города и показывайте нужного оператора(менеджера)
Можно как то по подробнее или где посмотреть пример , - я думаю сделать выпадающий список выбора региона id региона привязан емайлу соответственного менажера.

Ответить