[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помощь со скриптом вывода цены.
Страницы: 1, 2
OleKh
Цитата (andrey488 @ 13.10.2015 - 12:45)
И яндекс бот ругается


да, я же убрал yml, только на посмотреть что цены все в рублях и так и есть.

Цитата (andrey488 @ 13.10.2015 - 13:47)
Или можно как нибудь сделать так что бы он цены брал не с базы сайта а с самого сайта


Я не знаю VirtueMart, а то что задумано, можно реализовать, но надо сначала проверить как спарсит YML парсер. удали из <offers> все <offer> и добавь эти два для проверки и потом выложи содержимое всего файла.

<offer id="5352" available="true" bid="">
<url>
http://anetwork.ru/index.php?page=shop.product_details&option=com_virtuema rt&flypage=flypage. 6;pl&product_id=5352</url>
<price>
3235.00</price>
<currencyId>
RUR</currencyId>
<categoryId>
175</categoryId>
<picture>
http://anetwork.ru/components/com_virtuemart/shop_image/product/DAP_2310_4f9539e375123.jpg</picture>
<delivery>
true</delivery>
<name>
D-Link DAP-2310</name>
<vendor>
D-Link</vendor>
<description>
Беспроводная 2.4 ГГц (802.11b/g/n) точка доступа с поддержкой PoE*, до 300 Мбит/с AirPremier N™, D-Link</description>
</offer>

<offer
id="5353" available="true" bid="">
<url>
http://anetwork.ru/index.php?page=shop.product_details&option=com_virtuema rt&flypage=flypage. 6;pl&product_id=5353</url>
<price>
32.00</price>
<currencyId>
USD</currencyId>
<categoryId>
175</categoryId>
<picture>
http://anetwork.ru/components/com_virtuemart/shop_image/product/DAP_2310_4f9539e375123.jpg</picture>
<delivery>
true</delivery>
<name>
D-Link DAP-23101</name>
<vendor>
D-Link</vendor>
<description>
Беспроводная 2.4 ГГц (802.11b/g/n) точка доступа с поддержкой PoE*, до 300 Мбит/с AirPremier N™, D-Link</description>
</offer>
andrey488
То что ты написал так в идеале должно быть но на самом деле:
<offer id="5352" available="true" bid="">
<
url>http://anetwork.ru/index.php?page=shop.product_details&option=com_virtuemart&flypage=flypage. 6;pl&product_id=5352</url>
<price>3235.00</price>
<
currencyId>RUB</currencyId>
<
categoryId>175</categoryId>
<
picture>http://anetwork.ru/components/com_virtuemart/shop_image/product/DAP_2310_4f9539e375123.jpg</picture>
<delivery>true</delivery>
<
name>D-Link DAP-2310</name>
<
vendor>D-Link</vendor>
<
description>Беспроводная 2.4 ГГц (802.11b/g/n) точка доступа с поддержкой PoE*, до 300 Мбит/с AirPremier N™, D-Link</description>
</
offer>

он отображет только рубли,либо только доллары,
как я понял то что он отображает в

<currencyId>RUB</currencyId>

зависит от:
 echo"<currencyId>RUB</currencyId>\n";

то есть в этой строчке надо сделать так что бы он сам смотрел где руб а где доллары.
вот ссылка на мои прайс (в исходный код заходи)
на данный момент стоит вот этот скрипт:
<?php

$hostname = "*****";
$username = "****";
$password = "*****";
$dbName = "******";
$category = "jos_vm_category";
$category_xref = "jos_vm_category_xref";
$userstable = "jos_vm_product";
$pricetable = "jos_vm_product_price";
$description_template = '{product_desc}';
$product_category_xref = "jos_vm_product_category_xref";
mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die(mysql_error());
//mysql_query('set names utf8');

include '../configuration.php';

$cfg = new JConfig();


echo"<?xml version='1.0' encoding='windows-1251'?>\n";
echo"<!DOCTYPE yml_catalog SYSTEM 'shops.dtd'>\n";
echo"<yml_catalog date=\"";
echo date('Y-m-d H:i');
echo"\">\n";
echo"<shop>\n";
//Здесь название магазина
echo"<name>ANetwork</name>\n";
echo"<company>ЮниГрупп</company>\n";
echo"<url>http://anetwork.ru</url>\n";
echo"<currencies>\n";
echo"<currency id=\"RUB\" rate=\"1\"/>\n";
echo"<currency id=\"USD\" rate=\"CBRF\"/>\n";
echo"</currencies>\n";
echo"<categories>\n";
$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_publish='Y' and 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'];
$curr = array(131 => 'RUB', 144 => 'USD');
$xml .= '<currencyId>'.$curr[$row->product_currency].'</currencyId>'."\n";
if ($cat_parent_id==0) {
echo"<category id=\"".$cat_child_id."\">".$cat_name."</category>\n";
}
else {
echo"<category id=\"".$cat_child_id."\" parentId=\"".$cat_parent_id."\">".$cat_name."</category>\n";
}
$rw++;
}
echo"</categories>\n";

