osben Опубликовано 27 января, 2012 Жалоба Поделиться Опубликовано 27 января, 2012 Файл в корне yandex.php пару строчек дописать, выкладываю полностью файл <?php require_once('api/Simpla.php'); $simpla = new Simpla(); header("Content-type: text/xml; charset=UTF-8"); // Заголовок print "<?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE yml_catalog SYSTEM 'shops.dtd'> <yml_catalog date='".date('Y-m-d H:m')."'> <shop> <name>".$simpla->settings->site_name."</name> <company>".$simpla->settings->company_name."</company> <url>".$simpla->config->root_url."</url> "; // Валюты $currencies = $simpla->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 = $simpla->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> "; // Товары $simpla->db->query("SET SQL_BIG_SELECTS=1"); // Товары $simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, p.url, p.annotation, pc.category_id, i.filename as image, b.name as brand, b.url as brand_url 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) LEFT JOIN __brands b ON p.brand_id = b.id WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id"); print "<offers> "; $currency_code = reset($currencies)->code; // В цикле мы используем не results(), a result(), то есть выбираем из базы товары по одному, // так они нам одновременно не нужны - мы всё равно сразу же отправляем товар на вывод. // Таким образом используется памяти только под один товар while($p = $simpla->db->result()) { $price = round($simpla->money->convert($p->price, $main_currency->id, false),2); print " <offer id='$p->variant_id' available='true'> <url>".$simpla->config->root_url.'/products/'.$p->url.'?variant='.$p->variant_id."</url>"; print " <price>$price</price> <currencyId>".$currency_code."</currencyId> <categoryId>".$p->category_id."</categoryId> "; if($p->image) print "<picture>".$simpla->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> <vendor>".htmlspecialchars($p->brand)."</vendor> </offer> "; } print "</offers> "; print "</shop> </yml_catalog> "; Цитата Ссылка на сообщение Поделиться на другие сайты
Deni Опубликовано 30 июня, 2014 Жалоба Поделиться Опубликовано 30 июня, 2014 Спасибо помогло! Цитата Ссылка на сообщение Поделиться на другие сайты
Karen Опубликовано 7 августа, 2014 Жалоба Поделиться Опубликовано 7 августа, 2014 Скопировал и вставил себе Ваш код... выдает ошибку: This page contains the following errors:error on line 1 at column 6: XML declaration allowed only at the start of the document Below is a rendering of the page up to the first error. Цитата Ссылка на сообщение Поделиться на другие сайты
Karen Опубликовано 7 августа, 2014 Жалоба Поделиться Опубликовано 7 августа, 2014 Файл в корне yandex.php пару строчек дописать, выкладываю полностью файл <?php require_once('api/Simpla.php');$simpla = new Simpla(); header("Content-type: text/xml; charset=UTF-8"); // Заголовокprint"<?xml version='1.0' encoding='UTF-8'?><!DOCTYPE yml_catalog SYSTEM 'shops.dtd'><yml_catalog date='".date('Y-m-d H:m')."'><shop><name>".$simpla->settings->site_name."</name><company>".$simpla->settings->company_name."</company><url>".$simpla->config->root_url."</url>"; // Валюты$currencies = $simpla->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 = $simpla->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>"; // Товары$simpla->db->query("SET SQL_BIG_SELECTS=1");// Товары$simpla->db->query("SELECT v.price, v.id as variant_id, p.name as product_name, v.name as variant_name, p.url, p.annotation, pc.category_id, i.filename as image, b.name as brand, b.url as brand_urlFROM __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)LEFT JOIN __brands b ON p.brand_id = b.idWHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id");print "<offers>"; $currency_code = reset($currencies)->code; // В цикле мы используем не results(), a result(), то есть выбираем из базы товары по одному,// так они нам одновременно не нужны - мы всё равно сразу же отправляем товар на вывод.// Таким образом используется памяти только под один товарwhile($p = $simpla->db->result()){ $price = round($simpla->money->convert($p->price, $main_currency->id, false),2);print"<offer id='$p->variant_id' available='true'><url>".$simpla->config->root_url.'/products/'.$p->url.'?variant='.$p->variant_id."</url>";print "<price>$price</price><currencyId>".$currency_code."</currencyId><categoryId>".$p->category_id."</categoryId>"; if($p->image)print "<picture>".$simpla->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><vendor>".htmlspecialchars($p->brand)."</vendor></offer>";} print "</offers>";print "</shop></yml_catalog>";Скопировал и вставил себе Ваш код... выдает ошибку:This page contains the following errors:error on line 1 at column 6: XML declaration allowed only at the start of the documentBelow is a rendering of the page up to the first error. Цитата Ссылка на сообщение Поделиться на другие сайты
mcnickbronx Опубликовано 6 июня, 2016 Жалоба Поделиться Опубликовано 6 июня, 2016 Я добавил в двух местах в файле Yandex.php Заменил выборку, добавлен выбор Brand $simpla->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, b.name as vendor FROM s_variants v LEFT JOIN s_products p ON v.product_id=p.id LEFT JOIN s_products_categories pc ON p.id = pc.product_id AND pc.position=(SELECT MIN(position) FROM s_products_categories WHERE product_id=p.id LIMIT 1) LEFT JOIN s_brands b ON p.brand_id = b.id WHERE p.visible AND (v.stock >0 OR v.stock is NULL) GROUP BY v.id ORDER BY p.id, v.position "); и в цикле после дескриптиона Vendor <description>".htmlspecialchars(strip_tags($p->annotation))."</description> <vendor>".htmlspecialchars(strip_tags($p->vendor))."</vendor> Цитата Ссылка на сообщение Поделиться на другие сайты
Tamara Опубликовано 19 апреля, 2018 Жалоба Поделиться Опубликовано 19 апреля, 2018 На теме LUXURY, в экспорте для Яндекс маркет исчезает описание товара.Что нужно изменить в yandex.php? Цитата Ссылка на сообщение Поделиться на другие сайты
mishanya Опубликовано 20 апреля, 2018 Жалоба Поделиться Опубликовано 20 апреля, 2018 На теме LUXURY, в экспорте для Яндекс маркет исчезает описание товара.Что нужно изменить в yandex.php? этот файл не зависит от дизайна сайта. Цитата Ссылка на сообщение Поделиться на другие сайты
Tamara Опубликовано 23 апреля, 2018 Жалоба Поделиться Опубликовано 23 апреля, 2018 (изменено) этот файл не зависит от дизайна сайта.До установки темы все работает описание yandex.php считывает, после установки темы не считывает.В теме LUXURY страница товара выводится двумя файлами из одного название, а описание из второго 2 раза так: {if $product->annotation} <div class="description"> <div class="heading">Описание товара:</div> <div data-first-value="{$product->annotation|strip_tags}" class="changeShortDescription">{$product->annotation}</div> </div> {/if} и так: {if $product->body} <div id="detailText"> <div class="heading">Описание товара</div> <div data-first-value="{$product->body|strip_tags}" class="changeDescription">{$product->body}</div> </div> {/if} В дэфолтной теме товар выводится одним файлом описание так: <!-- Описание товара --> <div class="annotation">{$product->annotation}</div> <!-- Описание товара (The End) --> Можно исправить как то в теме или в yandex.php? Изменено 23 апреля, 2018 пользователем Tamara Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.