didje3 Posted April 6, 2012 Report Share Posted April 6, 2012 (edited) Sveiki. Internētā atradu php skriptu xml produktu exportam! Skripts šāds: <?php include(dirname(__FILE__).'/../../config/config.inc.php'); require_once(dirname(__FILE__).'/../../init.php'); // Get data $number = (intval(Tools::getValue('n')) ? intval(Tools::getValue('n')) : 10000); $orderByValues = array(0 => 'name', 1 => 'price', 2 => 'date_add', 3 => 'date_upd', 4 => 'position'); $orderWayValues = array(0 => 'ASC', 1 => 'DESC'); $orderBy = Tools::strtolower(Tools::getValue('orderby', $orderByValues[intval(Configuration::get('PS_PRODUCTS_ORDER_BY'))])); $orderWay = Tools::strtoupper(Tools::getValue('orderway', $orderWayValues[intval(Configuration::get('PS_PRODUCTS_ORDER_WAY'))])); if (!in_array($orderBy, $orderByValues)) $orderBy = $orderByValues[0]; if (!in_array($orderWay, $orderWayValues)) $orderWay = $orderWayValues[0]; //$id_category = (intval(Tools::getValue('id_category')) ? intval(Tools::getValue('id_category')) : 1); $currency = new Currency(intval($cookie->id_currency)); $affiliate = (Tools::getValue('ac') ? '?ac='.Tools::getValue('ac') : ''); $categTree = Category::getRootCategory()->recurseLiteCategTree(0); function constructTreeNode($node){ $ret = ';'; $ret .= $node['id'].'|'.$node['name'].';'; if(!empty($node['children'])) { $ret .= ';'; foreach ($node['children'] AS $child) $ret .= constructTreeNode($child); $ret .= ';'; } return $ret; } foreach ($categTree['children'] AS $child) $ulTree .= constructTreeNode($child); $tab_cat=explode(';',$ulTree); foreach ($tab_cat as $id2cat){ $tab_id2cat=explode('|',$id2cat); if (!empty($tab_id2cat)) $tab_cat_final[$tab_id2cat[0]]=$tab_id2cat[1]; } header("Content-Type:text/xml; charset=utf-8"); echo '<?xml version="1.0" encoding="UTF-8"?>'."\n"; ?> <root> <?php foreach ($tab_cat_final as $id_category=>$name_category){ $products = Product::getProducts(intval($cookie->id_lang), 0, ($number > 10000 ? 10000 : $number), $orderBy, $orderWay, $id_category, true); foreach ($products AS $product) { $image = Image::getImages(intval($cookie->id_lang), $product['id_product']); $prix=Product::getPriceStatic($product['id_product']); if ($product['reduction_percent']>0) $prix_promo=$prix*(1-$product['reduction_percent']/100);else $prix_promo=($prix-$product['reduction_price']); echo "<item>\n"; echo "<name><![CDATA[".$product['name']."]]></name>\n"; echo "<link><![CDATA[".htmlspecialchars($link->getproductLink($product['id_product'], $product['link_rewrite'], Tools::getValue('id_category'))).$affiliate."]]></link>\n"; echo "<price>".$prix."</price>\n"; echo "<image>"._PS_BASE_URL_.__PS_BASE_URI__."img/p/".$image[0]['id_product']."-".$image[0]['id_image']."-large.jpg</image>\n"; echo "<category_full><![CDATA[".$name_category."]]></category_full>\n"; echo "<category_link><![CDATA[".htmlspecialchars($link->getcategoryLink($category['id_category'], $category['link_rewrite'], Tools::getValue('id_category'))).$affiliate."]]></category_link>\n"; echo "<marque><![CDATA[".$product['manufacturer_name']."]]></marque>\n"; echo "<reference><![CDATA[".$product['id_product']."]]></reference>\n"; echo "</item>\n"; } } ?> </root> Taču vajadzētu, pielabot vai pievienot trūkstošo, taču nezinu, kas nepieciešams, lai XML būtu šāds: -<root> <item> <name>Akumulators HTC Smart 1450mAh</name> <link>http://www.slapa.lv/product.php?id_product=765</link> <price>6.30</price> <image>http://www.lapa.lv/img/p/765-892-large.jpg</image> <category_full>Telefonu aksesuāri>>Akumulatori>>HTC</category_full> <category_link>http://www.lapa.lv/category.php?id_category=40</category_link> </item> <item> Skripts preces nosaukumu, produkta linku un bildes linku uzrāda kā vajag, tur nav problēmu, cenu arī, bet tikai bez nulles galā, vajadzētu, piem., 3.50, bet rāda 3.5. Kas jāpalabo, jāpievienu skriptā, lai kategorijas nosaukuma vietā būtu pilns kategorijas nosaukums un pilnās kategorijas links kā arī cena būtu ar nulli galā?? Edited April 6, 2012 by didje3 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.