Олег Захаров

Олег Захаров

С нами с 14 октября 2017; Место в рейтинге пользователей: #64
05 октября 2023, 12:56
0
Перестал работать компонент — выходит ошибка
?apikey=6ee930bf-c98….ready&ns=ymaps:152 Uncaught 
YMError {name: 'FeatureRemovedError', message: 'Suggest is not available. See https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/suggest', stack: 'FeatureRemovedError: Suggest is not available. See…ll&onload=mscDistance.Ymaps.ready&ns=ymaps:71:35)'}
message
: 
"Suggest is not available. See https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/suggest"
name
: 
"FeatureRemovedError"
stack
: 
"FeatureRemovedError: Suggest is not available. See https://yandex.com/dev/jsapi-v2-1/doc/en/v2-1/ref/reference/suggest\n    at Object.create (https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.79-12582779/build/debug/full-d51589ea85e8a3942e95b516910fa20e45c52c65.js:21744:24)\n    at Object.suggest (https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.79-12582779/build/debug/full-d51589ea85e8a3942e95b516910fa20e45c52c65.js:173957:45)\n    at https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.79-12582779/build/debug/full-d51589ea85e8a3942e95b516910fa20e45c52c65.js:134590:37\n    at Array.<anonymous> (https://api-maps.yandex.ru/2.1/?apikey=6ee930bf-c98d-4e9f-9e3c-a1c854a3744b&lang=ru_RU&mode=debug&load=package.full&onload=mscDistance.Ymaps.ready&ns=ymaps:760:56)\n    at MutationObserver.callFns (https://api-maps.yandex.ru/2.1/?apikey=6ee930bf-c98d-4e9f-9e3c-a1c854a3744b&lang=ru_RU&mode=debug&load=package.full&onload=mscDistance.Ymaps.ready&ns=ymaps:71:35)"
[[Prototype]]
: 
YMError
Подскажите что сделать чтобы исправить ошибку?
23 сентября 2023, 02:40
0
Как обстоят дела с обновлением дополнения и обещанными разработками? Рабочее ли дополнение и можно ли применять на боевых сайтах? Чем оно лучше/хуже msBonus2?
23 сентября 2023, 01:30
0
Нашли решение?
И почему «У вас на все страницы будет отдаваться одна каноническая» проблема?
07 июля 2022, 08:54
0
А когда ожидается перевод на MODX3? Есть ли дорожная карта?
14 апреля 2022, 12:13
0
Вот что странно иногда возникают ситуации когда код @mngatoff не срабатывает — у меня миникорзина выпадает через меню dropdown в выпадающий список, Bootstrap 5 — возникает какая-то ошибка и событие change на поле input ну ни в какую не хочет срабатывать. Плюс на сайте может быть несколько корзин.
И тут пригождается кусок кода ms2.js в ТС (только не удаляйте) — прием как отправить ms2_action: 'cart/change' оказался для меня лично очень полезен.
Да не по стандарту, но главное что работает. Может я не адекватный программист, но я уже не знаю как заставить сработать стандартным «правильным» способом $count.trigger('change'), т.к. возникает конфликт с Bootstrap 5 — кстати в нем по умолчанию отключили jQuery — интересно когда коды js minishop перепишут без использования jQuery?..
На другом сайте с Bootstrap 3 все работает нормально.
11 апреля 2022, 00:43
0
заодно материал docs.modx.pro/komponentyi/minishop2/drugie-dopolneniya/msmcd имеет смысл либо поправить либо убрать — а лучше заменить на рабочий компонент
11 апреля 2022, 00:41
0
А нельзя ли выложить последнюю рабочую версию?
Или как-то решить вопрос о продолжении поддержки компонента?
Реально это большая проблема.
Делаю сайт на Bootstrap 5 — на имеющихся решениях по мотивам статьи dart.agency получаю кучу ошибок. Уже неделю бьюсь над настройкой, нет слов чтобы описать ну почему нельзя сделать компонент чтобы поставил и забыл. Ну обязательно надо танцевать с бубнами.
Ну почему нет нормального рабочего компонента (извините уже на эмоциях...)
12 марта 2022, 00:01
0
Уважаемые разработчики, прошу сообщить — планируете ли разработать новую версию компонента с поддержкой Bootstrap 5?
01 декабря 2021, 19:49
0
Поставил MinifyX, в результате режет некоторые стили.
В частности не выводит тени у стилей в формате «box-shadow: 0 0.5rem 1rem rgb(0 0 0 / 15%), 0px 15px 20px -15px rgb(0 0 0 / 90%);». Тупо пропускает такой код. Вынужден был пока отказаться от MinifyX. Прошу разработчика поправить ошибку.
02 октября 2021, 22:12
1
0
В файле /core/components/shopstats/model/shopstats/minishop2.class.php есть код
$q_stats_month->select('status,`createdon`, month(`createdon`) AS `order_month`, count(*) AS `order_count`, SUM(cart_cost) AS order_cost');
я его исправил на
$q_stats_month->select('status,`createdon`, month(`createdon`) AS `order_month`, count(*) AS `order_count`, SUM(cost) AS order_cost');
т.к. cart_cost это стоимость товаров в корзине. А по факту к стоимости заказа может быть добавлена стоимость доставки delivery_cost или скидка (если у вида доставки в настройках Minishop поставить в поле «Доп. стоимость:» отрицательное значение например -15% то будет добавляться скидка). cost — это итоговая стоимость товара.
Спасибо за виджет. Можно кастомизировать под себя.
Жаль не обновляете — хотелось бы вывод сделать по сумме и количеству заказов не только за годы, но и например выводить стоимость заказов за последний месяц, добавить возможность фильтрации и выбора отображения сведений за разные периоды, статусу — как это сделано в основном экране заказов магазина Minishop 2.
25 сентября 2021, 00:24
0
Источник проблемы был — подгружаемый скрипт yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-1/2.1.79-26/build/debug/full-a37604fde567790c251386c8114a5a4c2048380e.js
В нем есть на строке 167285:
setTimeout(function () {
            document.head.insertBefore(tag, document.head.firstChild);
        }, 0);
