magento api新增方法
来源:互联网 发布:穿越火线检测数据异常 编辑:程序博客网 时间:2024/06/05 18:36
我们拿这个方法举例http://devdocs.magento.com/guides/m1x/api/soap/sales/salesOrderShipment/sales_order_shipment.info.html
Arguments:
Order shipment increment ID传入的参数是shipmentIncrementId。后面我们新增一个方法传入orderIncrementId,返回的内容是一样的。
首先来看一下salesOrderShipmentInfo这个接口在magento里是怎么样的。
3个文件
1.\app\code\core\Mage\Sales\Model\Order\Shipment\Api.php中
/** * Retrieve shipment information * * @param string $shipmentIncrementId * @return array */ public function info($shipmentIncrementId) { $shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentIncrementId); /* @var $shipment Mage_Sales_Model_Order_Shipment */ if (!$shipment->getId()) { $this->_fault('not_exists'); } $result = $this->_getAttributes($shipment, 'shipment'); $result['items'] = array(); foreach ($shipment->getAllItems() as $item) { $result['items'][] = $this->_getAttributes($item, 'shipment_item'); } $result['tracks'] = array(); foreach ($shipment->getAllTracks() as $track) { $result['tracks'][] = $this->_getAttributes($track, 'shipment_track'); } $result['comments'] = array(); foreach ($shipment->getCommentsCollection() as $comment) { $result['comments'][] = $this->_getAttributes($comment, 'shipment_comment'); } return $result; }2.\app\code\core\Mage\Sales\etc\api.xml中
<sales_order_shipment> <title>Shipment API</title> <model>sales/order_shipment_api</model> <acl>sales/order/shipment</acl> <methods> <list translate="title" module="sales"> <title>Retrieve list of shipments by filters</title> <method>items</method> <acl>sales/order/shipment/info</acl> </list> <info translate="title" module="sales"> <title>Retrieve shipment information</title> <acl>sales/order/shipment/info</acl> </info> <info2 translate="title" module="sales"> <title>Retrieve shipment information2</title> <acl>sales/order/shipment/info</acl> </info2> ..... </sales_order_shipment>3.\app\code\core\Mage\Sales\etc\wsdl.xml中
<message name="salesOrderShipmentInfoRequest"><part name="sessionId" type="xsd:string" /><part name="shipmentIncrementId" type="xsd:string" /></message><message name="salesOrderShipmentInfoResponse"><part name="result" type="typens:salesOrderShipmentEntity" /></message>#.......<operation name="salesOrderShipmentInfo"><documentation>Retrieve shipment information</documentation><input message="typens:salesOrderShipmentInfoRequest" /><output message="typens:salesOrderShipmentInfoResponse" /></operation>#.......<operation name="salesOrderShipmentInfo"><soap:operation soapAction="urn:{{var wsdl.handler}}Action" /><input><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></input><output><soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /></output></operation>
好了,看到上面3个文件,下面我们就新增一个salesOrderShipmentInfo2
要求传入的参数是
Arguments:
orderIncrementId
orderIncrementId
第一步在api.xml文件里,紧接着info新增如下代码:<info2 translate="title" module="sales"> <title>Retrieve shipment information2</title> <acl>sales/order/shipment/info</acl> </info2>第二部在wsdl.xml里,紧接着salesOrderShipmentInfo新增3段
<!--2016-07-27 start--> <message name="salesOrderShipmentInfo2Request"> <part name="sessionId" type="xsd:string" /> <part name="orderIncrementId" type="xsd:string" /> </message> <message name="salesOrderShipmentInfo2Response"> <part name="result" type="typens:salesOrderShipmentEntity" /> </message> <!--2016-07-27 end-->
<!--2016-07-27 start--> <operation name="salesOrderShipmentInfo2"> <documentation>Retrieve shipment information</documentation> <input message="typens:salesOrderShipmentInfo2Request" /> <output message="typens:salesOrderShipmentInfo2Response" /> </operation> <!--2016-07-27 end-->
<!--2016-07-27 start--> <operation name="salesOrderShipmentInfo2"> <soap:operation soapAction="urn:{{var wsdl.handler}}Action" /> <input> <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </input> <output> <soap:body namespace="urn:{{var wsdl.name}}" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> </output> </operation> <!--2016-07-27 end-->然后在Api.php文件里,新增一个info2方法,接收orderIncrementId,先通过orderIncrementId获取到shipmentIncrementId。剩下代码就和info()一样了。
/** * Retrieve shipment information2 * * @param string $orderIncrementId * @return array */ public function info2($orderIncrementId) { // 根据订单号先去查询$shipmentIncrementId $orderIncrementId = (int)$orderIncrementId; $read= Mage::getSingleton('core/resource')->getConnection('core_read'); $sql = "select increment_id from sales_flat_shipment_grid where order_increment_id=".$orderIncrementId; $results = $read->fetchAll($sql); if(!$results[0]['increment_id']){ $this->_fault('not_exists'); }else{ $shipmentIncrementId = $results[0]['increment_id']; } $shipment = Mage::getModel('sales/order_shipment')->loadByIncrementId($shipmentIncrementId); /* @var $shipment Mage_Sales_Model_Order_Shipment */ if (!$shipment->getId()) { $this->_fault('not_exists'); } $result = $this->_getAttributes($shipment, 'shipment'); $result['items'] = array(); foreach ($shipment->getAllItems() as $item) { $result['items'][] = $this->_getAttributes($item, 'shipment_item'); } $result['tracks'] = array(); foreach ($shipment->getAllTracks() as $track) { $result['tracks'][] = $this->_getAttributes($track, 'shipment_track'); } $result['comments'] = array(); foreach ($shipment->getCommentsCollection() as $comment) { $result['comments'][] = $this->_getAttributes($comment, 'shipment_comment'); } return $result; }
完成之后,先刷新缓存在测试。
$url = "http://192.168.9.12/magento/api/v2_soap/?wsdl"; $client = new SoapClient($url);// If somestuff requires api authentification,// then get a session token$session = $client->login('uername', 'password');$result = $client->salesOrderShipmentInfo2($session,100066780);//返回二维数组echo'<pre>';print_r($result);浏览器访问这个地址:http://192.168.9.12/magento/api/v2_soap/?wsdl
然后ctrl+f搜索:salesOrderShipmentInfo2,发现有了,说明这个方法存在的。
0 0
- magento api新增方法
- magento soap api 列出所有的方法
- 给Magento新增JSON-RPC类型的Api适配器(adapter)
- 使用customer.update 方法 ,magento 1.7.0.2 soap api bug
- Magento SOAP API基础知识
- create magento custom api
- Magento Api 产品新建
- magento custom api configuration
- magento API 代码
- Writing Magento Custom API
- magento soap api 调用
- magento rest api 调用
- magento rest api 调用!
- magento rest api 调用
- magento soap api
- Android4.0新增API
- Android4.0新增API
- JAVA7 新增工具api
- linux 下 `dirname $0`
- 【整理】HTML5中部分新属性
- mysql性能优化
- flash
- maven 项目的搭建
- magento api新增方法
- UVA 10050-Hartals
- IDEA Debug 快捷键
- UNIX网络编程——进程间通信
- HDU-5754-Life Winner Bo(博弈)
- 谷歌GCM 接入笔记2
- Select语句完整的执行顺序
- 华为在线训练(2)
- POJ题目分类