Перейти к содержимому


Яндекс.Маркет (online) - генерация yandex.xml по каждому запросу заново


  • Вы не можете ответить в тему
Сообщений в теме: 37

#1 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 22 April 2013 - 02:29 PM

Модуль Яндекс.Маркет (online) предназначен для генерации yandex.xml именно в момент запроса этого файла. Т.е. является альтернативой штатному модулю, генерирующему yandex.xml по нажатию кнопки и затем отдающему сгенерированный файл пока кнопка не нажата еще раз. Другими словами, штатный модуль требует постоянно-периодического "нажатия кнопки", если товарная номенклатура и цены меняются, а этот на каждый запрос генерирует актуальный на текущий момент yandex.xml.

Спонсор модуля: kredit24

Админка выглядит похоже на штатную, только настройки сохраняются в SQL, а не в $_SESSION

Прикрепленный файл  1.JPG   99.14К   190 Количество загрузок:

Установка:
----------
1. в файл .htaccess вписываем строку

RewriteRule ^yandex\.xml$ yandex.php [L]

Это нужно для того, чтобы в настройках Яндекс-Маркета написать ссылку mysite.ru/yandex.xml, а не mysite.ru/yandex.php
По сути, для красоты, т.к. Яндексу совершенно все равно :).

2. копируем файлы

modules_yaondemand.php -> core/includes/admin/sub/
modules_yaondemand.tpl.html -> core/tpl/admin/
yandex.php -> корень сайта

3. в файле default.tpl.html перед строкой


<div class="marg"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&amp;sub=yandex">{$smarty.const.ADMIN_STRING_YANDEX}</a></div>


вставляем


<div class="marg"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&amp;sub=yaondemand">Яндекс.Маркет (online)</a></div>



4. в файле core/tpl/admin/menu.tpl.html перед строкой


<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&amp;sub=yandex">{$smarty.const.ADMIN_STRING_YANDEX}</a></td></tr></table>


вставляем


<table class="adn topj"><tr><td><img src="data/admin/drs.gif" alt=""></td><td width="100%"><a href="{$smarty.const.ADMIN_FILE}?dpt=modules&amp;sub=yaondemand">Яндекс.Маркет (online)</a></td></tr></table>



5. в файле core/includes/admin/modules.php перед строкой


array("id"=>"yandex", "name"=>"Яндекс.Маркет" )


вставляем


array("id"=>"yaondemand", "name"=>"Яндекс.Маркет (online)"),



6. при желании исправляем в core/languages/russian.php 'Не экспорировать описания' на 'Не экспортировать описания'

------------------

После всего этого в админке в разделе "Модули" появится новый модуль "Яндекс.Маркет (online)". Там задаются те же настройки, что и в штатном модуле "Яндекс Маркет", но для этого модуля.
Доступ к этому модулю тот же, что и у штатного модуля "Яндекс-Маркет",я не стал делать отдельный (это для тех, у кого кроме админов с полным доступом и клиентов есть еще пользователи с разными уровнями доступа в админке).

Прикрепленные файлы


  • 2
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#2 r-instrument

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 11 сообщений
Репутация: 0
Начинающий
  • ГородКрасноярск

Отправлено 06 June 2013 - 02:48 PM

admin.php?dpt=modules&sub=yaondemand
admin.php?dpt=modules&sub=yandex