— через просмотр источника в вкладке Sources всплывает подсказка о ошибке на текст «insertBefore(tag, document.head.firstChild)» — текст сообщения об ошибке «Failed to load resource:the server responded with a status of 400 ()»
На него в консоли выходит ошибка:
full-a37604fde567790c251386c8114a5a4c2048380e.js:167286 GET https://api-maps.yandex.ru/services/search//v2/?callback=id_163251784219566603305&text=&format=json&rspn=0&lang=ru_RU&results=1&token=780a34112aa192be3eeaa652724b81e9&type=geo&properties=addressdetails&geocoder_sco=latlong&origin=jsapi2searchcontrol&apikey=туткодapikey net::ERR_ABORTED 400
25 сентября 2021, 00:01
0
Код подключения Api для яндекса указывается в скрипте assets/components/mscdistance/js/web/default.js — он скорее всего должен быть там прописан. И в коде подключения api должен быть обязательно ключ apikey. У меня при одной переустановке компонента почему-то этот код apikey отсуствовал. Благо в резервных копиях он остался и я вручную его прописал и доставка заработала — но только на ПК. На мобильных были проблемы работы, вроде решил путем явного прописывания в начало чанка head кода подключения метрики с указанием apikey. Мой коммент ниже.
24 сентября 2021, 23:56
0
Еще сегодня нашел одну возможную проблему неправильной работы доставки. На тестовом сервере все работало, на рабочем доставка в упор не считалась, карта не обновлялась По выводимым ошибкам поискал информацию и нашел рекомендации о том чтобы код api яндекс карт не были ниже кода метрики. Понаблюдал за тем как код карт подгружается и пришел к выводу о том что возникает проблема с попыткой скрипта assets/components/mscdistance/js/web/default.js добавить (инициализировать) карту. Конкретно у меня возникал конфликт с метрикой (т.к. ее код подгружался через Google Tag Manager динамически) я по совету форумов повторил код апи яндекс карт с указанием ключа — вставил непосредственно выше (но не рядом с метрикой и не над ней — все равно глючило) и все прекрасно стало грузиться.
Была проблема плохой работы на мобильных устройствах. Почитал справочные материалы — оказалось что вроде на устройствах с низкой скоростью интернета методы со вставкой кода (метод document.writeln в default.js) плохо срабатывают — где-то пишут что блокируется браузером. Вышеуказанный метод вставки кода непосредственно в начало чанка head помог с решением проблемы. Но это костыль. Вставлял так:
<script src="https://api-maps.yandex.ru/2.1/?apikey=ВзялAPIкодИзdefault.jsс5строки&lang=ru_RU&mode=debug&load=package.full&onload=mscDistance.Ymaps.ready&ns=ymaps" type="text/javascript">
    </script>
По сути это повтор 5 строки скрипта assets/components/mscdistance/js/web/default.js — и сайт сразу стал прекрасно работать и на мобильном тоже. Таковы мои изыскания нескольких бессонных ночей. Искал причину по разному, переделал форму заказа и корзины, а оказалось проблема в конфликте кода метрики с кодом подключения карт.
24 сентября 2021, 23:45
0
Есть еще проблема — если ввести и выбрать адрес доставки, карта инициализируется и стоимость пересчитывается. Но если очистить строку адреса стоимость и поля координат и расстояний не пересчитываются. Вообще хотелось бы сделать проверку что поле длины расстояний (mscdistance_delivery_distance) не оставались пустыми или равными 0. Если в поле указания адреса доставки введенный адрес удалить и ввести новый адрес и кликнуть по выпадающему адресу — вроде бы карта переинициализируется. Но периодически бывает так чтобы не обновляется и стоимость не сбрасывается.
Попробовал сделать такой код на проверку что поле адреса пустое вызывая команду mscDistance.initialize();
$(document).on('change keydown','#mscdistance_delivery_to_point',function(e){
			/*надо бы добавить проверку логики если ранее выбранная улица не совпадает с новой*/
			if($(e.target).val()!=""){
                            /*если поле не  пустое*/
			}else{
				/*пытаемся пере инициализировать расчет доставки*/	
				mscDistance.initialize();
			}
		});
