有没有办法通过API构建一系列PrestaShop产品,以便我可以在外部应用程序中使用它们?
我只是想要这样的东西:
array(
0 => array(
'name' => 'Some product',
'image' => 'path/to/image.jpg',
'id' => 1,
'description' => 'Some description of the product here',
'path' => 'path/to/product'
),
...
999 => array(
...
)
);
我知道web服务调用array('resource' => 'products', 'display' => 'full')
,但我真的不知道如何从这个webservice调用返回的内容到达我需要的数组。我想做的就是在外部网站上显示产品卷轴,每个图像链接到商店中的产品。
我正在使用Prestashop 1.5.6.2和CodeIgniter 2.1.4。产品卷轴必须显示在CI应用程序中。
修改1
我最接近的是:产品编号1的$product = new Product(1, false, 1);
,但它不包含图像。
答案 0 :(得分:5)
require_once('PSWebServiceLibrary.php');
$url = 'http://example.com';
$webService = new PrestaShopWebservice($url, 'EXAMPLEAPIKEY', false);
$opt['resource'] = 'products';
$opt['display'] = 'full';
$xml = $webService->get($opt);
$productNodes = $xml->products->children();
$products = array();
foreach ($productNodes as $product) {
$nameLanguage = $product->xpath('name/language[@id=1]');
$name = (string) $nameLanguage[0];
$idImage = (string) $product->id_default_image;
$image = '/img/p/';
for ($i = 0; $i < strlen($idImage); $i++) {
$image .= $idImage[$i] . '/';
}
$image .= $idImage . '.jpg';
$id = (int) $product->id;
$descriptionLanguage = $product->xpath('description/language[@id=1]');
$description = (string) $descriptionLanguage[0];
$path = '/index.php?controller=product&id_product=' . $product->id;
$products[] = array('name' => $name, 'image' => $image, 'id' => $id, 'description' => $description, 'path' => $path);
}