теперь белый экран(((
что не так?
  • 0

#3 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 06 June 2013 - 03:08 PM

Чаще всего причиной такого "нетака" является либо синтаксическая ошибка в php-файле, либо неудаление файлов кэша после внесения изменений. Попробуйте удалить все файлы из каталога core/cache/, ну а про ошибку написано в логах, если у Вас к ним есть доступ.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#4 BlackSH

    Пользователь

  • Assistent vsupport.club
  • PipPip
  • 24 сообщений
Репутация: 0
Начинающий

Отправлено 18 April 2014 - 03:10 PM

Всем привет!

Установил Яндекс-онлайн, в яндексе указываю путь к yandex.php он сообщает об ошибке:
http://12voltchelny.ru/yandex.php
Определена кодировка: windows-1251 (строка 0, столбец 0)
Дата из файла: 2014-04-18 16:51 (строка 3, столбец 46)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Empty content not valid for content model: '(offer)+' (строка 173, столбец 26)


А если со стандартного модуля прописать путь то:

http://12voltchelny....x.php?do=yandex

Определена кодировка: windows-1251 (строка 0, столбец 0)
Дата из файла: 2014-04-18 11:38 (строка 3, столбец 54)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Invalid character (Unicode: 0x8) (строка 3065, столбец 59)

Подскажите пожалуйста новичку как решить?
  • 0

#5 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 18 April 2014 - 04:42 PM

Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Empty content not valid for content model: '(offer)+' (строка 173, столбец 26)

Отсутствие контента в <offers>. Думаю, что Вы не задали в админке, какие категории надо выводить (см. скриншот в шапке темы).

Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Invalid character (Unicode: 0x8) (строка 3065, столбец 59)

Некорректный символ с кодом 0x8 в названии товара.

PS. может, Вы не курсе, что существует translate.google.ru? Ведь черным по белому написано, в чем дело. Ажно с указанием строки и столбца, где что-то не так.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#6 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 02 May 2014 - 07:49 AM

В данном фильтре формируется файл yandex.xml, а для яндекс маркета нужен файл в формате .yml, что нужно подправить что бы файл был в формате подходящем для яндекс маркета?
  • 0

#7 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 02 May 2014 - 12:12 PM

В данном фильтре формируется файл yandex.xml, а для яндекс маркета нужен файл в формате .yml

Вы путаете формат файла (YML) и расширение файла (XML).
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#8 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 03 May 2014 - 11:38 AM

Данный модуль формирует файл www.site.ru/yandex.xml, яндекс маркет его не может загрузить. Как можно перевести его в формат файла (YML)?
  • 0

#9 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 03 May 2014 - 11:41 AM

Данный модуль формирует файл www.site.ru/yandex.xml, яндекс маркет его не может загрузить.

site.ru - тебе принадлежащий сайт?

Как можно перевести его в формат файла (YML)?

А сейчас он по-твоему в каком формате?
  • 0
502 Bad Gateway

#10 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 03 May 2014 - 11:58 AM

Да дело не в названии сайта, ежу понятно кому он принадлежит. Вопрос в том что этот модуль формирует файл yandex.xml, яндекс его не воспринимает для загрузки в Яндекс.Маркет! Пишет что файл должен быть в формате yandex.yml
  • 0

#11 Dbus

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 1116 сообщений
Репутация: 174
Мастер
  • ГородОдесса

Отправлено 03 May 2014 - 12:03 PM

Советую ежу разобраться в терминах "формат" и "расширение" файла, как писали выше.
А ошибка в загрузке скорее всего по другой причине.
  • 0
502 Bad Gateway

#12 fastik

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 04 May 2014 - 04:44 PM

Возник вопрос, сам что-то не разобрался. стоит модуль с сайта http://shopkod.ru/in...velopment&id=89 Что-то на форуме не нашел, могу выложить. Так вот кто знает, как они совмещаются?
  • 0

#13 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 May 2014 - 05:03 PM

Возник вопрос, сам что-то не разобрался. стоит модуль с сайта http://www.shopkod.r....elopment&id=89

Точку из ссылки уберите, иначе ссылка неверна.

Что-то на форуме не нашел, могу выложить.

Понимаю, что этот модуль был написан изначально "под кого-то" (т.е. смысл есть), но напрочь не понимаю - зачем? Зачем бить свои товары на несколько YML-файлов? Если потому, что их уже ОЧЕНЬ много, то надо не костыль ставить (весьма не единственный), а переезжать на другую платформу.

Так вот кто знает, как они совмещаются?

Кто "они" и что значит "совмещаются"? Если имеется в виду мой модуль Яндекс-онлайн, то он не пересекается по файлам с модулем namer-а. Он подменяет штатные модули, а в моем модуле файлы со другими именами.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#14 fastik

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 04 May 2014 - 06:07 PM

а как можно проверить его работоспособность? Я захожу в сводку, проверяю количество товара, но оно не меняется, хотя я выключил большое количество товара. Спасибо за разъяснения.
  • 0

#15 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 May 2014 - 06:08 PM

а как можно проверить его работоспособность?

Кого "его"?
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#16 fastik

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 161 сообщений
Репутация: 11
Начинающий
  • ГородТирасполь

Отправлено 04 May 2014 - 06:13 PM

модуля) все разобрался) Права на файл yandex.php, который кидается в корень должны быть 777?
  • 0

#17 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 04 May 2014 - 07:19 PM

Права на файл yandex.php, который кидается в корень должны быть 777

Если Вы собираетесь в него что-либо записывать, то да.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#18 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 12 May 2014 - 02:30 PM

Как добавить тег минимальная сумма заказа <sales_notes>?
В яндексе сказано что надо его добавить после <description>


<description> </description>
<sales_notes>минимальная сумма заказа 500 руб.</sales_notes>
  • 0

#19 badisoft

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 12 May 2014 - 02:58 PM

Как добавить тег минимальная сумма заказа ?

Вариант 1, простой: Тупо заменить в yandex.php вхождение </description> на </description>\n<sales_notes>бла-бла-бла</sales_notes>
Вариант 2, более универсальный: Изучить http://vsupport.club...exxml-replacer/, сделанный для штатного модуля Яндекс.Маркет и сделать так же с этим модулем.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#20 valeradr

    Продвинутый пользователь

  • Assistent vsupport.club
  • PipPipPip
  • 49 сообщений
Репутация: 0
Начинающий

Отправлено 12 May 2014 - 03:00 PM

Спасибо
  • 0