Google Merchant как создать файл импорта товаров в xml / txt
Здравствуйте. Подскажите как создать фид для гугла — файла с товарами в формате txt или xml. Для Яндекс маркета файл создается готовым компонентом, а вот товары для Гугла сложности.
«Основной фид – это источник данных, необходимых для показа объявлений. Информацию о товарах можно загружать в виде файлов с расширением .txt или .xml, импортировать из Google Таблиц или добавлять через Google Content API for Shopping»
«Основной фид – это источник данных, необходимых для показа объявлений. Информацию о товарах можно загружать в виде файлов с расширением .txt или .xml, импортировать из Google Таблиц или добавлять через Google Content API for Shopping»
<?xml version="1.0"?>
<rss version="2.0"
xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>[[#1.pagetitle]]</title>
<link>[[++site_url]]</link>
<description>[[#1.description]]</description>
[[!msProducts?
&depth=`10`
&limit=`9999`
&parents=`[[+id]]`
&tpl=`GoogleMerchantItem`
&includeTVs=`brand,availability`
]]
</channel>
</rss>
<item>
<title>[[+pagetitle:htmlent]]</title>
<link>[[~[[+id]]? &scheme=`full`]]</link>
<description>[[+introtext:htmlent]]</description>
<g:image_link>http://site.name[[+thumb]]</g:image_link>
<g:price>[[+price:stripString=` `]]</g:price>
[[-<g:condition>new</g:condition>-]]
<g:id>[[+id]]</g:id>
<g:availability>[[+availability]]</g:availability>
<g:brand>[[+brand]]</g:brand>
<g:condition>new</g:condition>
[[-<g:google_product_category>Категория товара в гугл</g:google_product_category>-]]
</item>
Нашел этот способ в интернете, но вместо XML-страничке получается ошибка:This page contains the following errors:
error on line 1 at column 2: StartTag: invalid element name
Below is a rendering of the page up to the first error.
Комментарии: 11
Попробуйте вот так примерно:
И файл https://domain.ru/gmerch.xml скормите мерчанту, создайте фид и в нем укажите, мол, файл лежит на сервере, вот он.
<?php
$filename = MODX_BASE_PATH . 'gmerch.xml';
$limit='1000';
$offset='0';
$tpl = '@INLINE <item>
<title>{$pagetitle}</title>
<link>'.MODX_BASE_PATH.'/{$uri}</link>
<description>{$introtext | striptags}</description>
<g:image_link>'.MODX_BASE_PATH.'/{$image}</g:image_link>
<g:price>{$price}</g:price>
<g:id>{$article}</g:id>
<g:brand>{$_pls["vendor.name"]}</g:brand>
<g:condition>new</g:condition>
</item>';
....
$data = '<?xml version="1.0"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Название</title>
<link>'.MODX_BASE_PATH.'</link>
<description>Описание</description>';
$data .= $modx->runSnippet('msProducts', array(
'parents' => 0, 'where' => '{"Data.favorite":1, "alias:!=":""}', 'limit' => $limit, 'offset' => $offset, 'tpl' => $tpl, 'includeThumbs'=> '600x600', 'includeContent' => 1, 'includeTVs' => 'img,image'
))
...
$data .= '</channel>
</rss>';
$filename = MODX_BASE_PATH . 'gmerch.xml';
$fp = fopen($filename, 'a');
fwrite($fp, $data);
fclose($fp);
Ну и проверки не забудьте, на наличие файла, возможность записи и т.д.И файл https://domain.ru/gmerch.xml скормите мерчанту, создайте фид и в нем укажите, мол, файл лежит на сервере, вот он.
Спасибо за помощь. С твоим кодом такая же ошибка.
This page contains the following errors:
error on line 1 at column 2: StartTag: invalid element name
Below is a rendering of the page up to the first error.
<?php
$filename = MODX_BASE_PATH . 'gmerch.xml';
$limit='1000';
$offset='0';
$tpl = '@INLINE <item>
<title>{$pagetitle}</title>
<link>'.MODX_BASE_PATH.'/{$uri}</link>
<description>{$introtext | striptags}</description>
<g:image_link>'.MODX_BASE_PATH.'/{$image}</g:image_link>
<g:price>{$price}</g:price>
<g:id>{$article}</g:id>
<g:brand>{$_pls["vendor.name"]}</g:brand>
<g:condition>new</g:condition>
</item>';
$data = '<?xml version="1.0"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Название</title>
<link>'.MODX_BASE_PATH.'</link>
<description>Описание</description>';
$data .= $modx->runSnippet('msProducts', array(
'parents' => 0, 'where' => '{"Data.favorite":1, "alias:!=":""}', 'limit' => $limit, 'offset' => $offset, 'tpl' => $tpl, 'includeThumbs'=> '600x600', 'includeContent' => 1, 'includeTVs' => 'img,image'
));
$data = '</channel></rss>';
$filename = MODX_BASE_PATH . 'gmerch.xml';
$fp = fopen($filename, 'a');
fwrite($fp, $data);
fclose($fp);
Это кто ругается, браузер? У меня-то это код нормальный фид выдает и Google Merchant Center доволен, никаких нареканий. Может что-то неверно с типом страницы? Адрес можно?
Спасибо. Если в вызове msProducts? &parents=`[[*id]]` тогда товары в фид не выводятся, а шапка фида повляется. Если `[[+id]] тогда ошибка и фида нет вообще.
При этом 2 ошибки в журнале:
Обнаружено пустое состояние IN с идентификатором ключа
[2019-10-29 16:28:06] (ERROR @ /core/xpdo/om/xpdoquery.class.php: 764) Encountered empty IN condition with key id
[2019-10-29 16:25:50] (ERROR in modProcessor::run @ ..../core/model/modx/modprocessor.class.php: 177) Flat file processor support, used for action mgr/resources/getlist with path
PS Оба варианта создания фида, сниппетом или просто XML файлом — работают отлично на тестовом сайте фид создается.
На рабочем сайте — нет. так работает =`[[*id]]`, а так нет: &parents=`[[+id]]` Проблема в этом кусочке кода:
А вот такой код протестил для интереса — он нормально создает XML страницу с RSS.
:
При этом 2 ошибки в журнале:
Обнаружено пустое состояние IN с идентификатором ключа
[2019-10-29 16:28:06] (ERROR @ /core/xpdo/om/xpdoquery.class.php: 764) Encountered empty IN condition with key id
[2019-10-29 16:25:50] (ERROR in modProcessor::run @ ..../core/model/modx/modprocessor.class.php: 177) Flat file processor support, used for action mgr/resources/getlist with path
PS Оба варианта создания фида, сниппетом или просто XML файлом — работают отлично на тестовом сайте фид создается.
На рабочем сайте — нет. так работает =`[[*id]]`, а так нет: &parents=`[[+id]]` Проблема в этом кусочке кода:
[[!msProducts?
&depth=`10`
&limit=`9999`
&parents=`[[*id]]`
&tpl=`GoogleMerchantItem`
&includeTVs=`brand,availability`
]]
именно из-за него на XML странице с ошибка:А вот такой код протестил для интереса — он нормально создает XML страницу с RSS.
:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>[[*pagetitle]] / [[++site_name]]</title>
<link>[[~[[*id]]?scheme=`full`]]</link>
<description>[[*description:cdata]]</description>
<language>en</language>
<copyright></copyright>
<ttl>120</ttl>
<atom:link href="[[~[[*id]]?scheme=`full`]]" rel="self" type="application/rss+xml" />
[[!pdoResources?
&tpl=`tpl.Tickets.rss.row`
&parents=`15`
&depth=`1`
&limit=`10`
&showHidden=`1`
&sortby=`createdon`
&where=`{"class_key":"Ticket"}`
&useWeblinkUrl=`1`
&scheme=`full`
]]
</channel>
</rss>
Ответьте на личку плз, исправили бы проблему за вознаграждение.
@АндрейЧ не вижу никакой лички((
а зачем генерировать файл если modx умеет в ресурсы с нужным типом?
Подобная проблема c выховом msProducts описана тут modx.pro/help/12685
Там выяснили что переменная [[+id]] некорректно передавалась через промежуточный чанк.
Там выяснили что переменная [[+id]] некорректно передавалась через промежуточный чанк.
Проблема почти решена, снипет создает все таки файл, на хостинге он нормально открывается как текстовый файл — идеальный фид гугла, но по его адресу он не скачивается — почему то сайт его в виде страницы открывает, с красной ошибкой как на скрине выше.
И еще странно, скачиваю этот файл — Gmerh.xml на комп — кидаю в браузер file:///C:/Users/HP/Downloads/gmerch.xml — все также ошибка
А для страницы у вас выбран пустой шаблон?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.