从 1.6 升级到 1.9.3 时,Magento Web 服务返回 complexarray``
Magento web service returning complexarray when upgraded from 1.6 to 1.9.3``
要在 visual studio 中使用 magento 网络 api 我添加了网络服务参考:
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>
所以我得到的不是 item/product 信息,而是 <complexObjectArray />
。如何解决此问题并获取 item/product 信息?
我确实获得了其他订单信息,例如总信息和客户/地址信息。但我没有得到的是 <items>
信息和 <status_history>
信息。
谢谢。
编辑:在 system.log 中,每次我 运行 API 我都会得到大约 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
问题出在提到的文件上
/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;
}
要在 visual studio 中使用 magento 网络 api 我添加了网络服务参考:
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>
所以我得到的不是 item/product 信息,而是 <complexObjectArray />
。如何解决此问题并获取 item/product 信息?
我确实获得了其他订单信息,例如总信息和客户/地址信息。但我没有得到的是 <items>
信息和 <status_history>
信息。
谢谢。
编辑:在 system.log 中,每次我 运行 API 我都会得到大约 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
问题出在提到的文件上
/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;
}