0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 10347 Просмотров
*

zmeyx

  • Захожу иногда
  • 144
  • 7 / 0
  • http://www.nt1.su
Всем доброго времени суток. Сделал импорт YML по следующему описанию:

Создаем файл Market_ya.php со следующим содержанием:
Код
<?php
// We'll be outputting a xml
//header('Content-type: application/xml');
//header('Content-Disposition: attachment; filename="yandex_xml.xml"');


include_once ("../../../configuration.php");
$datas = new JConfig;

$hostname = $datas->host;
$username = $datas->user;
$password = $datas->password;
$dbName = $datas->db;
$mysite = '********.ru'; // Ваш сайт


$category = "jos_vm_category";
$category_xref = "jos_vm_category_xref";
$userstable = "jos_vm_product";
$pricetable = "jos_vm_product_price";
$product_category_xref =  "jos_vm_product_category_xref";

mysql_connect($hostname,$username,$password) OR DIE("Не могу соедениться базой данных Mysql");
mysql_select_db($dbName) or die(mysql_error());

$filename = '../../../xmlrpc/yandex.xml';
$xmlfile = fopen($filename,'w+');

$xmltext = "<?xml version=\"1.0\" encoding=\"windows-1251\"?>\n";
$xmltext .= "<!DOCTYPE yml_catalog SYSTEM \"shops.dtd\">\n";
$xmltext .= "<yml_catalog date=\"";
$xmltext .=  date('Y-m-d H:i');
$xmltext .= "\">\n";
$xmltext .= "<shop>\n";


$xmltext .= "<name>Название магазина</name>\n";
$xmltext .= "<company>Название компании</company>\n";
$xmltext .= "<url>http://$mysite</url>\n";
$xmltext .= "<currencies>\n";
$xmltext .= "<currency id=\"RUR\" rate=\"1\"/>\n";
$xmltext .= "</currencies>\n";

$xmltext .= "<categories>\n";

mysql_query("SET CHARACTER SET 'cp_1251_general_ci'");

$query_cat = "SELECT * FROM $category_xref";
$res_cat = mysql_query($query_cat) or die(mysql_error());
$rw=1;

while ($row_cat=mysql_fetch_array($res_cat)) {
$cat_parent_id=$row_cat['category_parent_id'];
$cat_child_id=$row_cat['category_child_id'];
$query2 = "SELECT category_name FROM $category WHERE category_id=".$row_cat['category_child_id'];
$res_cat1 = mysql_query($query2) or die(mysql_error());
$name_cat=mysql_fetch_array($res_cat1);
$cat_name=$name_cat['category_name'];

if ($cat_parent_id==0) {
$xmltext .= "<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
}
else {
$xmltext .= "<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
}
$rw++;
}
$xmltext .= "</categories>\n";
$xmltext .= "<offers>\n";

$query = "SELECT * FROM $userstable";
$res = mysql_query($query) or die(mysql_error());
$rw=1;
while ($row=mysql_fetch_array($res)) {

//$url="http://$mysite/index.php?page=shop.product_details&amp;flypage=flypage.tpl&amp;product_id=".$row['product_id']."&amp;option=com_virtuemart&amp;Itemid=2";
$product_full_image = "http://$mysite/components/com_virtuemart/shop_image/product/".$row['product_full_image'];
$product_name = $row['product_name'];
$product_s_desc = $row['product_s_desc'];
$query1 = "SELECT product_price FROM $pricetable WHERE product_id=".$row['product_id'];
$res1 = mysql_query($query1) or die(mysql_error());
$price=mysql_fetch_array($res1);
$product_price = substr($price['product_price'], 0, -3);
$query3 = "SELECT category_id FROM $product_category_xref WHERE product_id=".$row['product_id'];
$res3 = mysql_query($query3) or die(mysql_error());
$product_cat_id1=mysql_fetch_array($res3);
$product_cat_id=$product_cat_id1['category_id'];
$url="http://$mysite/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=".$row['product_id']."&category_id=".$product_cat_id."&option=com_virtuemart&Itemid=1";

$xmltext .= "<offer id=\"".$rw."\" available=\"true\" bid=\"11\">\n";
$xmltext .= "<url>".$url."</url>\n";
$xmltext .= "<price>$product_price</price>\n";
$xmltext .= "<currencyId>RUR</currencyId>\n";
$xmltext .= "<categoryId>".$product_cat_id."</categoryId>\n";
$xmltext .= "<picture>".$product_full_image ."</picture>\n";
$xmltext .= "<name>".$product_name."</name>\n";
$xmltext .= "<description>".$product_name.".</description>\n";
$xmltext .= "</offer>";
$rw++;
}
$xmltext .= "</offers>\n";
$xmltext .= "</shop>\n";
$xmltext .= "</yml_catalog>\n";


