Jump to content

Проблемы с Google Merchant Center


Recommended Posts

Говорит что сопоставленный тег XML.

 

Но он открывается:

attachicon.gif22.PNG

 

и закрывается:

attachicon.gif111.PNG

 

 

Подскажите как это исправить?

attachicon.gifgoogle1.php

Гугл мерчант не совсем адекватный. Попробуйте удалить пробелы между последней строкой и закрывающими тегами.

 

P.S. А что за оффер в конце закрывается? В документации GoogleMerchant нет offer. 

 

P.P.S. На случай если решитесь приобрести платное решение. Ссылка

Link to post
Share on other sites

1. Проверять надо ВСЕ теги, а не только тот, который в строке, на которой обнаружена ошибка.

2. В приложенном файле PHP  не встречается offer вообще. А на картинке есть. Похоже, Вы что-то попутали...

3. В приложенном файле PHP  с ходу видна ошибка: тег item открывается ВСЕГДА, а закрывается ПРИ УСЛОВИИ...

Link to post
Share on other sites

1. Проверять надо ВСЕ теги, а не только тот, который в строке, на которой обнаружена ошибка.

2. В приложенном файле PHP  не встречается offer вообще. А на картинке есть. Похоже, Вы что-то попутали...

3. В приложенном файле PHP  с ходу видна ошибка: тег item открывается ВСЕГДА, а закрывается ПРИ УСЛОВИИ...

Вчера написал в службу поддержки и они сказали, что и как исправить.

Но после этого появилась другая ошибка.

Удаленный сервер вернул недопустимый код ответа. код ответа 500

В чем сейчас проблема?

google1.php

Link to post
Share on other sites

Возможно, Вы в адресе ошиблись. А может и еще десяток возможных причин быть...

Если бы Вы написали ТОЧНО, при каких действиях ошибка возникла, продвинулись бы быстрее в решении...

А файл по сравнении с первым совсем другой. Но грубые ошибки в нем тоже видны сразу...

Link to post
Share on other sites

Возможно, Вы в адресе ошиблись. А может и еще десяток возможных причин быть...

Если бы Вы написали ТОЧНО, при каких действиях ошибка возникла, продвинулись бы быстрее в решении...

А файл по сравнении с первым совсем другой. Но грубые ошибки в нем тоже видны сразу...

Инженеры подсказали мне, что дело в том, что в фиде было намешано 2 типа требования к фидам - Yandex и Google, а именно:

сейчас Ваш фид начинается с  <?xml version='1.0' encoding='UTF-8'?> <rss version='2.0' xmlns:g='http://base.google.com/ns/1.0'> <channel>

 

А нужно, чтобы  было <?xml version='1.0' encoding='UTF-8'?>  и потом нужно добавить: <!DOCTYPE yml_catalog SYSTEM "shops.dtd"> 

 

При этом сказали, что фид составлен верно.

Я исправил по их рекомендациям.

И сейчас выдаю 500 ошибку

post-19620-0-08873900-1427866122_thumb.png

Edited by IvanDorn
Link to post
Share on other sites

Что за ерунда?

<?php
require_once('api/Simpla.php');
$simpla = new Simpla();
header("Content-type: text/xml; charset=UTF-8");
print (pack('CCC', 0xef, 0xbb, 0xbf));
// Заголовок
print
"<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE yml_catalog SYSTEM 'shops.dtd'>
<yml_catalog date='".date('Y-m-d H:i')."'>
<shop>
<name>".$simpla->settings->site_name."</name>
<company>".$simpla->settings->company_name."</company>
<url>".$simpla->config->root_url."</url>
";
// Валюты
$currencies = $simpla->money->get_currencies(array('enabled'=>1));
$main_currency = reset($currencies);
print "<currencies>
";
foreach($currencies as $c)
if($c->enabled)
print "<currency id='".$c->code."' rate='".$c->rate_to/$c->rate_from*$main_currency->rate_from/$main_currency->rate_to."'/>
";
print "</currencies>
";
// Категории
$categories = $simpla->categories->get_categories();
print "<categories>
";
foreach($categories as $c)
{
print "<category id='$c->id'";
if($c->parent_id>0)
print " parentId='$c->parent_id'";
print ">".htmlspecialchars($c->name)."</category>
";
}
print "</categories>
";
// Товары
$simpla->db->query("SET SQL_BIG_SELECTS=1");
// Товары
$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image
FROM __variants v LEFT JOIN __products p ON v.product_id=p.id
LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1)
LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position ");
print "<offers>
";
$currency_code = reset($currencies)->code;
// В цикле мы используем не results(), a result(), то есть выбираем из базы товары по одному,
// так они нам одновременно не нужны - мы всё равно сразу же отправляем товар на вывод.
// Таким образом используется памяти только под один товар
$prev_product_id = null;
while($p = $simpla->db->result())
{
$variant_url = '';
if ($prev_product_id === $p->product_id)
$variant_url = '?variant='.$p->variant_id;
$prev_product_id = $p->product_id;
$price = round($simpla->money->convert($p->price, $main_currency->id, false),2);
print
"
<offer id='$p->variant_id' available='true'>
<url>".$simpla->config->root_url.'/products/'.$p->url.$variant_url."</url>";
print "
<price>$price</price>
<currencyId>".$currency_code."</currencyId>
<categoryId>".$p->category_id."</categoryId>
";
if($p->image)
print "<picture>".$simpla->design->resize_modifier($p->image, 200, 200)."</picture>
";
print "<name>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</name>
<description>".htmlspecialchars(strip_tags($p->annotation))."</description>
</offer>
";
}
print "</offers>
";
print "</shop>
</yml_catalog>
";

