通过Web服务将产品添加到PrestaShop 1.5

时间:2013-11-12 12:51:57

标签: php web-services prestashop prestashop-1.5

我尝试通过网络服务添加产品,我收到以下错误代码:

RETURN HTTP BODY
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<errors>
<error>
<message><![CDATA[Internal error. To see this error please display the PHP errors.]]></message>
</error>
</errors>
</prestashop>

我正在搜索2天但没有。请有人帮帮我吗? 我的代码如下。

define('DEBUG', true);
define('_PS_DEBUG_SQL_', true);
define('PS_SHOP_PATH', 'http://mywebsiteinlocalhost.gr/dev...shop/trunk/src/');
define('PS_WS_AUTH_KEY', 'CBYB5G5UVRA7FCN7JK2WZ625DFWG8SK3');
require_once ('./PSWebServiceLibrary.php');
$webService = new PrestaShopWebservice(PS_SHOP_PATH, PS_WS_AUTH_KEY, DEBUG);
$opt = array('resource' => 'products');
$xml = $webService->get(array('url' => PS_SHOP_PATH.'/api/products?schema=synopsis'));
$resources = $xml->children()->children();

unset($resources->position_in_category);
unset($resources->manufacturer_name);

$resources->price = '1000';
$resources->active = '1';
$resources->quantity = '50';
$resources->link_rewrite = 'blabla';
$resources->name->language[0][0] = 'blabla';
$resources->description->language[0][0] = '<p>blabla</p>';
$resources->description_short->language[0][0] = 'blabla';
$resources->associations = '';

$opt = array('resource' => 'products');
$opt['postXml'] = $xml->asXML();
$xml = $webService->add($opt); 

4 个答案:

答案 0 :(得分:2)

资源产品对于Prestashop非常重要。 我已经快速检查了架构'概要'(... / api / products /?schema = synopsis)。有12个字段标记为必填项! 在您的示例中,例如缺少默认父类别! 这就是它无效的原因之一!

答案 1 :(得分:2)

在PrestaShop 1.5中 从配置文件夹

打开defines.inc.php

找到

define('_PS_MODE_DEV_', false);

更改 false - &gt; true 它会开始显示确切错误。

由于

而发生此错误
$resources->quantity = '50';

您无法从xml修改数量。只需评论这一行。我希望它对你有用。

答案 2 :(得分:0)

检查你给出了正确PS_SHOP_PATH和PS_WS_AUTH_KEY的天气。

并检查prestashop后端的权限。

答案 3 :(得分:0)

要查看真实的webservice错误消息,请在config / config.inc.php

中激活PHP错误显示

@ini_set(&#39; display_errors&#39;,&#39; on&#39;);
define(&#39; _PS_DEBUG_SQL _&#39;,true);