2017-09-21 57 views
0

有人能指示我一些文档如何在PrestaShop 1.6+中创建自定义XML源。我搜查了官方文档,但没有找到我需要的东西。在PrestaShop中创建XML导出源

这项任务很简单 - 创建自定义XML提要,其他电子商店可以从中获取产品。

感谢您的帮助。

回答

1

您可以使用getProducts()获得产品列表,然后使用SimpleXMLElement生成xml。

include('config/config.inc.php'); 
include('init.php'); 
$productObj = new Product(); 
$products = $productObj -> getProducts($id_lang, 0, 0, 'id_product', 'DESC'); 

$xml = new SimpleXMLElement('<xml/>'); 
foreach($products as $product) { 
$productXml = $xml->addChild('product'); 
$productXml->addChild('id', $product->id); 
$productXml->addChild('name', $product->name); 
$productXml->addChild('description', $product->description); 
} 
Header('Content-type: text/xml'); 
print($xml->asXML()); 

输出将被..

<xml> 
    <product> 
     <id>ID</id> 
     <name>NAME</name> 
     <description>DESCRIPTION</description> 
    </product> 
    <product> 
     <id>ID</id> 
     <name>NAME</name> 
     <description>DESCRIPTION</description> 
    </product> 
    ... 
    ... 
    ... 
</xml> 

见功能getProducts()描述类/ Product.php了解的参数。

/** 
* Get all available products 
* 
* @param integer $id_lang Language id 
* @param integer $start Start number 
* @param integer $limit Number of products to return 
* @param string $order_by Field for ordering 
* @param string $order_way Way for ordering (ASC or DESC) 
* @return array Products details 
*/ 
public static function getProducts($id_lang, $start, $limit, $order_by, $order_way, $id_category = false, 
    $only_active = false, Context $context = null) {...} 

你可以在你的Prestashop根目录下放置xml.php文件,并且可以通过访问或发送请求yourdomain.com/xml.php访问该XML。

或者,如果你想为xml创建你的模块,那么你需要把代码放在你的前端控制器,然后你可以通过访问yourdomain.com/index.php?fc=module&module=<ModuleName>&controller=<XMLFunction>访问xml文件。 阅读Prestashop Documentation了解更多关于prestashop模块结构。

+0

嗨,非常感谢您的回复,但我错过了其他的一些东西 - 如何在模块终点地址中创建可用的XML?例如。我的XML会存在一些URL。 –

+1

答复已更新。 – Sama

+0

非常感谢,你救了我的一天:) –