Вроде все в порядке!

Но пишет что:

В начале фида данных не указаны параметры кодировки

Как это не указаны???? а это что?

"<?xml version='1.0' encoding='UTF-8'?>

 

Link to post
Share on other sites

 

Что за ерунда?

<?php
require_once('api/Simpla.php');
$simpla = new Simpla();
header("Content-type: text/xml; charset=UTF-8");
print (pack('CCC', 0xef, 0xbb, 0xbf));
// Заголовок
print
"<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE yml_catalog SYSTEM 'shops.dtd'>
<yml_catalog date='".date('Y-m-d H:i')."'>
<shop>
<name>".$simpla->settings->site_name."</name>
<company>".$simpla->settings->company_name."</company>
<url>".$simpla->config->root_url."</url>
";
// Валюты
$currencies = $simpla->money->get_currencies(array('enabled'=>1));
$main_currency = reset($currencies);
print "<currencies>
";
foreach($currencies as $c)
if($c->enabled)
print "<currency id='".$c->code."' rate='".$c->rate_to/$c->rate_from*$main_currency->rate_from/$main_currency->rate_to."'/>
";
print "</currencies>
";
// Категории
$categories = $simpla->categories->get_categories();
print "<categories>
";
foreach($categories as $c)
{
print "<category id='$c->id'";
if($c->parent_id>0)
print " parentId='$c->parent_id'";
print ">".htmlspecialchars($c->name)."</category>
";
}
print "</categories>
";
// Товары
$simpla->db->query("SET SQL_BIG_SELECTS=1");
// Товары
$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, v.position as variant_position, p.id as product_id, p.url, p.annotation, pc.category_id, i.filename as image
FROM __variants v LEFT JOIN __products p ON v.product_id=p.id
LEFT JOIN __products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM __products_categories WHERE product_id=p.id LIMIT 1)
LEFT JOIN __images i ON p.id = i.product_id AND i.position=(SELECT MIN(position) FROM __images WHERE product_id=p.id LIMIT 1)
WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position ");
print "<offers>
";
$currency_code = reset($currencies)->code;
// В цикле мы используем не results(), a result(), то есть выбираем из базы товары по одному,
// так они нам одновременно не нужны - мы всё равно сразу же отправляем товар на вывод.
// Таким образом используется памяти только под один товар
$prev_product_id = null;
while($p = $simpla->db->result())
{
$variant_url = '';
if ($prev_product_id === $p->product_id)
$variant_url = '?variant='.$p->variant_id;
$prev_product_id = $p->product_id;
$price = round($simpla->money->convert($p->price, $main_currency->id, false),2);
print
"
<offer id='$p->variant_id' available='true'>
<url>".$simpla->config->root_url.'/products/'.$p->url.$variant_url."</url>";
print "
<price>$price</price>
<currencyId>".$currency_code."</currencyId>
<categoryId>".$p->category_id."</categoryId>
";
if($p->image)
print "<picture>".$simpla->design->resize_modifier($p->image, 200, 200)."</picture>
";
print "<name>".htmlspecialchars($p->product_name).($p->variant_name?' '.htmlspecialchars($p->variant_name):'')."</name>
<description>".htmlspecialchars(strip_tags($p->annotation))."</description>
</offer>
";
}
print "</offers>
";
print "</shop>
</yml_catalog>
";

