Есть стандартный модуль выгрузки yml.php (в корне сайта), который генерирует следующий юмл:

http://for-kids.by/yandex.xml

Нужно дополнить выгрузку по сведениям о товарах:

  • добавить производителя;
  • добавить категорию товара;
  • добавить артикул товара;
Пишите сроки/цену. Спасибо!

Код текущего генератора юмл:

require_once('api/Simpla.php');

$simpla = new Simpla();

$date = iconv('UTF-8', 'Windows-1251', date("Y-m-d H:i"));

header("Content-type: text/xml; charset=windows-1251");

print ''."\n";

print ''."\n";

print ''."\n\t";

print ''."\n\t\t";

print ''.iconv('UTF-8', 'Windows-1251', $simpla->settings->site_name).''."\n\t\t";

print ''.iconv('UTF-8', 'Windows-1251', $simpla->settings->company_name).''."\n\t\t";

print ''.$simpla->config->root_url.''."\n\t\t";

// Валюты

print ''."\n\t\t\t";

print ''."\n\t\t";

print '';

// Категории

print "\n\t\t".'';

foreach($simpla->categories->get_categories_tree() as $c)

{

if($c->visible) 

{

$id = esc($c->id);

$name = iconv('UTF-8', 'Windows-1251', esc($c->name));

$seoname = iconv('UTF-8', 'Windows-1251', esc($c->title_h1));

if (!empty ($seoname)) { $name = $seoname; }

print "\n\t\t\t".''.$name.'';

foreach($simpla->categories->get_categories() as $sc)

{

if($sc->visible)

{

$sc_id = esc($sc->id);

$sc_parent_id = esc($sc->parent_id);

$sc_name = iconv('UTF-8', 'Windows-1251', esc($sc->name));

$sc_seoname = iconv('UTF-8', 'Windows-1251', esc($sc->title_h1));

if (!empty ($sc_seoname)) { $sc_name = $sc_seoname; }

if ($sc_parent_id == $id) 

{

print "\n\t\t\t\t".''.$sc_name.'';

}

}

}

}

}

print "\n\t\t".''."\n\t";

// Товары

print "\n\t\t".'';

$simpla->db->query("SELECT * FROM __products WHERE visible=1");

foreach($simpla->db->results() as $p)

{

$prod_id = $p->id;

// Отбираем товары которые в наличии

foreach ($simpla->variants->get_variants(array('product_id'=>$prod_id)) as $v) {

if ($v->stock != 0) {

// Название товара

$prod_name = iconv('UTF-8', 'Windows-1251', esc($p->name));

// Получаем url товара

$simpla->db->query("SELECT category_id FROM __products_categories WHERE product_id=".$prod_id." ORDER BY category_id DESC");

foreach($simpla->db->results() as $q) {

$cat_id = $q->category_id;

}

$simpla->db->query("SELECT url_path FROM __categories WHERE id=".$cat_id."");

foreach($simpla->db->results() as $w) {

$cat_path = $w->url_path;

}

$url = $simpla->config->root_url.'/catalog/'.esc($w->url_path).'/'.esc($p->url);

// Описание товара

$prod_description = iconv('UTF-8', 'Windows-1251', strip_tags(preg_replace("/&#?[a-z0-9]{2,8};/i","",$p->body)));

$prod_description_end = " Источник: For-kids.by";

$prod_description_end = iconv('UTF-8', 'Windows-1251', $prod_description_end);

$prod_description = $prod_description.$prod_description_end;

// Получаем цену товара

foreach ($simpla->variants->get_variants(array('product_id'=>$prod_id)) as $v) {

$prod_price = round($v->price);

if ($prod_price) break;

}

// Получаем изображения товара

foreach ($simpla->products->get_images(array('product_id'=>$prod_id)) as $i) {

$prod_image = $i->filename;

if ($prod_image) break;

}

$prod_image_url = $simpla->config->root_url.'/files/originals/'.esc($prod_image);

// Получаем стоимость доставки

if ($prod_price > 300000) {

$delivery_cost = 0;

} elseif ($prod_price < 300000 AND $prod_price > 199000) {

$delivery_cost = 20000;

} else {

$delivery_cost = 30000;

}

// Получаем название товара

//foreach ($simpla->variants->get_variants(array('product_id'=>$prod_id, 'in_stock'=>true)) as $v) {

// $prod_sku = $v->sku;

// if ($prod_sku) break;

//}

//$product_sku = " (Арт. ".esc($prod_sku).")";

//$product_name = $prod_name.iconv('UTF-8', 'Windows-1251', $product_sku);

$product_name = $prod_name;

print "\n\t\t\t".'';

print "\n\t\t\t\t".''.$url.'';

print "\n\t\t\t\t".''.$prod_price.'';

print "\n\t\t\t\t".'BYR';

print "\n\t\t\t\t".''.$cat_id.'';

print "\n\t\t\t\t".''.$prod_image_url.'';

print "\n\t\t\t\t".'true';

print "\n\t\t\t\t".''.$delivery_cost.'';

print "\n\t\t\t\t".''.$product_name.'';

print "\n\t\t\t\t".''.$prod_description.'';

print "\n\t\t\t".'';

}

}

}

print "\n\t\t".'';

print "\n\t".'';

print "\n".'';

function esc($s)

{

return(htmlspecialchars($s, ENT_QUOTES, 'UTF-8'));

}

9 лет назад
shyrbIk
38 лет
15 лет в сервисе
Был
7 лет назад

Выбранный исполнитель

sanek-dev
41 год
10 лет в сервисе
Был
3 года назад
9 лет назад
$5
1 день
Быстро, без лишних вопросов, оперативно. Приятно работать!
5+

Заявки фрилансеров

sanek-dev
41 год
10 лет в сервисе
Был
3 года назад
9 лет назад