使用magento中SOAP API的salesOrderInfo获取简单的产品sku和数量

使用magento中SOAP API的salesOrderInfo获取简单的产品sku和数量,api,magento,soap,Api,Magento,Soap,我在中添加了以下代码 /app/code/core/Mage/Sales/Model/Order/Api.php 文件 但是当我在应用程序根目录中运行以下代码时 <?php $client = new SoapClient('localhost/magento/index.php/api/v2_soap/index?wsdl=1'); $session = $client->login('testuser', 'testuser'); $result = $client ->

我在中添加了以下代码

/app/code/core/Mage/Sales/Model/Order/Api.php
文件

但是当我在应用程序根目录中运行以下代码时

<?php
$client = new SoapClient('localhost/magento/index.php/api/v2_soap/index?wsdl=1');
$session = $client->login('testuser', 'testuser');

$result = $client ->salesOrderInfo($session, '100000026'); 

print_r($result);
?>
明白了: 我需要这样做

class Sigma_Sales_Model_Order_Api_V2 extends Mage_Sales_Model_Order_Api_V2

因为:-Mage\u Sales\u Model\u Order\u Api\u V2扩展了Mage\u Sales\u Model\u Order\u Api

Muk,您必须转到app\code\core\Mage\Sales\etc,修改wsdl.xml和wsi.xml,并根据需要为sku或其他任何内容添加元素

<element name="sku" type="xsd:string" minOccurs="0" /> //in wsdl.xml
<xsd:element name="sku" type="xsd:string" minOccurs="0" /> //wsi.xml
//在wsdl.xml中
//wsi.xml

如果您不想修改核心文件,则必须覆盖它。

首先启用更正

/app/code/core/Mage/Sales/Model/Order/Api.php
来自

$orderValue = number_format ($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
$orderValue = number_format($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
尝试删除数字\u格式后的空格

$orderValue = number_format ($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
$orderValue = number_format($order->getGrandTotal(), 2, '.' , $thousands_sep = '');

第二步是检查订单增量ID,它是否存在


第三个是检查var/log/logTest.txt,$skuQtyArray的值是多少


如果您只想添加该函数,那么它现在必须是正确的


我的建议是不要覆盖core,因为Magento经常需要升级版本,如果您想升级它,您会感到困惑。

我传递的值是$result['custom']=$skuQtyArray$skuQtyArray是一个数组。因此,我需要在wsdl.xml和wsi.xml中给出特定的元素名称。我是这些api的新手,请指导。如果要将元素设置为数组而不是字符串,请将字符串更改为数组。我建议您使用wsdl.xml和wsi.xml。这两个文件都有字符串、数组等。我问的是元素名。我可以给元素命名为“custom_simple”吗?我正要离开办公室。请通过这个链接嗨,你写的核心?美元的价值是多少?任何警告或异常?非常感谢您的帮助,以及您和其他注释的帮助。如果我重写Api.php的info函数,是否需要为其编写Api.xml?请推荐。很好!!如果方法相同,则无需编写api.xml,只需重写该类即可。在自定义模块上。别忘了清除var/cache。感谢您的宝贵建议。我如何才能将$result['custom']返回为[0]=>stdClass对象?这意味着在数组中,该值是一个类对象。尝试回显get_类($result['custom'][0]);