3

に次のコードを追加しました

/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; 
}

しかし、アプリケーションルートで次のコードを実行すると

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

私が行った変更が得られません。

いくつかの解決策を提案してください。

編集:

コアコードをオーバーライドするための私のディレクトリ構造は次のとおりです。

私は Overridden Api.php で、このように使用しています。

class Sigma_Sales_Model_Order_Api extends Mage_Sales_Model_Order_Api

了解:このようにオーバーライドする必要があります

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 を拡張します

4

2 に答える 2

4

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

コアファイルを変更したくない場合は、上書きする必要があります。

于 2013-11-06T12:17:11.693 に答える