获取在Magento使用SOAP API的salesOrderInfo简单的产品SKU数量和 [英] Get simple product sku and qty using salesOrderInfo of SOAP API in magento

查看:500
本文介绍了获取在Magento使用SOAP API的salesOrderInfo简单的产品SKU数量和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我添加按照code中的

I have added following code in the

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

文件。

       public function info($orderIncrementId)
        {

------
-------
$order = Mage::getModel('sales/order')->loadByIncrementId($orderIncrementId);
    // get order total value
$orderValue = number_format ($order->getGrandTotal(), 2, '.' , $thousands_sep = '');
    // get order item collection
$orderItems = $order->getItemsCollection();

    $skuQtyArray = array();
    foreach ($orderItems as $item)
    {
        $product_id = $item->product_id;
        $product_sku = $item->sku;
        $product_name = $item->getName();
        $product_qty = $item->getQtyOrdered();
        $_product = Mage::getModel('catalog/product')->load($product_id);
        $cats = $_product->getCategoryIds();
        $category_id = $cats[0]; // just grab the first id
        $category = Mage::getModel('catalog/category')->load($category_id);
        $category_name = $category->getName();

        $product = Mage::getModel('catalog/product')->loadByAttribute('sku', $product_sku);  

        $productType=$product->getTypeID();
        if($productType=='simple')
        {                                                                   
                $skuQtVal = $product_sku."=".$product_qty;                                      
                $skuQtyArray[] = $skuQtVal;                                 
        }

    }

$result['simple_product_skus'] = $skuQtyArray;
    Mage::log($skuQtyArray,null,"logTest.txt",true);

return $result; 
}

但是当我运行以下code。在应用程序根目录

But when I run following code in the application root

<?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);
?>

我没有得到我做了修改。

I am not getting the changes which I did.

请提出了一些解决方案。

Please suggest some solution.

编辑:

我的目录结构来覆盖核心code是如下。

My directory structure to override the core code is as following.

我我重写Api.php,我使用的是这样的。

I my Overridden Api.php, I am using like this.

class Sigma_Sales_Model_Order_Api extends Mage_Sales_Model_Order_Api

明白了:
我需要重写这样

Got it: I need to override like this

class Sigma_Sales_Model_Order_Api_V2 extends Mage_Sales_Model_Order_Api_V2

由于: - Mage_Sales_Model_Order_Api_V2扩展Mage_Sales_Model_Order_Api

Because:- Mage_Sales_Model_Order_Api_V2 extends Mage_Sales_Model_Order_Api

推荐答案

木,你必须去应用程序\\ code \\核心\\法师\\销售\\等,并修改wsdl.xml和wsi.xml并添加或元素SKU你想按您的要求什么。

Muk, you have to go to app\code\core\Mage\Sales\etc and modify wsdl.xml and wsi.xml and add the element for sku or whatever you want as per your requirement.

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

如果你不想修改核心文件比你要覆盖它。

if you don't want to modify core file than you have to override it.

这篇关于获取在Magento使用SOAP API的salesOrderInfo简单的产品SKU数量和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