PrestaShop创建客户
问题描述:
我有这个代码,我试图在我的网站上使用prestashop模式创建一个新客户。但我一直在响应收到错误PrestaShop创建客户
NSString *xmlPath = [[NSBundle mainBundle] pathForResource:@"Login" ofType:@"xml"];
NSString *xmlStr = [[NSString alloc] initWithContentsOfFile:xmlPath encoding:NSUTF8StringEncoding error:nil];
NSString *encodedurlstring = (__bridge NSString*) CFURLCreateStringByAddingPercentEscapes (NULL, (__bridge CFStringRef) xmlStr, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8);
NSString *urlStr = [NSString stringWithFormat:@"http://passkey:@farma-web.it/api/customers/?Xml=%@",encodedurlstring];
NSURL *webURL = [NSURL URLWithString:urlStr];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:webURL];
[request setHTTPMethod:@"POST"];
[request setValue: @"text/xml" forHTTPHeaderField: @"Content-Type"];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *response = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
NSLog(@"response - %@",response);
,我已附上XML是
<prestashop>
<customers>
<customer>**I DO NOT KNOW WHAT TO WRITE HERE**</customer>
<email>[email protected]</email>
<passwd>12344321</passwd>
<firstname>ABC</firstname>
<lastname>DEF</lastname>
</customers>
</prestashop>
,我得到的响应
<?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>
答
“客户”是不是一个独立的字段,但容器的所有其他领域像名字,姓氏,电子邮件等
最好的方法创建一个客户是检索和空白页,并与您的数据来填充它:http://your-prestashop.com/api/customers?schema=blank
答
我遇到了类似的问题,这里是我发现的Prestashop上的版本1.6.0.9:
1)由于@adrien -g指出,从define('_PS_MODE_DEV_', false);
改为定义('_ PS_MODE_DEV_',true); http://doc.prestashop.com/display/PS16/Setting+Up+Your+Local+Development+Environment#SettingUpYourLocalDevelopmentEnvironment-Displayingerrormessages
2)接下来你会看到一个像一个与此curl命令模拟更有意义的错误:
$ curl -kv https://myprestashop.bitnamiapp.com/prestashop/api/customers?ws_key=secret -d '
<?xml version="1.0" encoding="UTF-8"?><customer><lastname>blue</lastname><firstname>boy</firstname><email>[email protected]</email></customer>'
...
<message><![CDATA[parameter "passwd" required]]></message>
...
3)然后进行一些实验,如添加的passwd
和prestashop
标签将最终导致你一个路在这里你看到客户成功地创建:
$ curl -kv https://myprestashop.bitnamiapp.com/prestashop/api/customers?ws_key=secret -d '
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<customer><lastname>blue</lastname><firstname>boy</firstname><email>[email protected]</email>
<passwd>mysecret</passwd>
</customer>
</prestashop>'
...
<?xml version="1.0" encoding="UTF-8"?>
<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
<customer><id><![CDATA[3]]></id>...</customer></prestashop>
...
值得注意:
- 使用
<?xml ...><prestashop></prestashop>
与XML =<?xml ...><prestashop></prestashop>
不使我发挥各地的版本有什么区别。 - 使用
<prestashop>
与<prestashop xmlns:xlink="http://www.w3.org/1999/xlink">
在我玩过的版本中没有任何区别。
我卡住了同样的问题,如果你解决了这个问题,请分享! – lelloman 2013-06-29 09:38:06
嘿,首先在你的prestashop上启用调试日志。为此,请编辑此文件$(PrestashopDirectory)/config/settings.inc.php并设置define('_ PS_MODE_DEV_',** true **); – 2013-07-02 07:00:44
我仍然无法创建新客户。我现在正在对它进行一些研究。但是我已经成功完成了地址部分,以防您希望在此API中获得帮助。 – Swati 2013-07-02 08:06:17