if(fwrite($xmlfile, $xmltext)){
echo "<pre>File <a target='_blank' href='http://$mysite/xmlrpc/yandex.xml'>http://$mysite/xmlrpc/yandex.xml</a> has been saved</pre>";

}
fclose($xmlfile);

?>


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

$mysite – напишите домен вашего сайта

$filename – путь до XML файла и его имя. Также на папку, в которой будет находиться файл, нужно установить права 777

размещаем его по адресу /administrator/components/com_virtuemart/market_ya.php

А чтобы можно было легко обновлять XML яндекс-марект через адмнику VirtueMart, нужно вставить ссылку на файл в файле шаблона административной панели в меню:

administrator\components\com_virtuemart\header.php

в 60 строке, после тэга <center>, вставим:

Код
<?php
 echo "<div style='display:block; text-align:center; margin:10px 0 10px 0; font-size:16px; font-weight:bold; color:#FF5555;'><a style='color:#FF5555; text-decoration:underline;' href='".$mosConfig_live_site."/administrator/components/com_virtuemart/market_ya.php'>export yandex market</a></div>";
 ?>

upd.: Не забывайте при указании структуры ссылки в переменной "$url" заменять знак амперсанда "&" на "&amp;"
А также указать валюту, для правильного отображения в яндекс-маркете.


Но после всего этого макрет при проверке выдает ошибку

Определена кодировка: windows-1251 (строка 0, столбец 0)
Дата из файла: 2011-03-16 12:04 (строка 3, столбец 127)
Фатальная ошибка: Ошибка парсинга XML: Error parsing XML feed: Unterminated entity reference, 'flypage' (строка 19, столбец 63)

Подскажите, в какую сторону копать?

P.S. код дан уже не из изначального примера, а после моих исправления выявленных ошибок
*

zmeyx

  • Захожу иногда
  • 144
  • 7 / 0
  • http://www.nt1.su
Re: импорт товаров в YML Яндекс маркет
« Ответ #1 : 18.03.2011, 00:49:41 »
Решено! решение взято отсюда http://joomlaforum.ru/index.php/topic,59209.0.html
*

tanir

  • Новичок
  • 2
  • 0 / 0
Re: Импорт товаров в YML Яндекс маркет
« Ответ #2 : 28.07.2014, 20:13:21 »
Привет. А можете импортировать товары в JoomShopping?
*

Berzerker

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Re: импорт товаров в YML Яндекс маркет
« Ответ #3 : 11.01.2016, 12:16:21 »
Привет. А можете импортировать товары в JoomShopping?
У меня есть поставщик который дает прайс в yml, закачиваю их все через Инетшоп http://inetshop.in.ua/
*

DimonL

  • Новичок
  • 2
  • 0 / 0
Re: импорт товаров в YML Яндекс маркет
« Ответ #4 : 06.07.2016, 19:00:42 »
У меня есть поставщик который дает прайс в yml, закачиваю их все через Инетшоп http://inetshop.in.ua/
А если товарные фиды оптовиков не только XML?
*

Berzerker

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Re: импорт товаров в YML Яндекс маркет
« Ответ #5 : 14.07.2016, 18:34:28 »
А если товарные фиды оптовиков не только XML?
Все товарные фиды падают в один общий контроллер и только потом идет объединение дублей с товарами каталога магазина. Источники прайсов могут быть разные, XML, csv, excel.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Импорт из CSV товаров с типами и свойствами из

Автор Gruz

Ответов: 499
Просмотров: 145324
Последний ответ 23.02.2017, 15:15:42
от orchanin
Скрипт экспорта товаров в Яндекс маркет (yml)

Автор gaalferov

Ответов: 12
Просмотров: 10700
Последний ответ 08.06.2016, 14:02:27
от DimaXP
Общие вопросы по j1.5.26+vm1.1.9+импорт из 1С

Автор alexzhimuk

Ответов: 2
Просмотров: 2615
Последний ответ 06.05.2016, 15:28:04
от alexzhimuk
Обсуждение бесплатного компонента импорта-экспорта товаров VirtueMart "CSV Improved 1.9"

Автор danklassik

Ответов: 14
Просмотров: 15997
Последний ответ 18.02.2016, 10:21:33
от Storm
Перенос товаров с сайта на сайт (оба на joomla+virtuemart)

Автор fedorkit

Ответов: 8
Просмотров: 13424
Последний ответ 31.01.2016, 22:09:30
от Messir