要在visual studio中使用magento web api,我添加了Web服务参考:
https://www.example.com/api/v2_soap?wsdl
我正在使用
正确导入订单信息mageservice.salesOrderInfo(sessionId, orderId);
然后我将magento从v1.6.0.0升级到v1.9.3.0。我现在无法获得订单的商品信息。通过提琴手检查时,我得到以下内容:
<items>
<complexObjectArray/>
<complexObjectArray/>
<complexObjectArray/>
<complexObjectArray/>
</items>
因此,我得到<complexObjectArray />
而不是获取商品/产品信息。如何解决此问题并获取商品/产品信息?
我确实收到了其他订单信息,例如总信息和客户/地址信息。但我得不到的是<items>
信息和<status_history>
信息。
谢谢。
编辑:在每次运行API的system.log中,我都会得到大约5行。响应中的每个complexObjectArray
大约有一个。
2016-11-17T18:12:36+00:00 DEBUG (7): Array to string conversion/var/www/html/gmw.com/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php
答案 0 :(得分:1)
问题在于提到的文件
/var/www/html/gmw.com/app/code/core/Mage/Api/Model/Server/Handler/Abstract.php
在以下方法中:
public function processingMethodResult(array $result) {
foreach ($result as &$row) {
if (!is_null($row) && !is_bool($row) && !is_numeric($row)) {
$row = $this->processingRow($row);
}
}
return $result;
}
我把它改成了下面的那个,它起作用了
public function processingMethodResult(array $result) {
foreach ($result as &$row) {
if (is_array($row)) { // added this if statement
foreach ($row as &$subrow) {
$subrow = $this->processingRow($subrow);
}
} else if (!is_null($row) && !is_bool($row) && !is_numeric($row)) {
$row = $this->processingRow($row);
}
}
return $result;
}