[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помагите подключить скрипт от яндекс-маркета
apdate
Помогите сделать каталог на подобии яндекс маркета я не прошу вас делать все за меня просто дайте ссылки на статьи где возможно подробно описана схема работы данного каталога то есть я не понимаю как сделать стру=ктуру бд msql так что бы в нее можно было загружать данные из скрипта вот тело скрипта он вытаскивает все товары включая групировки


<?php

require_once('api/apdate.php');
$apdate = new apdate();

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>"
.$apdate->settings->site_name."</name>
<company>"
.$apdate->settings->company_name."</company>
<url>"
.$apdate->config->root_url."</url>
"
;

// Валюты
$currencies = $apdate->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 = $apdate->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>
"
;

// Товары
$apdate->db->query("SET SQL_BIG_SELECTS=1");
// Товары
$apdate->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 = $apdate->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($apdate->money->convert($p->price, $main_currency->id, false),2);
print
"
<offer id='
$p->variant_id' available='true'>
<url>"
.$apdate->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>".$apdate->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>
"
;

мне нужно чтобы мой будущий каталог мог сам загружать эти данные и уметь производить сравнение товара и вывод ссылки на магазин и цен
Быстрый ответ:

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