当从1.6升级到1.9.3`

时间:2016-11-16 19:56:00

标签: magento magento-1.9

要在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

1 个答案:

答案 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;
}