$(document).on('blur','#mscdistance_delivery_to_point',function(e){
			if($(e.target).val()==""){
				mscDistance.initialize();
			}
		});
Не работает, сумму доставки и карту не обновляет. Какая команда в js отвечает за переинициализацию доставки (стоимости и карты маршрута)?
22 сентября 2021, 04:01
1
0
Еще момент — иногда возникают ошибки расчета стоимости когда например пользователь ввел один адрес, стоимость доставки посчиталась и запомнилась в форме. Затем пользователь меняет адрес доставки, но стоимость уже остается посчитанной для предыдущего адреса. Т.е. получается не пересчитывается доставка. Так можно сделать обман пользователем чтобы доставка посчиталась по минимуму а затем уже выбирается реальный адрес, а стоимость может остаться старой.
Или же пользователь ввел заново название города, а улицу не указал (есть адреса типа железнодорожная станция и она не сохраняется как улица), или она не подставилась, и доставка точно не посчиталась/ не обновилась. У меня происходит так что если указать просто Новосибирск — то выводится Новосибирск, и тогда считается доставка в центр или даже оставляет старый маршрут (карта не перерисовывается) и стоимость доставки не меняется. Для указания просто города наверное вообще надо делать чтобы доставка не считалась правильно указанной и посчитанной.
Вижу решение проблемы чтобы через js проверять чтобы улица (поле street, делаю у себя скрытым, заполняется после заполнения через поле mscdistance_delivery_to_point) была заполнена.
Но были также ошибки когда не считается переменная mscdistance_delivery_distance. И доставка не считается. Как быть в этом случае? Приходится думать в сторону написания JS кода для проверки наличия заполнения mscdistance_delivery_distance (ну и mscdistance_delivery_to_point соответственно).
22 сентября 2021, 01:45
1
0
Еще хотелось бы настраивать отображение карты, задавать возможность отображения маркера, масштаба показа в начальный момент экрана загрузки карты.
Еще очень хотелось бы чтобы пользователь мог выбрать точку на карте (кликнуть по зданию) и указать что-то типа доставить сюда.

Ведь это было удобно для пользователя.
Плюс еще есть потребность чтобы если пользователь авторизован, адрес доставки можно хранить в настройках пользователя и при оформлении заказа у авторизованного пользователя была возможность выбирать адрес доставки по умолчанию — и тогда при оформлении заказа чтобы доставка рассчитывалась для этого адреса, выбранного по умолчанию (или даже хранить несколько адресов у пользователей и была возможность выбирать в момент оформления заказа.)
И еще вопрос за что отвечает mscDistance.product.cost (не уверен входит ли он в стандартную поставку компонента — на исправляемом сайте клиента компонент уже стоял, возможно этот сниппет был создан другим программистом)? Как его использовать? Посмотрел код, можно разобраться. Но было бы правильно указать его описание на странице компонента — сейчас там о нем нет описания.
22 сентября 2021, 01:26
1
0
Вопрос — у последних версий нет системных настроек?
Например на mscDistance
есть указание возможности задания настроек.
Например не нашел в настройках способа доставки (задаваемого в настройках Minishop) возможность ограничить:
Город доставки — указать город в пределах которого осуществляется доставка товаров
Регион доставки — указать регион в пределах которого осуществляется доставка товаров
Вот хочу я например ограничить доставку одним городом, чтобы не выводил адреса из других городов. Сейчас можно указать адрес доставки другие города что мешает.
Сейчас в системных настройках по mscdistance пусто. Пробовал переустановить, все равно пусто.
Или можно указанные настройки вручную создать. Как они будут работать. Почему нельзя было вывести в системные настройки? Или это баг?
19 сентября 2021, 20:41
0
Ошибка (работы формы заказа) была на моей стороне, исправил, вопрос пока снят.
Но факт есть факт — приложение как-то коряво у меня сработало. При открытии корзины оно как бы по ссылке формирует новую корзину добавляя к старой — в итоге получается что если несколько раз по ссылке перехожу — то сумма столько же раз удваивается. Причем на форме заказа количество товаров не совпадало с количеством с создаваемым.
Но так как альтернативы не вижу — буду пробовать ставить повторно и тестировать. О результатах отпишусь.