有人可以指导我一些文档如何在PrestaShop 1.6+中创建自定义XML Feed。我搜索了官方文档,但我找不到我需要的东西。
任务很简单 - 创建自定义XML Feed,其他电子商店可以从中获取产品。
答案 0 :(得分:4)
您可以使用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>
请参阅classes / Product.php中的函数getProducts()
说明以了解参数。
/**
* 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) {...}
您可以将xml.php文件放在prestashop根目录中,并可以通过访问或向yourdomain.com/xml.php
发送请求来访问此xml。
或者,如果您要为xml创建模块,则需要将代码放在前端控制器中,然后访问yourdomain.com/index.php?fc=module&module=<ModuleName>&controller=<XMLFunction>
即可访问xml文件。
阅读Prestashop Documentation以了解有关prestashop模块结构的更多信息。