Да, это возможно в Magento, и вы получаете преимущество от всех других возможностей платформы, но вам нужно будет немного поработать, чтобы заставить Magento работать на вас. Чтобы сохранить немного здравомыслия, я использую термины Magento для всего этого ниже, поэтому обязательно прочитайте (обильные) ссылки Майка для более подробной информации по большей части.
Чтобы выполнить выбор города, вам нужно будет использовать комбинацию переменных клиента и переменных сеанса. Создайте блок и используйте его на главной странице, которая будет запрашивать у пользователя его город и вставлять его в сеанс. Если пользователь входит в систему, сохраните эти данные в своем профиле клиента и извлеките все сохраненные данные (чтобы им не приходилось выбирать каждый раз).
Чтобы получить ценообразование немного грубее. Если вы используете Enterprise Edition, богатый пакет мерчендайзинга позволит вам создавать сегменты клиентов на основе такой информации, как данные об адресе клиента. Используйте это, чтобы создать сегменты клиентов, а затем создать правила цены каталога для клиентов.
В сообществе, вам нужно проделать немного больше работы. Надеюсь, у вас есть достаточное количество городов для решения. Создайте группы клиентов для каждого города и переопределите модель клиента, чтобы назначить клиента соответствующей группе при регистрации (на основе выбора города). Затем назначьте цены в каталоге на основе группы клиентов, используя механизм ценообразования уровня. Это позволит вам назначать цену каждой группе клиентов по мере необходимости и определять цену по умолчанию, если многие города совпадают.
Одной из проблем здесь будет то, что управление большим прайс-листом не является чем-то, что Magento делает изначально, поэтому на самом деле ничего не оптимизировано для плавного управления этими прайс-листами. Если у вас относительно небольшое количество городов или сравнительно небольшой каталог, это не будет проблемой, но если один из них очень большой, вам может потребоваться написать пользовательскую страницу для более удобного управления прайс-листами.
Надеюсь, это поможет!
Спасибо,
Джо