ФорумСообществоПрофессиональная деятельностьВзаимопомощь → Яндекс Маркет.

Яндекс Маркет.

  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 12 мая 2009 г. 10:03

    Вобщем нужен класс или функция генерации XML документа для яндекс маркета.

    Задача не особо сложная, но жуть как времени нет писать самому. Если есть у кого, поделитесь пожалуйста =)
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 27 июня 2009 г. 3:43, спустя 45 дней 17 часов 40 минут

    Спасибо конечно но у меня получилось посимпотичней =)

    // Создаём новый документ.
    // Первый параметр конструктора - версия XML, второй - кодировка
    $doc = new DOMDocument('1.0');

    $doctype=DOMImplementation::createDocumentType('yml_catalog SYSTEM "shops.dtd"'); // creating real doctype
    $doc_feed=DOMImplementation::createDocument('', '',$doctype);

    $doc_feed->encoding='windows-1251';

    $elem_rss = $doc_feed->createElement('yml_catalog');

    $elem_rss->setAttribute('date', date("Y-m-d h:i"));

    $doc_feed->appendChild($elem_rss);

    $elem_shop = $doc_feed->createElement('shop');
    $elem_rss->appendChild($elem_shop);

    $elem_shop_name = $doc_feed->createElement('name',"ГПМ");
    $elem_shop->appendChild($elem_shop_name);

    $elem_shop_company = $doc_feed->createElement('company',"Продажа грузоподъемных механизмов");
    $elem_shop->appendChild($elem_shop_company);


    $elem_shop_url = $doc_feed->createElement('url',"http://***.ru/");
    $elem_shop->appendChild($elem_shop_url);



    $elem_currencies = $doc_feed->createElement('currencies');
    $elem_shop->appendChild($elem_currencies);

    $currencies=$doc_feed->createElement('currency');
    $currencies->setAttribute('id', "RUR");
    $currencies->setAttribute('rate', "1");
    $elem_currencies->appendChild($currencies);


    $elem_categories = $doc_feed->createElement('categories');
    $elem_shop->appendChild($elem_categories);

    $i=0;
    $id_c="";
    $sql=mysql_query("SELECT * FROM Menu WHERE parent_id=51");
    while($row=mysql_fetch_assoc($sql))
    {
    $categories=$doc_feed->createElement('category',$row['Name']);
    $categories->setAttribute('id', $row['id']);
    $elem_categories->appendChild($categories);

    $id_c.=$i==0?"'{$row['id']}'":", '{$row['id']}'";
    $i=1;
    }

    $elem_offers = $doc_feed->createElement('offers');
    $elem_shop->appendChild($elem_offers);

    $sql=mysql_query ("SELECT *,Equipping.id as id_e FROM Equipping JOIN product ON Equipping.article=product.art WHERE Equipping.id_category IN ({$id_c}) ");
    while($row=mysql_fetch_assoc($sql))
    {
    $offer=$doc_feed->createElement('offer');
    $offer->setAttribute('available', "false");
    $offer->setAttribute('id', $row['id_e']);
    $elem_offers->appendChild($offer);

    $row=array_map("trim",$row);
    $row=array_map("strip_tags",$row);
    $row=array_map("htmlspecialchars",$row);

    $price=round(($val['i']*$row['currency']*$set['nds']*$set['doh']),2);

    $offer->appendChild( $doc_feed->createElement('url', "http://***.ru/category/{$row['id_category']}/equipping/{$row['id_e']}") );
    $offer->appendChild( $doc_feed->createElement('price',$price) );
    $offer->appendChild( $doc_feed->createElement('currencyId', 'RUR') );
    $offer->appendChild( $doc_feed->createElement('categoryId', $row['id_category']) );
    $offer->appendChild( $doc_feed->createElement('name',$row['name']) );
    $offer->appendChild( $doc_feed->createElement('description', $row['pol_info']) );
    $offer->appendChild( $doc_feed->createElement('sales_notes',"Доставка товара производится течение 3-4 недель после прихода денег на наш счет.") );

    }
    // Сохраняем документ в файле sample.xml
    $doc_feed->save('sample.xml');
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 27 июня 2009 г. 4:00, спустя 16 минут 41 секунду

    Professor, перепиши на симлхмл и получшь всего то строчек 20 очаровательного кода ..
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 27 июня 2009 г. 4:03, спустя 3 минуты 3 секунды

    20 в любом случае не получишь =)

    Куда еще меньше и так 1 значение присваивается в 1 строчке.
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 27 июня 2009 г. 4:20, спустя 17 минут


    20 в любом случае не получишь =)

    Куда еще меньше и так 1 значение присваивается в 1 строчке.
    поэтому я думаю что можно подгружать готовый шаблон хмл данных и итерировать только нужный участок .. ты так не думаешь? а то вашу каша код … можно выбросить, второй раз хуй заюзаешь
    Сапожник без сапог
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 27 июня 2009 г. 4:36, спустя 16 минут 33 секунды

    Писал тебе ответ, и пока писал понял чего ты говоришь =)
    Возможно так и надо делать =)
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 27 июня 2009 г. 5:25, спустя 48 минут 56 секунд


    Писал тебе ответ, и пока писал понял чего ты говоришь =)
    Возможно так и надо делать =)
    вот тебе баттл хуле ))
    Сапожник без сапог
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 27 июня 2009 г. 14:14, спустя 8 часов 49 минут 5 секунд

    Professor, а есть толк у вас от яндекс маркета? а то у меня что-то выхлопа ноль было.
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 27 июня 2009 г. 14:49, спустя 34 минуты 22 секунды

    Конечно есть.
    Это смотря что продавать =)
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 28 июня 2009 г. 10:03, спустя 19 часов 14 минут 12 секунд

    автозвук
  • Professor

    Сообщения: 2089 Репутация: N Группа: Адекваты

    Spritz 28 июня 2009 г. 10:20, спустя 16 минут 35 секунд

    Магнитолы в смысле?
    Занимаюсь сайтиком по продаже магнитол. Но в маркете нет. Иногда хозяин сайта директ оплачивает, говорит что начинаются звонки.
  • developer

    Сообщения: 241 Репутация: N Группа: Кто попало

    Spritz 28 июня 2009 г. 13:33, спустя 3 часа 13 минут 20 секунд

    звонки звонками, а продажи? звонят чуть ли не каждый день, но у нас по всей видимости народ такой, что лучше купить что-то в стрёмной конторе на 2 у.е. дешевле чем в нормальной. а потом говорят что их кидают.

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

Пожалуйста, авторизуйтесь, чтобы написать комментарий!