Повторяется на https://demo.cs-cart.ru/
Если в местоположение внести “Уфа”, то после нажатия на Ок будет “Приволжский федеральный округ”
Волгоград - Южный федеральный округ
И следовательно службы доставки стоимость не присылают - способ не доступен становится.
Обсуждали тут Место положение покупателя
О, у нас тоже “Центральный федеральный округ” – мы думали у нас что-то локальное. Проблема видимо массовая. Есть у команды @Asya решение какое-нибудь?
Глушат GPS))
интересно, а может быть такое, что проблема на стороне Яндекса каким-то образом?
сегодня потыкал на демке unitheme, там у них гугл карты включены вместо яндексовских, и всё работает норм, никаких федеральных округов вместо городов.
нам, по всей видимости, удалось победить проблему, обращайтесь
Расскажите пожалуйста, актуально
/js/addons/geo_maps/locator.js
эта штука отвечает за определение города)
там функция есть, или как это называется $.ceGeoLocate
написали в ней подмену, что если там он “федеральный округ” находит и впихивает его в locality, то переназначал бы реальный город на основе геоданных. потому что по факту он все верно определяет и все данные у него есть, просто зачем-то впихивает в locality не то, про округ. файл с фиксом прикрепил, версия geo_maps 1.0 у нас, как и у всех, наверное
locator.zip (2,6 КБ)
Спасибо, я передал информацию об этой проблеме разработчикам.
здесь поточнее
locator.js.zip (3,0 КБ)
путь тот же
/srv/projects/100kwatt.ru/public_html/js/addons/geo_maps
прошлый фикс работал норм только при пикере города, этот и при автоопределении отлично работает. на подмене геолокации в браузере протестили, всё ок.
Не хотите отдельным SP выпустить? Год как бы мучаемся
Отдельного SP для этой проблемы точно не будет, это не критическая проблема, ломающая основную функциональность магазина. SP обычно только для таких вещей выпускаются. Но в одну из patch версий, в будущем, надеюсь, войдёт.
Вот завели бы вы на всю компанию один интернет-магазин и торговали бы физическими товарами, чтобы ощущать на деле, что такое критическая проблема а что нет. Я уверен, много переосмыслений бы случилось
получать вместо заказов брошенные корзины это не критично?
Когда мне говорят не критично, я говорю что для вас критично? когда nginx - закрытая витрина?
так заводили, в том или ином виде, разорились или бросили
Здравствуйте, @styan , @z.temerbekov , @100kwatt.ru .
Мы исправили проблему. Исправление войдет в следующую версию CS-Cart.
Если вы хотите внести исправления, не дожидаясь выхода следующей версии, откройте файл js/addons/geo_maps/provider/yandex/locate.js и около ~39 строки замените код:
geo_maps_yandex.geocode([lat, lng])
на код:
geo_maps_yandex.geocode([lat, lng], { kind: 'locality' })
Затем очистите кеш в CS-Cart и браузере.
Спасибо, очень вовремя!
Вижу на 29 строке в функции getLocationByCoords только вот такое место
geo_maps_yandex.geocode([lat, lng]).then(d.resolve).fail(d.reject);
меняем на
geo_maps_yandex.geocode([lat, lng], { kind: ‘locality’ }).then(d.resolve).fail(d.reject);
праивльно?
Нужно в файле js/addons/geo_maps/provider/yandex/locate.js заменить код:
getLocationByCoords: function (lat, lng) {
var self = geolocate,
d = $.Deferred();
geo_maps_yandex.geocode([lat, lng])
.then(d.resolve)
.fail(d.reject);
return d
.then(self._extractLocationFromGeocodeResponse)
.then(self._getStateCode)
.promise();
},
на код:
getLocationByCoords: function (lat, lng) {
var self = geolocate,
d = $.Deferred();
geo_maps_yandex.geocode([lat, lng], { kind: 'locality' })
.then(d.resolve)
.fail(d.reject);
return d
.then(self._extractLocationFromGeocodeResponse)
.then(self._getStateCode)
.promise();
},
Исходный код функции в таком виде был всегда. Если были какие-либо модификации, то стоит обратиться к разработчику.
Или можно подождать выхода новой версии CS-Cart.
Спасибо что решили проблему. Теперь все правильно работает