Время от времени мониторю скорость сайта на странице /bitrix/admin/site_speed.php. Всегда были в области "Быстро", примерно 0,9 сек, за последние две недели скатились до "Медленно", 1,7 сек. Сайт, конечно же, дорабатывается, время от времени добавляем функционал, но в указанный период ничего глобального с ним не делали. Откуда такое падение производительности? Как протестировать? Кто какие советы даст, куда смотреть?
На сайте есть подписка на событие при создании нового заказа, в ней происходит формирование xml-файла с данными заказа и отправка его в 1С, то есть данные в 1С отправляются всего один раз. Раньше этого было достаточно, но теперь появилась необходимость отправлять данные повторно при изменении заказа через админку. Можно прицепиться к подписке на событие OnOrderUpdate, однако у нас заказы иногда меняются программно, как раз таки из 1С. Получается замкнутый круг: поменяли в 1С, данные попадают на сайт, заказ апдейтится, снова выгрузка в 1С... Повторная выгрузка xml-файла нужна только в том случае, если данные заказа были изменены вручную через админку. Как отловить это событие и правильно его обработать? Может, возможно как-то доработать интерфейс админки для этого, но не повлияет ли это на возможность установки обновлений? Или есть еще какой-то, более правильный, вариант?
Снова "Покупка на Маркете": опять не можем пройти контрольную проверку
Вчера решил попробовать пройти тест в 11 вечера. Надежда была на то, что нагрузка на серваки ниже и все прокатит. Может звезды сложились хорошо, может Яндекс таки что-то подкрутил у себя, но все заказы прошли тест успешно.
Снова "Покупка на Маркете": опять не можем пройти контрольную проверку
Суть в чем. Если я открываю интерфейс "Отладка API покупки" на Яндексе, то могу запросто создать там заказ аж с 10 позициями товаров и отправить его к нам на сайт, где он замечательно формируется и возвращает маркету ответ примерно за 280 миллисекунд. Но когда я запускаю контрольную проверку в разделе Маркета "Покупка на Маркете - отчет по качеству", то создаются 7 контрольных заказов, 6 из которых проходят успешно, а "Заказ одновременно нескольких товаров" моментально возвращает статус "Не удалось создать заказ".
Яндекс по этому поводу отвечает: Юрий, я сейчас дополнительно связались с нашими коллегами. Было предположение, что магазин не успевает присылать ответы вовремя из-за проблем с оборудованием. Но, скорее всего, это не Ваша ситуация. В Вашем случае стоит написать напрямую в Битркис, чтобы они помогли разобраться в настройках. Спасибо!
Полагаю, что с настройками все в порядке, иначе через интерфейс отладки заказы тоже не приходили бы. Но они приходят. А контрольный заказ - валится с ошибкой...
Снова "Покупка на Маркете": опять не можем пройти контрольную проверку
А они мне вот буквально 10 минут назад такой ответ прислали:
Юрий, добрый день! К сожалению, при всем моем желании, мы не можем помочь Вам решить данную проблему, т.к. описанная ситуация в зоне ответственности Битрикса. Скорее всего, некорректно выставлены настройки внутри Битрикса. Вам необходимо связаться со специалистами данного сервиса. Спасибо!
Снова "Покупка на Маркете": опять не можем пройти контрольную проверку
Уже как-то писал на эту тему, снова возникли проблемы.
Какое-то время назад подключились к программе "Покупка на Маркете". Прописали все параметры точно так, как указано . И даже прошли проверку, и даже запустились.Через некоторое нас отключили от программы за большое количество ошибок. Посмотрел лог ошибок в API Маркета, вижу одну и ту же ошибку, возвращаемую нашим сайтом Маркету каждые 15 минут: "Неизвестный статус заказа". Происходит это в том случае, если Маркет пытается получить список неоплаченных заказов - в текста запроса Маркета есть такая строка: {"order":{"id":126724,"fake":true,"currency":"RUR","paymentType":"PREPAID","paymentMethod":"YANDEX","status":"UNPAID","creationDate" В случаях, когда запрашивается иной статус, все проходит нормально. Думал, что неверно настроил параметры "Покупки на Маркете" в настройках сайта. Потом посмотрел исходник модуля и выяснилось, что Яндекс запрашивает товары со статусом UNPAID. Обработка статусов производится в bitrix/modules/dale/general/ym_handker.php в protected function processOrderStatusRequest($arPostData) Там есть варианты статусов case 'PROCESSING': case 'DELIVERY': case 'PICKUP': case 'DELIVERED ': break; case 'CANCELLED': варианта UNPAID нет совсем.
Кроме того, никак не удается пройти проверку "Заказ с предоплатой через Yandex". Причем один раз нам это удалось, как я уже писал ранее. Можно предположить, что это из-за того, что в учебнике для пункта "Предоплата через Яндекс" указана "Оплата в платежной системе Яндекс.Деньги", а у нас стоит "Безналичный расчет". Но ранее уже стоял "Безналичный расчет" и проверка была пройдена, теперь же - никак.
Два вопроса: 1. Что делать со статусом UNPAID, который Маркет запрашивает каждые 15 минут? 2. Какие все-таки правильные настройки должны быть указаны на сайте для того, чтобы пройти наконец все проверки, в частности - "Заказ с предоплатой через Yandex" (все остальные проходят успешно).
В модуле bitrix/modules/sale/general/ym_handler.php закомментировал строку:
public function checkAuth() { return true; //return $_SERVER["REMOTE_USER"] == $this->yandexToken; // !!!!! }
Косяк с наименованием кодировки описал выше. Еще боролся с косяком, связанным с названием города, пока временно прописал название города прямо в коде (смотрите строки с !!!!! в конце):
private function getLocationByCityName($cityName) { $result = 0;
Такое эе название города надо прописать в настройках магазина: Магазин - Настройки - Местоположения - Список местоположений, иначе параметры доставки заполняться не будут. Сейчас дошел до проблемы, описанной Юрием Игнатовичем - также требует указать outlet.
Я туда почти дошел - тоже проблемы с доставкой, правда еще не понял какие, пока только вижу, что массив с данными о доставке пуст. Два часа потратил на то, чтобы понять, почему у меня вообще результирующий массив $arResult с данными для маркета наполовину пустой. Выяснил, что вырезает все строковые значения и заменяет их на "". В итоге нашел косяк в этой строке:
Отпишитесь по результатам плиз. Я пока заглушил проверку токена Яндекса, запрос к сайту стал уходить, но подтверждение наличия товара на складе пока обратно не уходит, копаю дальше.
Ну в общем-то в документации тоже не указано, на какой скрипт сайта необходимо натравливать маркет для формирования заказа, я использовал скрипт bitrix\services\ymarket\index.php
По второй части ответа тоже все верно: сгенерирован самоподписанный SSL-сертификат, получен его SHA1-отпечаток, все прописано в настройках яндекса и магазина. Но при попытке сделать тестовый заказ идет отлуп
Скрипт нужный нашел, запрос от Яндекса он принимает, но возвращает всегда ответ 401 "Неавторизованный запрос". Куда копать? Как авторизоваться? Я понимаю, что от коллег по цеху вряд ли получится узнать ответ, но разработчики платформы то форум посещают, или нет?
В последнем обновлении платформы появился функционал для работы по программе "Покупка на маркете". На стороне сайта все настроил (Админка - Магазин - Покупки на Маркете), в учетке яндекса тоже все указал, но при отправке тестовых заказов получаю ошибки CANT_GET_RESPONSE и INVALID_RESPONSE. В качестве URL API в настройках Яндекса указывал URL сайта или путь к корзине - заказы не проходят в обоих случаях. Подозреваю, что в определенный каталог сайта необходимо положить скрипты, которые будут отрабатывать запросы Яндекса, но где тогда брать эти скрипты? Или может они уже где-то лежат, но я просто не знаю где именно? Кто уже пробовал подключаться к данной программе Яндекса, помогите плиз, а то всю голову сломал уже.
Добавил новое свойство для инфоблока, в админке у товара все нормально заполняется, но в массиве DISPLAY_PROPERTIES при формировании страницы этого свойства нет. При этом в общем массиве свойств оно присутствует. Проверил настройки свойства - активность включена, все остальные параметры тоже совпадают с параметрами других свойств, которые отображаются корректно. Что я делаю не так?
Программа «Покупка на Маркете» - есть ли уже модули для работы с ней?