Имеются в виду одновременно и не авторизованные и не зарегистрированные?
Тогда как-минимум нужно определить город.
Дальше у меня рождается два теоретических сценария.
1.
Играть на функции
dev.1c-bitrix.ru/api_help/main/reference/cuser/set...
которая привязывает зарегистрированного пользователя к группе без записи в БД (то есть на время действия сеанса). Но нам нужен авторизованный пользователь — это (регистрацию и авторизацию) можно организовать через API, привязав в соответствующей группе пользователей его города. Генерить ему логин по какому-то правилу и флажок ставить в карточке, что мол это "болванка", которую нужно будет перезаполнить при фактическом оформлении заказа
2. Имея город и зная, какая скидка отвечает за пользователей "оттуда", генерить одноразовый купон и скрыто его применить. Я помню, когда-то такой финт делал, но очень давно. Но делал =)