echo"<offers>\n";



$tb_product = $cfg->dbprefix."vm_product";

$tb_manufacturer = $cfg->dbprefix."vm_manufacturer";

$tb_product_mf_xref = $cfg->dbprefix."vm_product_mf_xref";

$tb_category = $cfg->dbprefix."vm_category";

$tb_product_category_xref = $cfg->dbprefix."vm_product_category_xref";

$tb_price = $cfg->dbprefix."vm_product_price";



$query = "

SELECT


$tb_product.product_id,

$tb_product.product_name,

$tb_manufacturer.mf_name,

$tb_manufacturer.manufacturer_id,

$tb_category.category_name,

$tb_category.category_id,

$tb_product_category_xref.category_id,

$tb_price.product_price,

$tb_product.product_sku,

$tb_product.product_in_stock,

$tb_product.product_unit,

$tb_product.product_full_image,

$tb_product.product_s_desc,

$tb_product.product_weight

FROM

(
$tb_product_category_xref

RIGHT JOIN ($tb_price

RIGHT JOIN (($tb_product_mf_xref

RIGHT JOIN $tb_product

ON $tb_product_mf_xref.product_id = $tb_product.product_id)

LEFT JOIN
$tb_manufacturer

ON $tb_product_mf_xref.manufacturer_id = $tb_manufacturer.manufacturer_id)

ON
$tb_price.product_id = $tb_product.product_id)

ON
$tb_product_category_xref.product_id = $tb_product.product_id)

LEFT JOIN
$tb_category

ON $tb_product_category_xref.category_id = $tb_category.category_id

WHERE
$tb_product.product_publish='Y'

"
;



$row = d2a($query);

$product_log = Array();

for($i=0;$i<count($row);$i++) {

if (!in_array($row[$i]['product_id'],$product_log) AND ($row[$i]['product_price'])) {

$product_log[] = $row[$i]['product_id'];




$url="http://anetwork.ru/index.php?page=shop.product_details&option=com_virtuemart& ;flypage=flypage.tpl&product_id=".$row[$i]['product_id'];



$product_full_image = "http://anetwork.ru/components/com_virtuemart/shop_image/product/".$row[$i]['product_full_image'];

$tags = Array ('{product_name}','{product_desc}');

$repl = Array ($row[$i]['product_name'],$row[$i]['product_s_desc']);

$product_price = substr($row[$i]['product_price'], 0, -3);

$vendor = $row[$i]['mf_name'];

$product_cat_id=$row[$i]['category_id'];

$product_in_stock= $row[$i]['product_in_stock'];
if ($product_in_stock > 0){
echo"\n<offer id=\"".$row[$i]['product_id']."\" available=\"true\" bid=\"$bid\">\n";
}
else {
echo"\n<offer id=\"".$row[$i]['product_id']."\" available=\"false\" bid=\"$bid\">\n";
}

echo"<url>".$url."</url>\n";

echo"<price>$product_price</price>\n";

// Валюта в которой указаны Ваши цены

echo"<currencyId>RUB</currencyId>\n";

echo"<categoryId>".$product_cat_id."</categoryId>\n";

echo"<picture>".$product_full_image ."</picture>\n";

// Возможность доставки

echo"<delivery>true</delivery> \n";

echo"<name>".HtmlSpecialChars($vendor)." ".HtmlSpecialChars(strip_tags($row[$i]['product_name']))."</name>\n";

echo"<vendor>".HtmlSpecialChars($vendor)."</vendor>\n";

echo"<description>".HtmlSpecialChars(strip_tags(str_replace($tags,$repl,$description_template)))."</description>\n";

echo"</offer>\n";

}

}




echo"</offers>\n";
echo"</shop>\n";
echo"</yml_catalog>\n";
function d2a($query){

$result = mysql_query($query) or die("Query failed : " . mysql_error());

while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {$res[] = $line;}

mysql_free_result($result);

return $res;

}

?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.