Ошибка при экспорте на яндекс маркет Есть решение

2

При попытке экспорта товаров в я.маркет возникает следующая ошибка. И получить ссылку тоже нельзя. Поставил на папки права 700


Экспортировано 144 категорий, 177 товарных предложения (общее время: 00 ч 00 мин 12 сек)
  • YML-файл содержит ошибки
  • LIBXML_ERR_WARNING #1549 [0:0]: failed to load external entity "/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/10.xml"
  • LIBXML_ERR_ERROR #522 [0:0]: no DTD found!

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

  • 0

    Если вы ставите права на директорию 700, то вы прекрасно понимаете, что эти права означают для владельца, группы и остальных пользователей.

  • +2
    art-vmx art-vmx 27 февраля 2017 14:12 #

    Так как в итоге правильно сделать? и в этом ли ошибка ?

  • +1

    Владислав Горлов

    Сформулируйте ответ более понятно. Что надо сделать, чтобы решить проблему?

    У нас тоже у клиента такая проблема наблюдается. Хорошо, что магазин, еще на стадии тестирование.

    • +1

      Дополню. Пробовал изменить права на 777 <sub>для папки</sub> */yandexmarket/ , не помогло.

      • +2

        Бекенд открывается через https?

        Файл формируется?

        В директории wa-data/protected/shop/plugins/yandexmarket/ есть файл shops.dtd и достаточные ли у него права?


        • +1

          Бекэнд http но оформление и личный кабинет https.

          YML файл не формируется. Для файла shops.dtd стоит права по умолчание 600.

          • +1

            Удаление и установка плагина не помогло.

          • +1

            попробуйте удалить файл shops.dtd, чтобы плагин заново его скопировал.

            • +1

              Удалил файл. Плагин пересоздал его но ошибка остается. YML файл не сформировался.

              • +1

                Тогда нужны еще логи ошибок: что-то еще не так

                • +1

                  Логи хостинга пуст. Сайт вчера перенесли с одного хостинга на другой , логирование включен.

                  Логи от приложение вебсист "Логи"

                  2017-02-27 17:06:19 89.236.234.156
                  Error #1549[1] at [0:0]: failed to load external entity "/home/а/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml"

                  Error #522[2] at [0:0]: no DTD found!


                  2017-02-27 17:15:40 89.236.234.156
                  Error #1549[1] at [0:0]: failed to load external entity "/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml"

                  Error #522[2] at [0:0]: no DTD found!


                  2017-02-27 17:34:18 79.120.39.191
                  Error #1549[1] at [0:0]: failed to load external entity "/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml"

                  Error #522[2] at [0:0]: no DTD found!


                  2017-02-27 17:40:51 89.236.234.156
                  Error #1549[1] at [0:0]: failed to load external entity "/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml"

                  Error #522[2] at [0:0]: no DTD found!


                  2017-02-27 17:46:38 89.236.234.156
                  Error #1549[1] at [0:0]: failed to load external entity "/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml"

                  Error #522[2] at [0:0]: no DTD found!


                  p.s. art-vmx это и есть наш клиент)

                  • +1

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

                    • +1

                      Включил логирование ошибок PHP в приложение "Логи".

                      Вот тут можете скачать\посмотреть лог http://velomatrix.ru/php.log

                      • +1

                        [27-Feb-2017 22:37:37 Europe/Moscow] PHP Warning: rename(/home/s/skyne7jf/velomatrix.ru/public_html/wa-cache/temp/shop/plugins/yandexmarket/58b47ff46cc84.xml,/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml): No data available in /home/s/skyne7jf/velomatrix.ru/public_html/wa-system/file/waFiles.class.php on line 129

                        Собственно, проблемный момент. Либо что-то не так с правами и владельцами файлов, либо с файловой системой (rename может работать некорректно на "сложных" и разнородных файловых системах). Либо во время экспорта файл был удален (очистка кеша/временных файлов может привести к этому — кнопка "очистить кеш" в Инсталлере делает в частности это)

                        • +1
                          art-vmx art-vmx 28 февраля 2017 13:50 #

                          Тех. поддержка beget написала, что в процессе экспорта возникает предупреждение:

                          [27-Feb-2017 22:37:37 Europe/Moscow] PHP Warning: rename(/home/s/skyne7jf/velomatrix.ru/public_html/wa-cache/temp/shop/plugins/yandexmarket/58b47ff46cc84.xml,/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/12.xml): No data available in /home/s/skyne7jf/velomatrix.ru/public_html/wa-system/file/waFiles.class.php on line 129

                          Причину возникновения которого пока установить не удалось.

                        • +1

                          Скриншот файловой системы хостинга. Для теста переместил файл waFiles.class с рабочего сайта не на рабочий, не помогло.

                          • +1

                            Временном папке файл генерируется но что то мешает, чтобы скопировать его на рабочую папку

                            • +2

                              Думаем проблема в стороне хостера beget.com или у вас сделано не универсально.

                              Подняли чистый движок на поддомене a.velomatrix.ru, такая же ошибка.

                              В файле waClass.php есть такой отрезок


                               {
                                      self::create(dirname($target_path));
                                      return rename($source_path, $target_path);
                                  }

                              Если заменить rename на copy все работает.

                              Но решение ли это?

                              • +1

                                Попробуйте изменить код в файле wa-apps/shop/plugins/yandexmarket/lib/actions/backend/shopYandexmarketPluginRun.controller.php:863

                                с

                                waFiles::delete($target);
                                waFiles::move($file, $target);

                                на

                                waFiles::delete($target);
                                clearstatcache();
                                sleep(1);
                                waFiles::move($file, $target)
                                • +1

                                  В файле waClass.php copy оставить и вернуть rename?

                                  {
                                          self::create(dirname($target_path));
                                          return rename($source_path, $target_path);
                                      }
                                • +1

                                  Ошибка

                                  Не выгружено ни одного товарного предложения, файл не создан.

                                  В логах export.error.log

                                    'base_url' => 'velomatrix.ru',
                                    'app_settings' => 
                                    array (
                                      'ignore_stock_count' => '0',
                                    ),
                                    'count' => 
                                    array (
                                      'category' => 25,
                                      'delivery_options' => 0,
                                      'product' => 50,
                                    ),
                                    'current' => 
                                    array (
                                      'category' => 25,
                                      'delivery_options' => 0,
                                      'product' => 50,
                                    ),
                                    'processed_count' => 
                                    array (
                                      'category' => 25,
                                      'delivery_options' => 0,
                                      'product' => 0,
                                    ),
                                    'stage' => 'product',
                                    'stage_name' => 'Товарные предложения',
                                    'memory' => 2403696,
                                    'memory_avg' => 2212984,
                                    'currency' => 
                                    array (
                                      0 => 'RUB',
                                    ),
                                    'default_currency' => 'RUB',
                                    'primary_currency' => 'RUB',
                                    'delivery-option' => 
                                    array (
                                      'cost' => '0',
                                      'days' => '',
                                      'order-before' => 24,
                                    ),
                                    'path' => 
                                    array (
                                      'offers' => '/home/s/skyne7jf/velomatrix.ru/public_html/wa-data/protected/shop/plugins/yandexmarket/17.xml',
                                    ),
                                  )
                                • +1

                                  Больше похоже на проблему на стороне хостера (Аналогичная проблема всплывала как раз на beget), на остальных тысячах установок проблемы нету. Тем более на beta у вас код работает.

                                  • +1

                                    Очень ждем ответа. После правки файла

                                    wa-apps/shop/plugins/yandexmarket/lib/actions/backend/shopYandexmarketPluginRun.controller.php

                                    плагин дает ошибку

                                    Хостер отправляет к вам, а вы отправляете нас на хостер.

                                    Последние сообщение от хостера


                                    Здравствуйте, Дело в том, что ошибка, которую вы получаете генерируется самим модулем экспорта, поэтому по данному вопросу вам необходимо обратиться именно к разработчикам. Каких-либо ошибок, кроме указанной моим коллегой ниже не возникает. Это значит, что ошибка перехватывается самим модулем и разработчики точно должны знать с чем она может быть связана.
                                    • +1

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

                                      У вас на одном хостинге на одном аккаунте три установки, причем в одной из них код работает, а на двух других — нет. Следует сравнить код, права и структуру директорий, которые используются для временных и финальных файлов экспорта в этих установках. Большее телепатические возможности не дают посоветовать.

                                      • +1

                                        Сказать что проблема в коде движка будет не правильно.

                                        a.velomatrix.ru - хостинг beget.com - экспорт не работает

                                        velomatrix.ru - хостинг beget.com - экспорт не работает

                                        beta.velomatrix.ru - хостинг timeweb.ru - экспорт работает. Заказчик перешел с timeweb на beget из за проблем создание эскизов но это уже другая проблема.

                                        Подождем ответа от службы поддержки Beget.com


                                      • +2

                                        Вроде решили проблему экспорта.

                                        Администратор хостинга beget.com сменил наш сервер. В другом сервере таких проблем не наблюдается.

                                        Были на сервере vader4 перенесли на сервер robin.


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