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

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

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

Сообщение konstantin22 »

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

Пока вижу либо по колдовать с поддоменами либо в каждую таблицу добавить поле city_id и делать выборки с привязкой к городу
yiiliveext
Сообщения: 910
Зарегистрирован: 2019.08.13, 01:49

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

Сообщение yiiliveext »

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

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

Сообщение konstantin22 »

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

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

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

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

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

Сообщение yiiliveext »

Делайте мультимагазин со store_id. Справочник товаров и товарных предложений- общие, цены и склады в разрезе store_id
BalykhinAS
Сообщения: 179
Зарегистрирован: 2018.02.05, 13:41
Контактная информация:

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

Сообщение BalykhinAS »

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

https://youtu.be/n0i3lb4cd30
https://youtu.be/7hf861vu0RA
https://youtu.be/iTP6LqnNTqM
konstantin22
Сообщения: 10
Зарегистрирован: 2017.07.30, 11:35

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

Сообщение konstantin22 »

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

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

Сообщение yiiliveext »

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

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

Сообщение rosswe »

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

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

Сообщение konstantin22 »

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

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

Сообщение Alexum »

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

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

Сообщение konstantin22 »

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

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

Сообщение rosswe »

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