Плагин Яндекс.Маркет Архив

3

Все настроил согласно инструкции, но при нажатии на маркете (отладка API заказа) кнопки актуализировать появляется сообщение:

Произошла неизвестная ошибка API магазина. Подробности можно посмотреть в логе API.

В логах пусто...

27 комментариев

  • +2

    Сертификат и https установил, теперь выдает:

    URL = https://unilamp.ru/yandexmarket/api/cart
    Параметры URL: auth-token=6A0000013D******
    Детали ошибки = JSON deserialization error; nested exception is java.io.IOException: attribute id is not textual
  • +2
    Red Cat Red Cat 25 мая 2016 06:44 #

    После сегодняшнего обновления тип ошибки сменился на:

    Детали ошибки = validate error: delivery type=PICKUP and outlets is null

  • +1

    Чуть правее должна быть ссылка на логи на том же экране, что и выполняется тестовый заказ.

  • +1

    По ссылке пусто

    • +1

      Похоже, что-то не так на стороне Яндекса %)

      За время отладки и тестирования неоднократно наблюдал ошибки вида "Сервис перегружен, попробуйте позже" и "Произошла внутренняя ошибка".

      • +1

        В самом магазине должен еще быть лог обращений к API.

        А точно формат JSON выбран в настройках на сайте Маркета?


      • +1

        А вот это победить никак не могу. Есть подозрение, что Shop-Script не может найти feedId.

        • +1

          Попробуй зайти в раздел Отчеты -> Яндекс.Маркет. На том экране будет понятно, удалось ли плагину определить feedID и прочее (в столбце Прайс-листы должна быть ссылка на профиль экспорта в Яндекс.Маркет в магазине).

          • +1

            Неа. Поле "Прайс-листы" пустое.

            Стоит заметить, что профилей фидов YML всего в системе штук 20. Для разных сервисов. Конкретнов Маркет выгружается только один, причем не все товары, а только из списка. Может из-за этого?

            • +1

              На стороне Яндекса не указан ни один из фидов, который он бы забирал для этого домена автоматически? В списке прайс-листов должны показываться все фиды, о которых знает яндекс.

              Если фиды загружаются в ручную, то это представляет проблему — такой вариант взаимодействия не тестировался и нет видимой настройки для указания этого соответствия (особенно, если доменов, подключенных к маркету более одного)

              • +1

                Забирает автоматом по ссылке. На всякий случай нажал кнопку проверить. Все OK

                • +1

                  тогда возможна следующая точка отказа: wa-apps/shop/plugins/yandexmarket/lib/shopYandexmarket.plugin.php:657

                  if (!empty($campaign['settlements'])) {

                  Либо некорректно собирается список поселений $settlements (на два десятка строчек выше, либо ошибка в условии поиска совпадений 5 строчками выше)

                  • +1

                    Основной домен с www. В кампании он же без www

                    Сделал var_export $data (campains) и $settlements на 645 строке

                    Настройки поселения нужны? Там добавлен домен, у него все поселения с www


                    • +1

                      Возможно, частично поможет такая модификация:

                      $domain = preg_replace('@^www\.@', '', $domain); # вырезаем www из поселения
                      $settlement = $domain.'/'.$route['url'];
                      $settlements[] = compact('domain', 'settlement');

                      (И в условии сравнения тоже по хорошему надо вырезать www)

                      • +1

                        Внес исправления и в условие сранения тоже.

                        В отчете информация появилась (хотя остаток на счете она в рубли переводит по курсу магазина, а не по внутреннему курсу Яндекса 1.уе.=30 р.)

                        Но тесты API все равно не проходят. Ищу, где еще могут сравниваться поселения и домены

                        • +1

                          Конвертацию поправим.

                          Значит действительно есть непротестированный до конца момент инициализации данных о фидах.

                          Если в ручную, то следующим образом:

                          %feed_id% показывается в столбце прайс-листы %store_id% - в столбце левее. %profile_id% - число из урла соответствующего профиля экспорта (они записываются строкой с разделением двоеточием).

                          $m = new waAppSettingsModel();
                          $map = array(
                          	'%feed_id%'=>'%profile_id%:%store_id%',
                          );
                          $m->set('shop.yandexmarket','feed_map',json_encode($map));
                        • +2

                          Информации в ответе стало больше, но count и price все равно по нулям у любого товара

                        • +1

                          И еще настройки этого фида

                        • +1

                          Добился появления логов. Вот что пишет яндекс:

                          URL = https://unilamp.ru/yandexmarket/api/cart

                          Параметры URL: auth-token=C20000016D54*****
                          Детали ошибки = I/O error on POST request for "https://unilamp.ru/yandexmarket/api/cart?auth-token=C20000016D54*****":Connect to unilamp.ru:443 [unilamp.ru/5.101.152.77] failed: Connection refused; nested exception is org.apache.http.conn.HttpHostConnectException: Connect to unilamp.ru:443 [unilamp.ru/5.101.152.77] failed: Connection refused
                        • +1

                          Нет... в этом значит дело?

                        • +1
                          Red Cat Red Cat 24 мая 2016 06:08 #

                          Что имеется в виду?

                          Детали ошибки = JSON deserialization error; nested exception is java.io.IOException: attribute id is not textual

                          Это неправильная настройка или баг?

                        • +1
                          Evgenia Petriy Evgenia Petriy 6 сентября 2018 22:19 #

                          Здравствуйте, скажите в чем может быть проблема ? 

                          В Маркет выдал ошибку по выгрузке -502 .Стала смотреть в чем может быть дело. В админке на сайте выдаёт - Fatal error: Call to undefined method waIdna::dec() in /home/cosonline/1.cosonline.z8.ru/docs/wa-apps/shop/plugins/yandexmarket/lib/shopYandexmarket.plugin.php on line 1071


                          Кеш чистила, осталось только удалить и переустановить плагин, но оч не хочется этого делать. Может кто подскажет в чем дело? 

                          Эта тема в архиве. Добавление комментариев к ней отключено.