Прайс Лист Яндекс Маркет

Добрый день!

Проблема с Прайс-Листом для Яндекс Маркета
Через модуль создается такого вида: https://yadi.sk/i/wf5qF6cmqXb3k

С чем может быть связано?

Благодарю.

Также, если очистить кэш, то при первой загрузке пишет Bad Gateway
и если обновить то, что выше.

Добрый день,

1710 - это скорее всего последняя строка в созданном файле? Учитывая ошибку Bad Gateway, скрипт скорее всего не дорабатывает до конца, и естественно yml-файл в данном случае будет неправильный.

Первый раз, когда Вы запрашиваете прайс, скрипт не находит файла c прайс-листом и генерирует его. Похоже, что в вашем случае, скрипт не дорабатывает до конца. Во-второй раз, когда вы запрашиваете файл, файл уже существует(пусть и не до конца сгенерированный) и скрипт просто выдает его Вам.

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

Спасибо.

Посмотрите исходный код страницы (Ctrl+U) и найдите указанную строку. Посмотрите, что там в ней

Посмотрите исходный код страницы (Ctrl+U) и найдите указанную строку. Посмотрите, что там в ней

Запустил через эмулятор виндоус с хрома, там строка уже другая, но ошибка та же самая:

https://yadi.sk/i/k-svMAoRqZhAa
https://yadi.sk/i/GFH87uNGqZhAd

В строке через Ctrl + U ничего интересного. (в скрине выше)

Запустил через эмулятор виндоус с хрома, там строка уже другая, но ошибка та же самая:

https://yadi.sk/i/k-svMAoRqZhAa
https://yadi.sk/i/GFH87uNGqZhAd

В строке через Ctrl + U ничего интересного. (в скрине выше)

Судя по всему, скрипт отваливается по таймауту, и ошибка просто указывает на последнюю строку, так как не видит закрывающих тэгов

Судя по всему, скрипт отваливается по таймауту, и ошибка просто указывает на последнюю строку, так как не видит закрывающих тэгов

Понял, а как можно это исправить?

Понял, а как можно это исправить?

Админу хостинга напишите, скажите, чтобы поднял значение для таймаута

Админу хостинга напишите, скажите, чтобы поднял значение для таймаута

Ответили:

Для того, чтобы задача выполнилась корректно, необходимо оптимизировать работу запускаемых процессов (разбить выполнение на несколько этапов \ уменьшить количество обрабатываемых данных)

Возможно это как-либо реализовать?

Ответили:

Возможно это как-либо реализовать?

Возможно, получится что-то оптимизировать. Но это надо уже конкретно у вас смотреть и тестировать

Ответили:

Возможно это как-либо реализовать?

Вы используете модуль Яндекс.Маркет для генерации yml? Если да, то с версии 4.3.5 добавили модуль YML экспорт, который был улучшен для таких случаев.

Использую модуль YML экспорт и уже второй раз замечаю, что генерация YML именно под яндекс (среди прочих других фидов) подвисает. Может это связано с тем что я его генерю более часто.

Это проявляется в том, что в директории появляется промежуточный файл, в админке появляется информация о том, что генерация идет. Яндекс грузит старый файл. Продолжаться это может сколь угодно долго. Через ссылку СГЕНЕРИРОВАТЬ файл не генерируется. Отвисает только после того, как удаляю промежуточный файл через фтп клиент.

Количество товаров отдаваемых в маркет около 1500. Увидеть проблему можно только зайдя в маркет и обнаружить, что уже как неделю дата генерации файла не менялась.

Файл генерится запросами через крон /usr/bin/wget -O /dev/null http://www.сайт.ru/yml_generate/r8cesfsshrel>/dev/null 2>&1

Причину этого безобразия не обнаружил. Может кто то тоже сталкивался с таким поведением? Отпишитесь пожалуйста,

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

Причину этого безобразия не обнаружил. Может кто то тоже сталкивался с таким поведением? Отпишитесь пожалуйста

Попробуйте следующий фикс.

Откройте файл app/addons/yml_export/Tygh/Ym/Yml2.php

в 709 строке после

while ($ids = array_slice($product_ids, $this->offset, self::ITERATION_ITEMS)) {

добавьте

$processed = 0;

в 728 строке после

foreach ($products as $k => &$product) {

добавьте

$processed++;

в 750 строке после

                fwrite($file, $xml . "\n");

добавьте

                if ($processed % static::ITERATION_ITEMS == 0) {
                    fn_echo(__('yml_export.products_processed', array(
                        '[items]' => $this->offset + $processed
                    )) . NEW_LINE);
                }

и добавьте лангвару "Languages::yml_export.products_processed" с текстом "Products processed: [items]"

Попробуйте следующий фикс.

Спасибо!, понаблюдаю за результатом.

Вчера, в 19:28 был отредактирован Yml2.php
Фид, до этого был успешно создан в 19:15
Более, он не генерировался. Хотя в админке время генерации обновляется. Появилась надпись "Генерация была остановлена". Аналогично не созданы остальные фиды.
[attachment=11145:image.png]
При клике по ссылке "Создание" в админке ручками, файл генерируется. Время создания обновляется.Надпись "Генерация была остановлена" отсутствует.
В очередной запуск по крону "26.04.2016 11:30, Генерация была остановлена"
Время в фиде осталось прежним, файл не обновился.
Пока откатил изменения как было.

image.png

Тоже постоянно сталкиваюсь с надписью “Генерация была остановлена”. Зачем, почему, что ей помешало?

Жаль, что служба поддержки игнорирует здешний форум.

Не появилось каких либо решений с генерацией по крону?