Magento API V2 - 为API响应添加其他属性

elM*_*uis 7 api soap magento

我正在使用Magento API V2.

当我打电话给salesOrderCreditmemoInfo时,我会收到一份回复,其中包含贷项通知单详细信息以及与订单关联的产品列表.

但是在产品项列表中没有product_type属性.

我想手动编辑响应以添加此属性.

我尝试编辑: app\code\core\Mage\Sales\Model\Order\Creditmemo\Api.php

并取代:

public function info($creditmemoIncrementId)
{
    ...
    $result['items'] = array();
    foreach ($creditmemo->getAllItems() as $item) {
        $result['items'][] = $this->_getAttributes($item, 'creditmemo_item');
    }
Run Code Online (Sandbox Code Playgroud)

使用以下内容 - (基本上为数组添加额外属性):

 public function info($creditmemoIncrementId)
    {
      ...
    $result['items'] = array();
    foreach ($creditmemo->getAllItems() as $item) {
            $product_type = '1'; //test value to check if works
            $attribs = $this->_getAttributes($item, 'creditmemo_item');
            $attribs['product_type'] = $product_type;

            $result['items'][] = $attribs;
        }
Run Code Online (Sandbox Code Playgroud)

当我做mage :: log($ result)时,额外的属性似乎正确地添加到数组中.(也表示此函数是被调用的函数)但它对实际的API响应没有影响.

我是否完全在错误的地方寻找或者还有其他我需要更新的东西?

Jos*_*ano 8

由于您使用的是SOAP V2,因此您应该更新 wsdl.xml 以获取输出.

对于您的情况,它是服务器上的product_type刷新缓存./ tmp加载wsdl.xml已更新的新内容.别忘了去系统 - >缓存管理清除所有缓存.