Вроде все в порядке!

Но пишет что:

В начале фида данных не указаны параметры кодировки

Как это не указаны???? а это что?

"<?xml version='1.0' encoding='UTF-8'?>

Там ещё должна быть такая строка

<rss xmlns:g='http://base.google.com/ns/1.0' version='2.0'>

Link to post
Share on other sites

Там ещё должна быть такая строка

<rss xmlns:g='http://base.google.com/ns/1.0' version='2.0'>

print"<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE yml_catalog SYSTEM 'shops.dtd'><rss xmlns:g='http://base.google.com/ns/1.0' version='2.0'><yml_catalog date='".date('Y-m-d H:i')."'><shop>

 

Толку нет. тег внизу закрыл. Все равно таже проблема!

Edited by IvanDorn
Link to post
Share on other sites

 

Вроде все в порядке!

Но пишет что:

В начале фида данных не указаны параметры кодировки

Как это не указаны???? а это что?

"<?xml version='1.0' encoding='UTF-8'?>

 

Читайте внимательно. Пишет все правильно. Кодировка у Вас указана, но НЕ в начале...

 

Похоже, тот, кто разрабатывал Ваш скрипт, копировал бездумно, и именно В НАЧАЛЕ вставил

print (pack('CCC', 0xef, 0xbb, 0xbf));
Link to post
Share on other sites

 

Читайте внимательно. Пишет все правильно. Кодировка у Вас указана, но НЕ в начале...

 

Похоже, тот, кто разрабатывал Ваш скрипт, копировал бездумно, и именно В НАЧАЛЕ вставил

print (pack('CCC', 0xef, 0xbb, 0xbf));

Я удалил строку. Обновил, но Ничего не поменялось.

Link to post
Share on other sites
  • 2 months later...
<?xml version='1.0'?>
<rss xmlns:g='http://base.google.com/ns/1.0' version='2.0'>

<channel>
<title>мойсат</title>
<url>http://мойсат</url>
<description>мойсат</description>

</channel>
</rss>

 

больше ничего нет )

Link to post
Share on other sites

Больше и не должно быть ничего. Потому что там основной запрос изменен так, что на стандартной Simpla дает ошибку и как следствие  товаров не находит...

Должно, автор просто скопировал, не утруждая себя элементарной проверкой...

Link to post
Share on other sites

я глянул мельком. если не ошибаюсь в 29 строке лишний прицеп в запросе

убрать надо p.market

 

видимо там, где взяли был выбор в админке

Link to post
Share on other sites

Переделал файл, просто данный файл был с изменениями от дополнения Выборочная выгрузка в Маркет

 

http://templazilla.ru/moduli-i-dopolnenija-simpla-cms/2015/06/18/vygruzka-v-google-merchant.html

 

Вы проверяли свою вторую версию хоть чуть-чуть? Например, при дефолтной установке Simpla?

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

Крайне не рекомендуется использовать такое...

Link to post
Share on other sites

 

Вы проверяли свою вторую версию хоть чуть-чуть? Например, при дефолтной установке Simpla?

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

Крайне не рекомендуется использовать такое...

 

Да была проблемка, щас исправил, вот нормальный файл https://yadi.sk/d/S7ordzzvhMLZz

Edited by vda
Link to post
Share on other sites

Да была проблемка, щас исправил, вот нормальный файл https://yadi.sk/d/S7ordzzvhMLZz

 

Как была грубейшая ошибка, так и осталась...

Все же интересно, Вы проверяете хоть простейшим образом то, что выкладываете?

Link to post
Share on other sites

самое забавное..

пока вы спорите, я взял ПЕРВЫЙ исходник  и починил.

Проверил - работает сабака и выгружает. гугл аж пищит и пальцы на ногах сводит ....

каждый день в пять утра.

 

только не пользуюсь. просто проверил на домене.

 

А в этой теме мы не спорили, а обсуждали существо дела. В результате получили

1. решение для ВСЕХ,

2. решение, скорее всего, качественное

3. также обнаружилось, что автор заботится о своем решении - быстро и по существу реагирует на сообщения об ошибках. На этом форуме такое далеко не всегда встречается. Значит, если вдруг вылезет еще ошибка, скорее всего, тоже поправит быстро.

 

А Вы сделали себе и для собственного удовольствия. К тому же для забавы (так как "только не пользуюсь").

 

И вообще что хотите сказать своим постом? То ли просто "хи-хи, ха-ха", то ли даете понять, что Вы умнее...

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...