Санкт-Петербург

+7 904 602 4546

nataris@list.ru

Nataris Studio >>

Тема:

Подключаемся к смс

Смс с сайта по 15 коп.

CSS-памятки

товары раздела
Делаем YML прайс-лист

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

Результатом выбора будет строка из идентификаторов товаров через разделитель, например запятую.

Чтобы сделать из этого массива (строки) файл прайс-листа, я посылаю строку на сервер с помощью аджакса, и на стороне сервера делаю файл, не перезагружая страницу диалога.

Теперь посмотрим пример php-кода.

//$str - входящая строка с идентификаторами товаров

$arr = explode(',', $str);

$site = 'http://'.$_SERVER['HTTP_HOST'];
$company = 'Nataris-Studio';
$platform = 'Nataris-Shop';
$version = '2.1';
$agency = 'Nataris-Studio';
$email = 'nataris@list.ru';
$category = 'Компьютеры';
        
$text = '<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE yml_catalog SYSTEM "shops.dtd">
<yml_catalog date="'.date("Y-m-d H:i").'">
    <shop>
        <name>'.$_SERVER['HTTP_HOST'].'</name>
        <company>'.$company.'</company>
        <url>http://'.$_SERVER['HTTP_HOST'].'</url>
        <platform>'.$platform.'</platform>
        <version>'.$version.'</version>
        <agency>'.$agency.'</agency>
        <email>'.$email.'</email>
        <currencies>
            <currency id="RUR" rate="1"/>
        </currencies>
        <categories>
            <category id="1">'.$category.'</category>
        </categories>
        <offers>';
foreach($arr as $id)//для каждого идентификатора товара
{
    $obj = $cl->GET($id);//получаем объект с параметрами товара
    
    $pic1 = '/photo/big/pic_'.$id.'_1.jpg';
    if(file_exists($_SERVER['DOCUMENT_ROOT'].$pic1)) $pic1 = $site.$pic1;
    else $pic1 = '';
            
    $pic2 = '/photo/big/pic_'.$id.'_2.jpg';
    if(file_exists($_SERVER['DOCUMENT_ROOT'].$pic2)) $pic2 = $site.$pic2;
    else $pic2 = '';
            
    $pic3 = '/photo/big/pic_'.$id.'_3.jpg';
    if(file_exists($_SERVER['DOCUMENT_ROOT'].$pic3)) $pic3 = $site.$pic3;
    else $pic3 = '';
            
    $pic4 = '/photo/big/pic_'.$id.'_4.jpg';
    if(file_exists($_SERVER['DOCUMENT_ROOT'].$pic4)) $pic4 = $site.$pic4;
    else $pic4 = '';

    //освобождаем описание от форматирования
    $description = $obj->main_description;
    $br = chr(0x0d);
    $br = $br.chr(0x0a);
    $description = str_replace($br, ' ', $description);
    $description = preg_replace("/  +/"," ",$description);//убираем лишние пробелы
    $description = preg_replace("/[[][/a-zA-Z:.0-9='-_"]+[]]/", " ", $description); // вырезаем bbcod теги
    $description = preg_replace("/[<][/a-zA-Z:.0-9='-_"? ]+[>]/", " ", $description); // вырезаем html теги
        
    $text .= '
            <offer id="'.$id.'" available="true" bid="'.get_bid().'">
                <url>'.$site.'/goods_one/'.$id.'/</url>
                <price>'.$obj->price.'</price>
                <currencyId>RUR</currencyId>
                <categoryId>1</categoryId>';
    if($pic1 != '')
    {
        $text .= '
                <picture>'.$pic1.'</picture>';
    }
    if($pic2 != '')
    {
        $text .= '
                <picture>'.$pic2.'</picture>';
    }
    if($pic3 != '')
    {
        $text .= '
                <picture>'.$pic3.'</picture>';
    }
    if($pic4 != '')
    {
        $text .= '
                <picture>'.$pic4.'</picture>';
    }
    $text .= '
                <name>'.$obj->name.'</name>
                <vendor>'.$obj->brend.'</vendor>
                <description>'.$description.'</description>
                <manufacturer_warranty>true</manufacturer_warranty>
                <country_of_origin>'.$country.'</country_of_origin>';
    $text .= '
            </offer>';
}
$text .= '
        </offers>
    </shop>
</yml_catalog>';

//сделаем файл
$f_name = $site;
$f_name = str_replace('http://', '', $f_name);
$f_name = reset(explode('.', $f_name));
$f_name .= '.yml';
$filename = $_SERVER['DOCUMENT_ROOT'].'/YML/'.$f_name;
$handle=fopen($filename,"w");
fwrite($handle, $text);
fclose($handle);

 

Комментарии:

Ваше имя:

Ваш комментарий:

Давай дружить

Принимаем


Наверх